From 42667b357ced53f77120e04cccd6259d5da6c683 Mon Sep 17 00:00:00 2001 From: magnolia1234 <7676006-magnolia1234@users.noreply.gitlab.com> Date: Sun, 15 Nov 2020 21:10:03 +0100 Subject: [PATCH] Fix error during tabs.get (no tab with id) Plus maintenance background.js --- background.js | 129 ++++++++++++++++++++++---------------------------- changelog.txt | 1 + manifest.json | 2 +- version.js | 2 +- 4 files changed, 59 insertions(+), 75 deletions(-) diff --git a/background.js b/background.js index 20a26a2e..db65d721 100644 --- a/background.js +++ b/background.js @@ -327,6 +327,54 @@ ext_api.storage.sync.get({ } }); +// add grouped sites to en/disabledSites & init rules (optional) +function add_grouped_sites(init_rules) { + if (enabledSites.includes('ad.nl')) + enabledSites = enabledSites.concat(ad_region_domains); + else + disabledSites = disabledSites.concat(ad_region_domains); + if (enabledSites.includes('nymag.com')) + enabledSites = enabledSites.concat(nymag_domains); + else + disabledSites = disabledSites.concat(nymag_domains); + if (enabledSites.includes('ilmessaggero.it')) { + enabledSites = enabledSites.concat(ilmessaggero_domains); + if (init_rules) + for (let domain of ilmessaggero_domains) { + blockedRegexes[domain] = /utils\.cedsdigital\.it\/js\/PaywallMeter\.js/; + } + } else + disabledSites = disabledSites.concat(ilmessaggero_domains); + if (enabledSites.includes('###_au_comm_media')) { + enabledSites = enabledSites.concat(au_comm_media_domains); + if (init_rules) + for (let domain of au_comm_media_domains) { + allow_cookies.push(domain); + blockedRegexes[domain] = /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/; + } + } else + disabledSites = disabledSites.concat(au_comm_media_domains); + if (enabledSites.includes('###_au_news_corp')) { + enabledSites = enabledSites.concat(au_news_corp_domains); + if (init_rules) + for (let domain of au_news_corp_domains) { + allow_cookies.push(domain); + use_google_bot.push(domain); + blockedRegexes[domain] = /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/; + } + } else + disabledSites = disabledSites.concat(au_news_corp_domains); + if (enabledSites.includes('###_au_prov_news')) { + enabledSites = enabledSites.concat(au_prov_news_domains); + if (init_rules) + for (let domain of au_prov_news_domains) { + allow_cookies.push(domain); + use_google_bot.push(domain); + } + } else + disabledSites = disabledSites.concat(au_prov_news_domains); +} + // Get the enabled sites (from local storage) & add to allow/remove_cookies (if not already in one of these arrays) // Add googlebot- and block_javascript-settings for custom sites ext_api.storage.local.get({ @@ -338,18 +386,14 @@ ext_api.storage.local.get({ for (let key in sites_custom) { var domainVar = sites_custom[key]['domain'].toLowerCase(); - if (sites_custom[key]['googlebot'] > 0 && !use_google_bot.includes(domainVar)) { + if (sites_custom[key]['googlebot'] > 0 && !use_google_bot.includes(domainVar)) use_google_bot.push(domainVar); - } - if (sites_custom[key]['allow_cookies'] > 0 && !allow_cookies.includes(domainVar)) { + if (sites_custom[key]['allow_cookies'] > 0 && !allow_cookies.includes(domainVar)) allow_cookies.push(domainVar); - } - if (sites_custom[key]['block_javascript'] > 0) { + if (sites_custom[key]['block_javascript'] > 0) block_js_custom.push(domainVar); - } - if (sites_custom[key]['block_javascript_ext'] > 0) { + if (sites_custom[key]['block_javascript_ext'] > 0) block_js_custom_ext.push(domainVar); - } } enabledSites = Object.keys(sites).filter(function (key) { @@ -360,46 +404,7 @@ ext_api.storage.local.get({ customSites = sites_custom; customSites_domains = Object.values(sites_custom).map(x => x.domain); disabledSites = defaultSites_domains.concat(customSites_domains).filter(x => !enabledSites.includes(x) && x !== '###'); - if (enabledSites.includes('ad.nl')) - enabledSites = enabledSites.concat(ad_region_domains); - else - disabledSites = disabledSites.concat(ad_region_domains); - if (enabledSites.includes('nymag.com')) { - enabledSites = enabledSites.concat(nymag_domains); - } else - disabledSites = disabledSites.concat(nymag_domains); - if (enabledSites.includes('ilmessaggero.it')) { - enabledSites = enabledSites.concat(ilmessaggero_domains); - for (let domain of ilmessaggero_domains) { - blockedRegexes[domain] = /utils\.cedsdigital\.it\/js\/PaywallMeter\.js/; - } - } else - disabledSites = disabledSites.concat(ilmessaggero_domains); - if (enabledSites.includes('###_au_comm_media')) { - enabledSites = enabledSites.concat(au_comm_media_domains); - for (let domain of au_comm_media_domains) { - allow_cookies.push(domain); - blockedRegexes[domain] = /.+cdn-au\.piano\.io\/api\/tinypass.+\.js/; - } - } else - disabledSites = disabledSites.concat(au_comm_media_domains); - if (enabledSites.includes('###_au_news_corp')) { - enabledSites = enabledSites.concat(au_news_corp_domains); - for (let domain of au_news_corp_domains) { - allow_cookies.push(domain); - use_google_bot.push(domain); - blockedRegexes[domain] = /cdn\.ampproject\.org\/v\d\/amp-access-.+\.js/; - } - } else - disabledSites = disabledSites.concat(au_news_corp_domains); - if (enabledSites.includes('###_au_prov_news')) { - enabledSites = enabledSites.concat(au_prov_news_domains); - for (let domain of au_prov_news_domains) { - allow_cookies.push(domain); - use_google_bot.push(domain); - } - } else - disabledSites = disabledSites.concat(au_prov_news_domains); + add_grouped_sites(true); for (let domainVar of enabledSites) { if (!allow_cookies.includes(domainVar) && !remove_cookies.includes(domainVar)) { @@ -424,30 +429,8 @@ ext_api.storage.onChanged.addListener(function (changes, namespace) { return sites[key]; }); disabledSites = defaultSites_domains.concat(customSites_domains).filter(x => !enabledSites.includes(x) && x !== '###'); - if (enabledSites.includes('ad.nl')) - enabledSites = enabledSites.concat(ad_region_domains); - else - disabledSites = disabledSites.concat(ad_region_domains); - if (enabledSites.includes('nymag.com')) - enabledSites = enabledSites.concat(nymag_domains); - else - disabledSites = disabledSites.concat(nymag_domains); - if (enabledSites.includes('ilmessaggero.it')) - enabledSites = enabledSites.concat(ilmessaggero_domains); - else - disabledSites = disabledSites.concat(nymag_domains); - if (enabledSites.includes('###_au_comm_media')) - enabledSites = enabledSites.concat(au_comm_media_domains); - else - disabledSites = disabledSites.concat(au_comm_media_domains); - if (enabledSites.includes('###_au_news_corp')) - enabledSites = enabledSites.concat(au_news_corp_domains); - else - disabledSites = disabledSites.concat(au_news_corp_domains); - if (enabledSites.includes('###_au_prov_news')) - enabledSites = enabledSites.concat(au_prov_news_domains); - else - disabledSites = disabledSites.concat(au_prov_news_domains); + add_grouped_sites(false); + for (let domainVar of enabledSites) { if (!allow_cookies.includes(domainVar) && !remove_cookies.includes(domainVar)) { allow_cookies.push(domainVar); @@ -837,7 +820,7 @@ ext_api.tabs.onUpdated.addListener(function (tabId, info, tab) { updateBadge(tab ext_api.tabs.onActivated.addListener(function (activeInfo) { ext_api.tabs.get(activeInfo.tabId, updateBadge); }); function updateBadge(activeTab) { - if (!activeTab) + if (ext_api.runtime.lastError || !activeTab) return; let badgeText = ''; let color = 'red'; diff --git a/changelog.txt b/changelog.txt index bc16687b..41545c89 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ Fix-update Folha de S. Paulo (MatherAnalytics) Fix-update Gazet van Antwerpen (video/maps) Fix-update ilMessaggero.it (+ regional sites) Fix-update WSJ (mobile layout) +Fix error during tabs.get (no tab with id) Update custom sites: allow_cookies * v1.9.4.0 (2020-11-08) diff --git a/manifest.json b/manifest.json index 17ebf6fb..ea3f347a 100644 --- a/manifest.json +++ b/manifest.json @@ -348,5 +348,5 @@ "webRequest", "webRequestBlocking" ], - "version": "1.9.4.6" + "version": "1.9.4.7" } \ No newline at end of file diff --git a/version.js b/version.js index d6cd3d4d..000c9e69 100644 --- a/version.js +++ b/version.js @@ -16,7 +16,7 @@ fetch(manifest_new) if (version_new.substring(0, version_len) > manifestData.version.substring(0, version_len)) { var versionString_new = document.getElementById('version_new'); versionString_new.setAttribute('style', 'font-weight: bold;'); - versionString_new.appendChild(document.createTextNode('* ')); + versionString_new.appendChild(document.createTextNode(' * ')); var anchorEl = document.createElement('a'); anchorEl.text = 'New release v' + version_new; if (manifestData.applications.gecko.id.includes('magnolia'))