-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
33 lines (29 loc) · 889 Bytes
/
main.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
"use strict";
var browser = typeof chrome === 'undefined'? browser : chrome;
function getSalt(){
return new Promise((res, _) => {
if (typeof chrome !== 'undefined'){
browser.storage.local.get('salt', (r) => { res(r.salt); }); //Chrome uses callbacks
}else{
browser.storage.local.get('salt').then( (r) => {
if (Array.isArray && Array.isArray(r))
r = r[0]; //Workaround for FF < 52
res(r.salt);
});
}
});
}
function setRandomSalt(){
browser.storage.local.set({
salt: '{x-x-x}'.replace(/x/g,()=>crypto.getRandomValues(new Uint32Array(1))[0].toString(16))
});
}
browser.runtime.onInstalled.addListener((details) => {
if (details.reason === 'install')
setRandomSalt();
else if (details.reason === 'update')
getSalt().then((salt) => {
if (typeof salt === 'undefined')
setRandomSalt();
});
});