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
d65d16ad3f768f42b3140591db8667e4046dac1a
parent
c7a97c1aee1e445da2e6e5ff0f99b1501d2d13f0
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2022-11-27 10:34
fix recording concurrency issue

Diffstat

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

1 files changed, 8 insertions, 3 deletions


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

@@ -1,5 +1,7 @@
    1     1 /* global browser shared */
    2     2 
   -1     3 var lock = Promise.resolve();
   -1     4 
    3     5 var STORAGE_DEFAULTS = {
    4     6     'rules': {},
    5     7     'requests': {},
@@ -17,9 +19,7 @@ var storageGet = function(key) {
   17    19     });
   18    20 };
   19    21 
   20    -1 var storageChange = function(key, fn) {
   21    -1     // even though storage access is async, this is safe as long as the code
   22    -1     // in between is sync.
   -1    22 var _storageChange = function(key, fn) {
   23    23     return storageGet(key).then(oldValue => {
   24    24         var data = {};
   25    25         data[key] = fn(oldValue);
@@ -27,6 +27,11 @@ var storageChange = function(key, fn) {
   27    27     });
   28    28 };
   29    29 
   -1    30 var storageChange = function(key, fn) {
   -1    31     lock = lock.then(() => _storageChange(key, fn));
   -1    32     return lock;
   -1    33 };
   -1    34 
   30    35 var setRule = function(context, hostname, type, rule) {
   31    36     return storageChange('rules', rules => {
   32    37         if (hostname === 'first-party') {