diff --git a/data/elements.txt b/data/elements.txt index e666d05..18234a9 100644 --- a/data/elements.txt +++ b/data/elements.txt @@ -603,7 +603,6 @@ div[data-is-cookieinfo] #site-cookie-policy #privacy_bandeau #AdBlockerInfo -.fbar #cookie--disclaimer #cookieNonsense #cookie-confirm-box diff --git a/manifest.json b/manifest.json index 648851f..ab1296a 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Do Not Consent", - "version": "4.0.2", + "version": "4.0.3", "default_locale": "en", "description": "__MSG_appDesc__", "icons": { diff --git a/scripts/background.js b/scripts/background.js index 05bf90d..bd78d3f 100644 --- a/scripts/background.js +++ b/scripts/background.js @@ -79,7 +79,6 @@ const enablePopup = (tabId) => { }; /** - * @async * @function getCache * @description Retrieves cache state * @@ -88,7 +87,7 @@ const enablePopup = (tabId) => { * @returns {Promise<{ enabled: boolean, matches: string[] }>} Cache state */ -const getCache = async (hostname, responseCallback) => { +const getCache = (hostname, responseCallback) => { chrome.storage.local.get(null, (store) => { try { const cache = store[hostname]; @@ -104,7 +103,6 @@ const getCache = async (hostname, responseCallback) => { }; /** - * @async * @function getTab * @description Retrieves current tab information * @@ -146,7 +144,6 @@ const getList = async (responseCallback) => { }; /** - * @async * @function updateCache * @description Update cache state * @@ -154,7 +151,7 @@ const getList = async (responseCallback) => { * @param {object} [state] */ -const updateCache = async (hostname, state) => { +const updateCache = (hostname, state) => { chrome.storage.local.get(null, (cache) => { const current = cache[hostname]; diff --git a/scripts/content.js b/scripts/content.js index 1e93d6b..e2d2485 100644 --- a/scripts/content.js +++ b/scripts/content.js @@ -6,6 +6,14 @@ let attempts = 1; +/** + * @constant dispatch + * @description Shortcut to send messages to background script + * @type {void} + */ + +const dispatch = chrome.runtime.sendMessage; + /** * @var intervalId * @description Task interval identifier @@ -46,7 +54,7 @@ let selectorsFromNetwork = []; const fix = () => { const html = document.documentElement; const body = document.body; - const facebook = document.getElementsByClassName("._31e")[0]; + const facebook = document.getElementsByClassName("_31e")[0]; if (body) body.style.setProperty("overflow-y", "unset", "important"); if (facebook) facebook.style.setProperty("position", "unset", "important"); @@ -116,7 +124,7 @@ const removeFromNetwork = () => { if (!["BODY", "HTML"].includes(tagName)) { element.remove(); loading = false; - chrome.runtime.sendMessage({ + dispatch({ hostname: document.location.hostname, state: { matches: [selector] }, type: "UPDATE_CACHE", @@ -152,25 +160,23 @@ const runTasks = () => { * @description Setup extension context */ -chrome.runtime.sendMessage( +dispatch( { hostname: document.location.hostname, type: "GET_CACHE" }, null, async ({ enabled, matches }) => { - chrome.runtime.sendMessage({ type: "ENABLE_POPUP" }); + dispatch({ type: "ENABLE_POPUP" }); if (enabled) { selectorsFromCache = matches; - chrome.runtime.sendMessage({ type: "ENABLE_ICON" }); - chrome.runtime.sendMessage( - { type: "GET_LIST" }, - null, - async ({ selectors }) => { - selectorsFromNetwork = selectors; - intervalId = setInterval(runTasks, 500); - } - ); + dispatch({ type: "ENABLE_ICON" }); + dispatch({ type: "GET_LIST" }, null, async ({ selectors }) => { + selectorsFromNetwork = selectors; + intervalId = setInterval(runTasks, 500); + }); } else { - document.documentElement.style.setProperty("opacity", "1", "important"); + document.addEventListener("DOMContentLoaded", () => { + document.body.style.setProperty("opacity", "1", "important"); + }); } } ); diff --git a/scripts/popup.js b/scripts/popup.js index 7b76b41..4ae1531 100644 --- a/scripts/popup.js +++ b/scripts/popup.js @@ -7,6 +7,14 @@ const chromeUrl = "https://chrome.google.com/webstore/detail/do-not-consent/djcbfpkdhdkaflcigibkbpboflaplabg"; +/** + * @constant dispatch + * @description Shortcut to send messages to background script + * @type {void} + */ + +const dispatch = chrome.runtime.sendMessage; + /** * @constant firefoxUrl * @description Firefox Add-ons link @@ -25,43 +33,37 @@ const firefoxUrl = const isChromium = chrome.runtime.getURL("").startsWith("chrome-extension://"); /** - * @async * @function handlePowerChange * @description Disables or enables extension on current page */ -const handlePowerChange = async () => { - chrome.runtime.sendMessage({ type: "GET_TAB" }, null, ({ hostname, id }) => { - chrome.runtime.sendMessage( - { hostname, type: "GET_CACHE" }, - null, - ({ enabled }) => { - const power = document.getElementById("power"); +const handlePowerChange = () => { + dispatch({ type: "GET_TAB" }, null, ({ hostname, id }) => { + dispatch({ hostname, type: "GET_CACHE" }, null, ({ enabled }) => { + const power = document.getElementById("power"); - chrome.runtime.sendMessage({ - hostname, - state: { enabled: !enabled }, - type: "UPDATE_CACHE", - }); - chrome.runtime.sendMessage({ - type: !enabled === true ? "ENABLE_ICON" : "DISABLE_ICON", - }); - if (!enabled === false) power.removeAttribute("checked"); - if (!enabled === true) power.setAttribute("checked", "checked"); - chrome.tabs.reload(id, { bypassCache: true }); - } - ); + dispatch({ + hostname, + state: { enabled: !enabled }, + type: "UPDATE_CACHE", + }); + dispatch({ + type: !enabled === true ? "ENABLE_ICON" : "DISABLE_ICON", + }); + if (!enabled === false) power.removeAttribute("checked"); + if (!enabled === true) power.setAttribute("checked", "checked"); + chrome.tabs.reload(id, { bypassCache: true }); + }); }); }; /** - * @async * @function handleReload * @description Reload current page */ -const handleReload = async () => { - chrome.runtime.sendMessage({ type: "GET_TAB" }, null, ({ id }) => { +const handleReload = () => { + dispatch({ type: "GET_TAB" }, null, ({ id }) => { chrome.tabs.reload(id, { bypassCache: true }); }); }; @@ -92,33 +94,28 @@ const handleRate = (event) => { }; /** - * @async * @function handleContentLoaded * @description Setup stars handlers and result message links */ -const handleContentLoaded = async () => { - chrome.runtime.sendMessage({ type: "GET_TAB" }, null, ({ hostname, id }) => { - chrome.runtime.sendMessage( - { hostname, type: "GET_CACHE" }, - null, - ({ enabled }) => { - const host = document.getElementById("host"); - const like = document.getElementById("like"); - const power = document.getElementById("power"); - const reload = document.getElementById("reload"); - const store = document.getElementById("store"); - const unlike = document.getElementById("unlike"); +const handleContentLoaded = () => { + dispatch({ type: "GET_TAB" }, null, ({ hostname, id }) => { + dispatch({ hostname, type: "GET_CACHE" }, null, ({ enabled }) => { + const host = document.getElementById("host"); + const like = document.getElementById("like"); + const power = document.getElementById("power"); + const reload = document.getElementById("reload"); + const store = document.getElementById("store"); + const unlike = document.getElementById("unlike"); - like.addEventListener("click", handleRate); - power.addEventListener("change", handlePowerChange); - reload.addEventListener("click", handleReload); - store.setAttribute("href", isChromium ? chromeUrl : firefoxUrl); - unlike.addEventListener("click", handleRate); - if (location) host.innerText = hostname.replace("www.", ""); - if (!enabled) power.removeAttribute("checked"); - } - ); + like.addEventListener("click", handleRate); + power.addEventListener("change", handlePowerChange); + reload.addEventListener("click", handleReload); + store.setAttribute("href", isChromium ? chromeUrl : firefoxUrl); + unlike.addEventListener("click", handleRate); + if (location) host.innerText = hostname.replace("www.", ""); + if (!enabled) power.removeAttribute("checked"); + }); }); };