xiMatrix

filter net requests according to source, destination and type  https://addons.mozilla.org/firefox/addon/ximatrix/
git clone https://git.ce9e.org/xiMatrix.git

commit
c1dc5762c605ebba07ccb7300a44074a7190db94
parent
a01c3c17a571be18258f846744859a1092a7b103
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2023-12-07 19:27
store requests to session storage

available since firefox 115

Diffstat

M src/bg.js 16 ++++++++++++++--

1 files changed, 14 insertions, 2 deletions


diff --git a/src/bg.js b/src/bg.js

@@ -10,6 +10,12 @@ var STORAGE_DEFAULTS = {
   10    10     'requests': {},
   11    11     'recording': true,
   12    12 };
   -1    13 var STORAGE_AREAS = {
   -1    14     'rules': browser.storage.local,
   -1    15     'savedRules': browser.storage.local,
   -1    16     'requests': browser.storage.session,
   -1    17     'recording': browser.storage.local,
   -1    18 };
   13    19 
   14    20 var getHostname = function(url) {
   15    21     var u = new URL(url);
@@ -17,7 +23,7 @@ var getHostname = function(url) {
   17    23 };
   18    24 
   19    25 var storageGet = function(key) {
   20    -1     return browser.storage.local.get(key).then(data => {
   -1    26     return STORAGE_AREAS[key].get(key).then(data => {
   21    27         return data[key] ?? STORAGE_DEFAULTS[key];
   22    28     });
   23    29 };
@@ -26,7 +32,7 @@ var _storageChange = function(key, fn) {
   26    32     return storageGet(key).then(oldValue => {
   27    33         var data = {};
   28    34         data[key] = fn(oldValue);
   29    -1         return browser.storage.local.set(data);
   -1    35         return STORAGE_AREAS[key].set(data);
   30    36     });
   31    37 };
   32    38 
@@ -244,3 +250,9 @@ browser.webRequest.onHeadersReceived.addListener(details => {
  244   250     urls: ['<all_urls>'],
  245   251     types: ['main_frame'],
  246   252 }, ['blocking', 'responseHeaders']);
   -1   253 
   -1   254 // migrations
   -1   255 browser.runtime.onInstalled.addListener(() => {
   -1   256     // 0.8.0: store requests to session storage
   -1   257     lock = lock.then(() => browser.storage.local.remove('requests'));
   -1   258 });