- commit
- c7a97c1aee1e445da2e6e5ff0f99b1501d2d13f0
- parent
- 278c272b0ae3b9cd5e7c8f1af4e942e59a1aa219
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2022-11-27 09:50
store recording in local storage
Diffstat
| M | src/bg.js | 43 | +++++++++++++++++++++++-------------------- |
1 files changed, 23 insertions, 20 deletions
diff --git a/src/bg.js b/src/bg.js
@@ -3,10 +3,9 @@ 3 3 var STORAGE_DEFAULTS = { 4 4 'rules': {}, 5 5 'requests': {}, -1 6 'recording': true, 6 7 }; 7 88 -1 var recording = false;9 -110 9 var getHostname = function(url) { 11 10 var u = new URL(url); 12 11 return u.hostname; @@ -62,21 +61,22 @@ var restrictRules = function(rules, context) { 62 61 }; 63 62 64 63 var pushRequest = function(tabId, hostname, type) {65 -1 if (!recording) {66 -1 return Promise.resolve();67 -1 }68 -1 return storageChange('requests', requests => {69 -1 if (!requests[tabId]) {70 -1 requests[tabId] = {};71 -1 }72 -1 if (!requests[tabId][hostname]) {73 -1 requests[tabId][hostname] = {};74 -1 }75 -1 if (!requests[tabId][hostname][type]) {76 -1 requests[tabId][hostname][type] = 0;-1 64 return storageGet('recording').then(recording => { -1 65 if (recording) { -1 66 return storageChange('requests', requests => { -1 67 if (!requests[tabId]) { -1 68 requests[tabId] = {}; -1 69 } -1 70 if (!requests[tabId][hostname]) { -1 71 requests[tabId][hostname] = {}; -1 72 } -1 73 if (!requests[tabId][hostname][type]) { -1 74 requests[tabId][hostname][type] = 0; -1 75 } -1 76 requests[tabId][hostname][type] += 1; -1 77 return requests; -1 78 }); 77 79 }78 -1 requests[tabId][hostname][type] += 1;79 -1 return requests;80 80 }); 81 81 }; 82 82 @@ -102,7 +102,8 @@ browser.runtime.onMessage.addListener((msg, sender) => { 102 102 getCurrentTab(), 103 103 storageGet('rules'), 104 104 storageGet('requests'),105 -1 ]).then(([tab, rules, requests]) => {-1 105 storageGet('recording'), -1 106 ]).then(([tab, rules, requests, recording]) => { 106 107 var context = msg.data || getHostname(tab.url); 107 108 return { 108 109 context: context, @@ -123,8 +124,7 @@ browser.runtime.onMessage.addListener((msg, sender) => { 123 124 } else if (msg.type === 'securitypolicyviolation') { 124 125 return pushRequest(sender.tab.id, 'inline', msg.data); 125 126 } else if (msg.type === 'toggleRecording') {126 -1 recording = !recording;127 -1 return Promise.resolve(recording);-1 127 return storageChange('recording', recording => !recording); 128 128 } 129 129 }); 130 130 @@ -162,7 +162,10 @@ browser.webRequest.onBeforeRequest.addListener(details => { 162 162 }, {urls: ['<all_urls>']}, ['blocking']); 163 163 164 164 browser.webRequest.onHeadersReceived.addListener(function(details) {165 -1 return storageGet('rules').then(rules => {-1 165 return Promise.all([ -1 166 storageGet('rules'), -1 167 storageGet('recording'), -1 168 ]).then(([rules, recording]) => { 166 169 var context = getHostname(details.url); 167 170 168 171 var csp = (type, value) => {