-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbackground.js
56 lines (48 loc) · 1.5 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
class CookieButton {
async getStorageAsync() {
var storage = await browser.storage.local.get();
return storage
}
get ButtonState() {
return this.getStorageAsync().then(x => x.buttonState)
}
set ButtonState(value) {
return browser.storage.local.set({ buttonState: value })
}
constructor() {
this.setup()
}
async enable() {
browser.privacy.websites.cookieConfig.set({ value: { behavior: "allow_all" } })
this.ButtonState = 'turn-off';
browser.browserAction.setIcon({ path: 'icons/enabled.png', });
}
async disable() {
browser.privacy.websites.cookieConfig.set({ value: { behavior: "reject_all" } })
this.ButtonState = 'turn-on';
browser.browserAction.setIcon({ path: 'icons/disabled.png', });
}
async setup() {
if (await this.ButtonState == undefined) {
this.ButtonState = "turn-off";
}
if (await this.ButtonState == "turn-on") {
browser.browserAction.setIcon({ path: 'icons/disabled.png', });
}
browser.browserAction.onClicked.addListener(async function (tab) {
var state = await cookieButton.ButtonState;
switch (state) {
case 'turn-on':
cookieButton.enable();
break;
case 'turn-off':
cookieButton.disable();
break;
case 'undefined':
cookieButton.enable();
break;
}
});
}
}
var cookieButton = new CookieButton();