-
Notifications
You must be signed in to change notification settings - Fork 0
/
background.js
45 lines (41 loc) · 1.51 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
browser.storage.local.get().then(results => {
if (results.prevKey) { browser.commands.update({ name: "prev-tab", shortcut: results.prevKey }); };
if (results.nextKey) { browser.commands.update({ name: "next-tab", shortcut: results.nextKey }); };
if (results.closeKey) { browser.commands.update({ name: "close-tab", shortcut: results.closeKey }); };
});
function onError(error) {
console.log(`Error: ${error}`);
}
function getActiveTab() {
return browser.tabs.query({currentWindow: true, active: true});
}
function getTabsCount() {
return browser.tabs.query({currentWindow: true});
}
browser.commands.onCommand.addListener(function(command) {
if (command == "prev-tab") {
getActiveTab().then((tab) => {
curTab = tab[0].index;
if (curTab > 0) {
browser.tabs.query({currentWindow: true, index: curTab - 1}, function(prevTab) {
browser.tabs.update(prevTab[0].id, {active: true});
});
}
});
} else if (command == "next-tab") {
browser.tabs.query({currentWindow: true}, function(tabList) {
getActiveTab().then((tab) => {
nextTab = tab[0].index + 1;
if (nextTab < tabList.length ) {
browser.tabs.query({currentWindow: true, index: nextTab}, function(nextTab) {
browser.tabs.update(nextTab[0].id, {active: true});
});
}
});
});
} else if (command == "close-tab") {
getActiveTab().then((tabs) => {
browser.tabs.remove(tabs[0].id)
});
}
});