-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbackground.js
65 lines (55 loc) · 1.42 KB
/
background.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var flashAndReload = function(noReload) {
var bm = chrome.benchmarking,
tabs = chrome.tabs;
if(!bm){
tabs.create({ url: 'https://goo.gl/vSh9im' });
return;
}
bm.clearHostResolverCache();
bm.closeConnections();
if (!noReload && tabs) {
tabs.reload({ bypassCache: true });
}
console.log('[flashAndReload]');
};
chrome.browserAction.onClicked.addListener(function(){
flashAndReload();
});
chrome.contextMenus.create({
'title': 'Flush DNS and reload'
});
chrome.contextMenus.onClicked.addListener(function() {
flashAndReload();
});
chrome.commands.onCommand.addListener(function(cmd) {
if (cmd === 'flash-and-reload') {
flashAndReload();
}
});
var options = {
enable: localStorage.getItem('auto.refresh.enable') === 'true',
interval: (localStorage.getItem('auto.refresh.interval') || 0) / 1,
};
var autoReload = null;
function clearAutoReload() {
clearInterval(autoReload);
autoReload = null;
console.log('[AutoReload] stop');
}
function setAutoReload(options) {
if (options.enable && options.interval) {
if (autoReload) {
clearAutoReload();
}
autoReload = setInterval(() => {
flashAndReload(true);
}, options.interval * 1000);
console.log('[AutoReload] start');
} else if (autoReload) {
clearAutoReload();
}
}
setAutoReload(options);
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){
setAutoReload(message);
});