|
@@ -3,7 +3,6 @@ var defaults = {
|
|
|
// storage
|
|
// storage
|
|
|
origins: {},
|
|
origins: {},
|
|
|
header: false,
|
|
header: false,
|
|
|
- intercept: false,
|
|
|
|
|
// static
|
|
// static
|
|
|
protocols: ['https', 'http', '*'],
|
|
protocols: ['https', 'http', '*'],
|
|
|
// UI
|
|
// UI
|
|
@@ -112,10 +111,7 @@ var events = {
|
|
|
origin,
|
|
origin,
|
|
|
options: {match, csp, encoding},
|
|
options: {match, csp, encoding},
|
|
|
})
|
|
})
|
|
|
- webRequest.update()
|
|
|
|
|
- webRequest.permission(() => {
|
|
|
|
|
- webRequest.register()
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ webRequest()
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
encoding: (origin) => (e) => {
|
|
encoding: (origin) => (e) => {
|
|
@@ -126,41 +122,33 @@ var events = {
|
|
|
origin,
|
|
origin,
|
|
|
options: {match, csp, encoding},
|
|
options: {match, csp, encoding},
|
|
|
})
|
|
})
|
|
|
- webRequest.update()
|
|
|
|
|
- webRequest.permission(() => {
|
|
|
|
|
- webRequest.register()
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ webRequest()
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-var webRequest = {
|
|
|
|
|
- update: () => {
|
|
|
|
|
- state.intercept = false
|
|
|
|
|
- for (var key in state.origins) {
|
|
|
|
|
- if (state.origins[key].csp || state.origins[key].encoding) {
|
|
|
|
|
- state.intercept = true
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- permission: (done) => {
|
|
|
|
|
- // ff: webRequest is required permission
|
|
|
|
|
- if (/Firefox/.test(navigator.userAgent)) {
|
|
|
|
|
- done()
|
|
|
|
|
- }
|
|
|
|
|
- else {
|
|
|
|
|
- chrome.permissions[state.intercept ? 'request' : 'remove']({
|
|
|
|
|
- permissions: ['webRequest', 'webRequestBlocking']
|
|
|
|
|
- }, done)
|
|
|
|
|
|
|
+function webRequest () {
|
|
|
|
|
+ // ff: webRequest is required permission
|
|
|
|
|
+ if (/Firefox/.test(navigator.userAgent)) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ var intercept = false
|
|
|
|
|
+ for (var key in state.origins) {
|
|
|
|
|
+ if (state.origins[key].csp || state.origins[key].encoding) {
|
|
|
|
|
+ intercept = true
|
|
|
|
|
+ break
|
|
|
}
|
|
}
|
|
|
- },
|
|
|
|
|
- register: () => {
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ chrome.permissions[intercept ? 'request' : 'remove']({
|
|
|
|
|
+ permissions: ['webRequest', 'webRequestBlocking']
|
|
|
|
|
+ }, () => {
|
|
|
chrome.runtime.sendMessage({
|
|
chrome.runtime.sendMessage({
|
|
|
message: 'options.intercept',
|
|
message: 'options.intercept',
|
|
|
- intercept: state.intercept,
|
|
|
|
|
|
|
+ intercept,
|
|
|
})
|
|
})
|
|
|
- }
|
|
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
chrome.extension.isAllowedFileSchemeAccess((isAllowedAccess) => {
|
|
chrome.extension.isAllowedFileSchemeAccess((isAllowedAccess) => {
|