diff --git a/background.js b/background.js index 69c32516..f789ea08 100644 --- a/background.js +++ b/background.js @@ -426,6 +426,7 @@ var blockedRegexes = { 'wn.de': /cdn\.ampproject\.org\/v\d\/amp-(ad|subscriptions)-.+\.js/, 'wsj.com': /(cdn\.ampproject\.org\/v\d\/amp-(access|ad|consent|subscriptions)-.+\.js|cdn\.cxense\.com\/)/ }; +var blockedRegexesCustom = {}; var amp_unhide = []; @@ -724,12 +725,10 @@ ext_api.storage.local.get({ block_js_custom.push(domainVar); if (sites_custom[key]['block_javascript_ext'] > 0) block_js_custom_ext.push(domainVar); - if (!(defaultSites_domains.includes(domainVar) && blockedRegexes[domainVar])) { - if (sites_custom[key]['block_regex']) { - if (sites_custom[key]['block_regex'].match(/^\/.+\/$/)) - sites_custom[key]['block_regex'] = sites_custom[key]['block_regex'].replace(/(^\/|\/$)/g, ''); - blockedRegexes[domainVar] = new RegExp(sites_custom[key]['block_regex']); - } + if (sites_custom[key]['block_regex']) { + if (sites_custom[key]['block_regex'].match(/^\/.+\/$/)) + sites_custom[key]['block_regex'] = sites_custom[key]['block_regex'].replace(/(^\/|\/$)/g, ''); + blockedRegexesCustom[domainVar] = new RegExp(sites_custom[key]['block_regex']); } if (sites_custom[key]['amp_unhide'] > 0) amp_unhide.push(domainVar); @@ -812,6 +811,7 @@ ext_api.storage.onChanged.addListener(function (changes, namespace) { use_twitter_referer = use_twitter_referer_default.slice(); block_js_custom = []; block_js_custom_ext = []; + blockedRegexesCustom = {}; amp_unhide = []; for (let key in sites_custom) { var domainVar = sites_custom[key]['domain'].toLowerCase(); @@ -844,20 +844,13 @@ ext_api.storage.onChanged.addListener(function (changes, namespace) { if (sites_custom[key]['block_javascript_ext'] > 0) { block_js_custom_ext.push(domainVar); } - if (!(defaultSites_domains.includes(domainVar) && blockedRegexes[domainVar])) { - if (sites_custom[key]['block_regex']) { - if (sites_custom[key]['block_regex'].match(/^\/.+\/$/)) - sites_custom[key]['block_regex'] = sites_custom[key]['block_regex'].replace(/(^\/|\/$)/g, ''); - blockedRegexes[domainVar] = new RegExp(sites_custom[key]['block_regex']); - } else { - if (blockedRegexes[domainVar]) - delete blockedRegexes[domainVar]; - } + if (sites_custom[key]['block_regex']) { + if (sites_custom[key]['block_regex'].match(/^\/.+\/$/)) + sites_custom[key]['block_regex'] = sites_custom[key]['block_regex'].replace(/(^\/|\/$)/g, ''); + blockedRegexesCustom[domainVar] = new RegExp(sites_custom[key]['block_regex']); } if (sites_custom[key]['amp_unhide'] > 0) { amp_unhide.push(domainVar); - } else { - amp_unhide.splice(amp_unhide.indexOf(domainVar), 1); } switch (sites_custom[key]['referer']) { case 'facebook': @@ -1245,11 +1238,10 @@ ext_api.webRequest.onBeforeSendHeaders.addListener(function(details) { // check for blocked regular expression: domain enabled, match regex, block on an internal or external regex var blockedDomains = Object.keys(blockedRegexes); var domain = matchUrlDomain(blockedDomains, header_referer); - var block_regex = true; - if (domain && details.url.match(blockedRegexes[domain]) && isSiteEnabled({url: header_referer})) { - if (block_regex) - return { cancel: true }; - } + var blockedDomainsCustom = Object.keys(blockedRegexesCustom); + var domainCustom = matchUrlDomain(blockedDomainsCustom, header_referer); + if (((domain && details.url.match(blockedRegexes[domain])) || (domainCustom && details.url.match(blockedRegexesCustom[domainCustom]))) && isSiteEnabled({url: header_referer})) + return { cancel: true }; // load toggleIcon.js (icon for dark or incognito mode in Chrome)) if (typeof browser !== 'object' && ['main_frame', 'xmlhttprequest'].includes(details.type)) { diff --git a/changelog.txt b/changelog.txt index ad6df704..9fc61765 100644 --- a/changelog.txt +++ b/changelog.txt @@ -7,6 +7,7 @@ Fix Business Standard Fix Il Tirreno (GElocal.it) Fix Financial Times (amp) Fix Trouw.nl (timing) +Update custom sites (block regex for default sites) * v2.4.0.0 (2021-10-17) Add Westfaelische Nachrichten (Germany) diff --git a/manifest.json b/manifest.json index 56eea5f5..4f5f31d6 100644 --- a/manifest.json +++ b/manifest.json @@ -556,5 +556,5 @@ "*://*.wallkit.net/*", "*://*.wsj.net/*" ], - "version": "2.4.0.1" + "version": "2.4.0.2" } \ No newline at end of file