Merge pull request #8 from wanhose/4.1.0

4.1.0
This commit is contained in:
wanhose 2021-07-01 15:15:17 +02:00 committed by GitHub
commit c7ce7eb0a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 73 additions and 41 deletions

View File

@ -1188,7 +1188,6 @@ div[data-notificationid="cookie"]
.cookies_alert
.cookie--form
div[class*="cookieDisclaimer"]
.ot-sdk-show-settings
.basic_features-cookiemessage
.data-protection-notice
#CookieReportsButton
@ -12433,4 +12432,5 @@ html[id="facebook"] > body > div.__fb-light-mode
#cc-banner-wrap
.css-1dbjc4n r-1awozwy r-1m3jxhj r-qo02w8 r-18u37iz r-1d7fvdj r-d9fdf6 r-tvv088 r-13qz1uu
.sibbo-layout
body > sibbo-cmp-layout
body > sibbo-cmp-layout
.cc_banner-wrapper

View File

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Do Not Consent",
"version": "4.0.3",
"version": "4.1.0",
"default_locale": "en",
"description": "__MSG_appDesc__",
"icons": {
@ -21,12 +21,11 @@
"content_scripts": [
{
"all_frames": true,
"css": ["styles/content.css"],
"js": ["scripts/content.js"],
"matches": ["http://*/*", "https://*/*"],
"run_at": "document_start"
}
],
"permissions": ["https://raw.githubusercontent.com/*", "storage", "tabs"],
"permissions": ["http://*/*", "https://*/*", "storage", "tabs"],
"web_accessible_resources": ["assets/fonts/*", "scripts/*", "styles/*"]
}

View File

@ -23,59 +23,66 @@ const isValid = (cache) =>
/**
* @function disableIcon
* @description Disables icon
* @description Disables icon if there is a tab
*
* @param {string} [tabId]
* @returns {boolean}
*/
const disableIcon = (tabId) => {
chrome.browserAction.setIcon({
path: "assets/icons/disabled.png",
tabId,
});
if (tabId) {
chrome.browserAction.setIcon({
path: "assets/icons/disabled.png",
tabId,
});
}
};
/**
* @function disablePopup
* @description Disables popup
* @description Disables popup if there is a tab
*
* @param {string} [tabId]
*/
const disablePopup = (tabId) => {
chrome.browserAction.setPopup({
popup: "",
tabId,
});
if (tabId) {
chrome.browserAction.setPopup({
popup: "",
tabId,
});
}
};
/**
* @function enableIcon
* @description Enables icon
* @description Enables icon if there is a tab
*
* @param {string} [tabId]
*/
const enableIcon = (tabId) => {
chrome.browserAction.setIcon({
path: "assets/icons/enabled.png",
tabId,
});
if (tabId) {
chrome.browserAction.setIcon({
path: "assets/icons/enabled.png",
tabId,
});
}
};
/**
* @function enablePopup
* @description Enables popup
* @description Enables popup if there is a tab
*
* @param {string} [tabId]
*/
const enablePopup = (tabId) => {
chrome.browserAction.setPopup({
popup: "popup.html",
tabId,
});
if (tabId) {
chrome.browserAction.setPopup({
popup: "popup.html",
tabId,
});
}
};
/**
@ -170,27 +177,54 @@ const updateCache = (hostname, state) => {
});
};
/**
* @function updateState
* @description Set an extension state
*
* @param {string} [tabId]
* @param {string} [state]
*/
const updateState = (tabId, state) => {
switch (state) {
case "loading":
chrome.tabs.insertCSS(tabId, {
file: "styles/content.css",
runAt: "document_start",
});
break;
case "ready":
chrome.tabs.removeCSS(tabId, {
file: "styles/content.css",
});
break;
default:
break;
}
};
/**
* @description Listens to content messages
*/
chrome.runtime.onMessage.addListener((request, sender, responseCallback) => {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
const hasPermission = !sender.frameId || sender.frameId === 0;
const tab = tabs[0];
const tabId = tab.id;
const tabId = tab ? tab.id : undefined;
switch (request.type) {
case "DISABLE_ICON":
disableIcon(tabId);
if (hasPermission) disableIcon(tabId);
break;
case "DISABLE_POPUP":
disablePopup(tabId);
if (hasPermission) disablePopup(tabId);
break;
case "ENABLE_ICON":
enableIcon(tabId);
if (hasPermission) enableIcon(tabId);
break;
case "ENABLE_POPUP":
enablePopup(tabId);
if (hasPermission) enablePopup(tabId);
break;
case "GET_CACHE":
getCache(request.hostname, responseCallback);
@ -204,6 +238,9 @@ chrome.runtime.onMessage.addListener((request, sender, responseCallback) => {
case "UPDATE_CACHE":
updateCache(request.hostname, request.state);
break;
case "UPDATE_STATE":
if (hasPermission) updateState(tabId, request.state);
break;
default:
break;
}

View File

@ -59,8 +59,7 @@ const fix = () => {
if (body) body.style.setProperty("overflow-y", "unset", "important");
if (facebook) facebook.style.setProperty("position", "unset", "important");
if (html) html.style.setProperty("overflow-y", "unset", "important");
if (body && !loading) body.style.setProperty("opacity", "1");
if (html && !loading) html.style.setProperty("background-color", "initial");
if (!loading) dispatch({ state: "ready", type: "UPDATE_STATE" });
};
/**
@ -148,7 +147,7 @@ const runTasks = () => {
fix();
removeFromCache();
if (attempts <= 5) removeFromNetwork();
if (document.readyState !== "loading") attempts += 1;
if (document.readyState === "complete") attempts += 1;
}
if (attempts > 20) {
@ -163,20 +162,17 @@ const runTasks = () => {
dispatch(
{ hostname: document.location.hostname, type: "GET_CACHE" },
null,
async ({ enabled, matches }) => {
({ enabled, matches }) => {
dispatch({ type: "ENABLE_POPUP" });
if (enabled) {
dispatch({ state: "loading", type: "UPDATE_STATE" });
selectorsFromCache = matches;
dispatch({ type: "ENABLE_ICON" });
dispatch({ type: "GET_LIST" }, null, async ({ selectors }) => {
dispatch({ type: "GET_LIST" }, null, ({ selectors }) => {
selectorsFromNetwork = selectors;
intervalId = setInterval(runTasks, 500);
});
} else {
document.addEventListener("DOMContentLoaded", () => {
document.body.style.setProperty("opacity", "1", "important");
});
}
}
);

View File

@ -1,5 +1,5 @@
body {
opacity: 0;
display: none !important;
}
@media (prefers-color-scheme: dark) {