-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackground.js
42 lines (34 loc) · 1003 Bytes
/
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
const BearerPrefix = "Bearer ";
let tokens;
chrome.storage.local.get(null, data => {
if (data && data.tokens) {
tokens = data.tokens;
}
else {
tokens = {};
}
});
// HACK: workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=1024211
chrome.webNavigation.onBeforeNavigate.addListener(() => {});
chrome.webRequest.onSendHeaders.addListener(
details => {
if (details.type !== "xmlhttprequest") {
return;
}
if (!details || !details.requestHeaders) {
return;
}
var authHeader = details.requestHeaders.find(x => x.name === "Authorization")
if (!authHeader) {
return;
}
if (authHeader.value.indexOf(BearerPrefix) !== 0) {
return;
}
tokens[details.url] = authHeader.value.substring(BearerPrefix.length);
chrome.storage.local.set({ tokens });
},
{
urls: ["<all_urls>"]
},
["requestHeaders"]);