Я разрабатываю расширение для браузера, которое блокирует вызовы определенных URL-адресов по запросу клиента.
URL-адреса, которые необходимо заблокировать, передаются как аргументы «localStorage».
Это мой код расширения:
function logURL(requestDetails) {
console.log("Loading: " + requestDetails.url);
return {cancel: true};
}
browser.webRequest.onBeforeRequest.addListener(
logURL,
{urls: (localStorage.getItem('block_urls') ? localStorage.getItem('block_urls') : ["https://default/default"] )},
["blocking"]
);
Я ожидаю, что перед каждым запросом URL-адреса будут считываться из localStorage и соответственно блокироваться. Если localStorage имеет значение null, у меня есть шаблон URL-адреса по умолчанию (который в основном ничего не делает).
На самом деле происходит то, что параметр фильтра (urls) вызывается только один раз (когда расширение загружается), а не перед каждым запросом.
Есть ли способ динамически изменить фильтр для этого события?
Спасибо за помощников.