-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbackground.js
101 lines (89 loc) · 2.05 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
var newtabUrl = "chrome://newtab/"
var created = false;
function checkAndCreate() {
if (!created) {
chrome.tabs.query({"currentWindow":true}, (tabs) => {
console.log(tabs.length - 1);
console.log(tabs[tabs.length - 1].url);
if (tabs[tabs.length - 1].url != newtabUrl) {
chrome.tabs.create({
active: false,
selected: false
}, () => {});
}
});
created = true;
setTimeout(() => {
created = false;
}, 5000);
}
}
function checkAndDelete(i = -2) {
chrome.tabs.query({"currentWindow":true}, (tabs) => {
var tar = tabs[(i >= 0) ? i : tabs.length + i];
if (tar.url == newtabUrl && !tar.active) {
chrome.tabs.remove(tar.id, () => {});
}
});
}
function removeEnd() {
chrome.tabs.query({"currentWindow":true}, (tabs) => {
if (tabs[tabs.length - 1].url == newtabUrl) {
for (var i = tabs.length - 2; i >= 0; i--) {
if (tabs[i].url == newtabUrl && !tabs[i].active)
chrome.tabs.remove(tar.id, () => {});
else
break;
}
}
});
}
function removeAll() {
chrome.tabs.query({"currentWindow":true}, (tabs) => {
if (tabs[tabs.length - 1].url == newtabUrl) {
for (var i = tabs.length - 2; i >= 0; i--) {
if (tabs[i].url == newtabUrl && !tabs[i].active)
chrome.tabs.remove(tabs[i].id, () => {});
}
}
});
}
checkAndCreate();
removeAll();
chrome.tabs.onUpdated.addListener((tabId, chInfo, tab) => {
removeAll();
if (tab.url != newtabUrl) {
checkAndCreate();
}
});
chrome.tabs.onCreated.addListener(() => {
removeAll();
});
chrome.tabs.onRemoved.addListener(() => {
setTimeout(() => {
checkAndCreate();
removeAll();
}, 5000);
});
chrome.tabs.onMoved.addListener(() => {
removeAll();
setTimeout(() => {
checkAndCreate();
removeAll();
}, 1000);
setTimeout(() => {
checkAndCreate();
removeAll();
}, 5000);
});
chrome.tabs.onDetached.addListener((tabId, detInfo) => {
setTimeout(() => {
chrome.tabs.query({
windowId: detInfo.oldWindowId
}, (tabs) => {
if (tabs.length == 1 && tabs[0].url == newtabUrl) {
chrome.tabs.remove(tabs[0].id, () => {});
}
});
}, 5000);
})