ohmyguus / i-still-dont-care-about-cookies Goto Github PK
View Code? Open in Web Editor NEWDebloated fork of the extension "I don't care about cookies"
License: GNU General Public License v3.0
Debloated fork of the extension "I don't care about cookies"
License: GNU General Public License v3.0
Website URL(s)
Browser
[x ] Firefox
[] Chrome
Extension version
V1.0.4
The cookie warning window was not clicked automatically.
Website URL(s)
[REQ] Website request: https://www.autoweek.nl/autotests/artikel/porsche-911-gt3-rs-rij-impressie-2/?utm_source=rss&utm_medium=rssdefault&utm_campaign=rss
Browser
[ ] Firefox
Extension version
V1.0.0
Video playback blocked.
Once installed manually, will this receive automatic updates?
In the extension's manifest in the Author - the author is the old developer. Will this be changed in the future, and if so, how? Is it possible to change it now?
Would be great to have some installation instructions in the readme so people know how to build and install.
I have noticed before that there are some video playback on certain websites so I need to look into this.
If someone has examples that I can look into that would be nice :)
still gives an annoying popup about cookies etc
I found this extension (https://chrome.google.com/webstore/detail/i-still-dont-care-about-c/edibdbjcniadpccecjdfdjjppcpchdlm) on the webstore. Is this the official version and when will it be added to the installation guide?
Edit by @OhMyGuus:
Firefox browser add-ons
Chrome Web Store
(The chrome webstore version is still outdated to v1.0.0 but will be updates soon to v1.0.3 (with the fixes on the store page after review))
Website URL(s)
Browser
[x] Firefox
[ ] Chrome
Extension version
V1.0.3
Scrolling is blocked
Login is required for testing
belonging to a single company with the same cookie messages.
https://www.ad.nl/
https://www.bndestem.nl
http://www.destentor.nl/
http://www.gelderlander.nl/
etc., etc...
Website URL(s)
Browser
[ ] Firefox
[x] Chrome
Extension version
V1.0.0
Have the type of rule that is applied on a website this is be open to the end user
Like:
Used CSS rule to hide
Blocked HTTP request to hide
Set a cookie to accept the cookies
Used localstorage to allow (or disallow) the cookies
Used a cookie to allow (or disallow) the cookies
etc.
Website URL(s)
Browser
[X ] Firefox
firefox-105.0.3-1
Extension version
V1.0.0
Most adblockers have support for upper & has selectors which are quite nice to have for this as well.
Possible library to use:
https://github.com/AdguardTeam/ExtendedCss
Hi,
the original add-on can also be found in the Opera add-ons store. Are there plans to also release this fork there? Opera can also use add-ons from the Chrome store using an additional add-on, but for the average user it would be easier to download it directly from the Opera store.
Hi!
I found really interesting the idea of this extension, but at the same time I'd like to know how it works.
I mean, I guess it is going to accept by default all the cookies in all the "compatible" websites, right? I'd like to do it in the other way around: I don't want to accept any cookie by default and reject all of them if it's possible, and if not, just leave the popup opened.
I guess this is not the default behaviour of this extension, right?
Best,
Website URL(s)
https://www.dekamarkt.nl/
Browser
[ ] Firefox
Extension version
V1.0.0
Vertical scrollbar invisible\disabled.
Daniel Kladnik has his extension also listed in the Pale Moon store, but that is of course a XUL extension...
https://addons.palemoon.org/addon/i-dont-care-about-cookies/.
Got the update offered today, but of course didn't install it.
Would compiling it for that browser possible, or is that more difficult?
Looking at the differences between ./data/context-menu.js
from the AMO extension (3.4.3) and ./src/data/context-menu.js
in the one from here, I notice huge differences...
Which result in a non-functional menu in Firefox:
[Edit]
After restarting Firefox the context menu seems to work again.
Sorry about that.
But I'm still confused about those differences.
diff --git a/cr-context-menu.js b/ff_context-menu.js
index ac23a91..610c325 100644
--- a/cr-context-menu.js
+++ b/ff_context-menu.js
@@ -2,7 +2,13 @@
var cached_rules = {},
whitelisted_domains = {},
- tab_list = {};
+ cookie_warning_dismissed_domains = {},
+ tab_list = {},
+ xml_tabs = {};
+
+
+// FF only: debugging mode
+var debug_mode = false;
// Common functions
@@ -25,6 +31,31 @@ function getHostname(url, cleanup)
}
+// Badges
+
+function setBadge(tabId, text) {
+ if (!chrome.browserAction.setBadgeText)
+ return;
+
+ chrome.browserAction.setBadgeText({text: text || '', tabId: tabId});
+
+ if (chrome.browserAction.setBadgeBackgroundColor)
+ chrome.browserAction.setBadgeBackgroundColor({color: '#646464', tabId: tabId});
+}
+
+function setSuccessBadge(tabId) {
+ setBadge(tabId, '✅');
+}
+
+function setDisabledBadge(tabId) {
+ setBadge(tabId, '⛔');
+}
+
+function resetBadge(tabId) {
+ setBadge(tabId);
+}
+
+
// Whitelisting
function updateWhitelist()
@@ -107,6 +138,11 @@ function getPreparedTab(tab)
tab.host_levels.push(parts.slice(-1*i).join('.'));
tab.whitelisted = isWhitelisted(tab);
+
+ if (tab.whitelisted)
+ setDisabledBadge(tab.id || tab.tabId);
+ else if (cookie_warning_dismissed_domains[tab.hostname])
+ setSuccessBadge(tab.id || tab.tabId);
}
}
@@ -115,7 +151,9 @@ function getPreparedTab(tab)
function onCreatedListener(tab)
{
- tab_list[tab.id] = getPreparedTab(tab);
+ resetBadge(tab.id);
+
+ tab_list[tab.id] = getPreparedTab(tab);
}
function onUpdatedListener(tabId, changeInfo, tab) {
@@ -154,6 +192,22 @@ chrome.runtime.onInstalled.addListener(function(d){
if (d.reason == "update" && chrome.runtime.getManifest().version > d.previousVersion)
recreateTabList();
+
+
+ // FF only: debugging mode
+
+ if (d.temporary && d.temporary === true)
+ {
+ recreateTabList();
+ debug_mode = true;
+
+ chrome.notifications.create('debug', {
+ type: "basic",
+ title: "IDCAC debugging mode",
+ message: "You have installed IDCAC in debugging mode. You will be notified when custom rules get applied to websites.",
+ iconUrl: "icons/48.png"
+ });
+ }
});
@@ -200,6 +254,17 @@ function blockUrlCallback(d)
if (group_filters[i].e[exception] == tab_list[d.tabId].host_levels[level])
return {cancel:false};
+ if (debug_mode) {
+ chrome.notifications.create('request_blocked', {
+ type: "basic",
+ title: "IDCAC debugging mode",
+ message: "Block pattern found: " + group_filters[i].r,
+ iconUrl: "icons/48.png"
+ });
+ }
+
+ setSuccessBadge(d.tabId);
+
return {cancel:true};
}
}
@@ -223,6 +288,17 @@ function blockUrlCallback(d)
if (group_filters[i].e[exception] == tab_list[d.tabId].host_levels[level])
return {cancel:false};
+ if (debug_mode) {
+ chrome.notifications.create('request_blocked', {
+ type: "basic",
+ title: "IDCAC debugging mode",
+ message: "Block pattern found: " + group_filters[i].r,
+ iconUrl: "icons/48.png"
+ });
+ }
+
+ setSuccessBadge(d.tabId);
+
return {cancel:true};
}
}
@@ -239,8 +315,24 @@ function blockUrlCallback(d)
var rules = block_urls.specific[tab_list[d.tabId].host_levels[level]];
for (var i in rules)
+ {
if (d.url.indexOf(rules[i]) > -1)
+ {
+ if (debug_mode)
+ {
+ chrome.notifications.create('blocked', {
+ type: "basic",
+ title: "IDCAC debugging mode",
+ message: "Site specific block pattern found: " + rules[i],
+ iconUrl: "icons/48.png"
+ });
+ }
+
+ setSuccessBadge(d.tabId);
+
return {cancel:true};
+ }
+ }
}
}
}
@@ -252,6 +344,21 @@ function blockUrlCallback(d)
chrome.webRequest.onBeforeRequest.addListener(blockUrlCallback, {urls:["http://*/*", "https://*/*"], types:["script","stylesheet","xmlhttprequest"]}, ["blocking"]);
+// Detect content type (XML related Firefox bug)
+
+chrome.webRequest.onHeadersReceived.addListener(function(d) {
+ if (tab_list[d.tabId]) {
+ d.responseHeaders.forEach(function(h) {
+ if (h.name == "Content-Type" || h.name == "content-type") {
+ xml_tabs[d.tabId] = h.value.indexOf("/xml") > -1;
+ }
+ });
+ }
+
+ return {cancel:false};
+}, {urls:["http://*/*", "https://*/*"], types:["main_frame"]}, ["blocking", "responseHeaders"]);
+
+
// Reporting
function reportWebsite(info, tab)
@@ -277,7 +384,7 @@ function reportWebsite(info, tab)
}
- chrome.tabs.create({url:"https://github.com/OhMyGuus/I-Dont-Care-About-Cookies/issues/new"});
+ chrome.tabs.create({url:"https://www.i-dont-care-about-cookies.eu/report/"+chrome.runtime.getManifest().version+'/'+encodeURIComponent(encodeURIComponent(tab.url))});
}
@@ -295,20 +402,39 @@ function activateDomain(hostname, tabId, frameId)
status = false;
if (typeof r.s != 'undefined') {
- chrome.tabs.insertCSS(tabId, {code: r.s, frameId: frameId, matchAboutBlank: true, runAt: 'document_start'});
+ chrome.tabs.insertCSS(tabId, {code: r.s, frameId: frameId, runAt: xml_tabs[tabId] ? 'document_idle' : 'document_start'});
status = true;
}
else if (typeof r.c != 'undefined') {
- chrome.tabs.insertCSS(tabId, {code: commons[r.c], frameId: frameId, matchAboutBlank: true, runAt: 'document_start'});
+ chrome.tabs.insertCSS(tabId, {code: commons[r.c], frameId: frameId, runAt: xml_tabs[tabId] ? 'document_idle' : 'document_start'});
status = true;
}
if (typeof r.j != 'undefined') {
- chrome.tabs.executeScript(tabId, {file: 'data/js/'+(r.j > 0 ? 'common'+r.j : hostname)+'.js', frameId: frameId, matchAboutBlank: true, runAt: 'document_end'});
+ chrome.tabs.executeScript(tabId, {file: 'data/js/'+(r.j > 0 ? 'common'+r.j : hostname)+'.js', frameId: frameId, runAt: xml_tabs[tabId] ? 'document_idle' : 'document_end'});
status = true;
}
- return status;
+ if (!status)
+ return false;
+
+
+ setSuccessBadge(tabId);
+
+
+ // FF only: debugging mode
+
+ if (debug_mode && !frameId)
+ {
+ chrome.notifications.create('applied', {
+ type: "basic",
+ title: "IDCAC debugging mode",
+ message: "Custom rule applied on " + hostname,
+ iconUrl: "icons/48.png"
+ });
+ }
+
+ return true;
}
@@ -321,7 +447,7 @@ function doTheMagic(tabId, frameId, anotherTry)
return;
// Common CSS rules
- chrome.tabs.insertCSS(tabId, {file: "data/css/common.css", frameId: frameId || 0, matchAboutBlank: true, runAt: 'document_start'}, function() {
+ chrome.tabs.insertCSS(tabId, {file: "data/css/common.css", frameId: frameId || 0, runAt: xml_tabs[tabId] ? 'document_idle' : 'document_start'}, function() {
// A failure? Retry.
@@ -331,12 +457,16 @@ function doTheMagic(tabId, frameId, anotherTry)
if (currentTry == 5)
return;
- return doTheMagic(tabId, frameId || 0, currentTry + 1);
+ setTimeout(function() {
+ doTheMagic(tabId, frameId || 0, currentTry + 1)
+ }, 300);
+
+ return;
}
// Common social embeds
- chrome.tabs.executeScript(tabId, {file:'data/js/embeds.js', frameId: frameId || 0, matchAboutBlank: true, runAt: 'document_end'}, function() {});
+ chrome.tabs.executeScript(tabId, {file:'data/js/embeds.js', frameId: frameId || 0, runAt: xml_tabs[tabId] ? 'document_idle' : 'document_end'}, function() {});
if (activateDomain(tab_list[tabId].hostname, tabId, frameId || 0))
return;
@@ -346,7 +476,7 @@ function doTheMagic(tabId, frameId, anotherTry)
return true;
// Common JS rules when custom rules don't exist
- chrome.tabs.executeScript(tabId, {file:'data/js/common.js', frameId: frameId || 0, matchAboutBlank: true, runAt: 'document_end'}, function() {});
+ chrome.tabs.executeScript(tabId, {file:'data/js/common.js', frameId: frameId || 0, runAt: xml_tabs[tabId] ? 'document_idle' : 'document_end'}, function() {});
});
}
@@ -355,6 +485,8 @@ chrome.webNavigation.onCommitted.addListener(function(tab) {
if (tab.frameId > 0)
return;
+ resetBadge(tab.tabId);
+
tab_list[tab.tabId] = getPreparedTab(tab);
doTheMagic(tab.tabId);
@@ -367,6 +499,44 @@ chrome.webRequest.onResponseStarted.addListener(function(tab) {
}, {urls: ['<all_urls>'], types: ['sub_frame']});
+// FF only
+
+chrome.webRequest.onResponseStarted.addListener(function(tab) {
+ doTheMagic(tab.tabId, tab.frameId);
+}, {urls: ['https://consent.google.com/*', 'https://consent.youtube.com/*'], types: ['beacon']});
+
+
+// Update notification
+
+chrome.runtime.onInstalled.addListener(function(d){
+ if (d.reason == "update" && chrome.runtime.getManifest().version > d.previousVersion)
+ {
+ chrome.browserAction.setIcon({path: "icons/32.gif"});
+
+ setTimeout(function(){
+ chrome.browserAction.setIcon({path: "icons/32.png"});
+ }, 4000);
+
+ chrome.tabs.create({url:"https://www.i-dont-care-about-cookies.eu/whats-new/acquisition/"});
+
+// chrome.notifications.create('update', {
+// type: "basic",
+// title: "Big summer update - I don't care about cookies",
+// message: "Support the project, please. Visit i-dont-care-about-cookies.eu",
+// iconUrl: "icons/48.png"
+// });
+ }
+
+ if (d.reason == "install") {
+ chrome.storage.local.get('is_installed', function(r) {
+ if (typeof r.is_installed == 'undefined') {
+ chrome.storage.local.set({'is_installed': true}, function() {
+ // chrome.tabs.create({url:"https://www.i-dont-care-about-cookies.eu"});
+ });
+ }
+ });
+ }
+});
// Toolbar menu
@@ -388,14 +558,18 @@ chrome.runtime.onMessage.addListener(function(request, info, sendResponse) {
else if (request.command == 'toggle_extension')
toggleWhitelist(tab_list[request.tabId]);
else if (request.command == 'report_website')
- chrome.tabs.create({url:"https://github.com/OhMyGuus/I-Dont-Care-About-Cookies/issues/new"});
+ chrome.tabs.create({url:"https://www.i-dont-care-about-cookies.eu/report/"+chrome.runtime.getManifest().version+'/'+encodeURIComponent(encodeURIComponent(tab_list[request.tabId].url))});
else if (request.command == 'refresh_page')
chrome.tabs.executeScript(request.tabId, {code:'window.location.reload();'});
}
else
{
- if (request.command == 'open_options_page')
+ if (request.command == 'open_support_page')
+ chrome.tabs.create({url:"https://www.i-dont-care-about-cookies.eu/"});
+ else if (request.command == 'open_options_page')
chrome.tabs.create({url:chrome.runtime.getURL('data/options.html')});
+ else if (request.command == 'cookie_warning_dismissed' && request.url)
+ cookie_warning_dismissed_domains[getHostname(request.url, true)] = true;
}
}
});
\ No newline at end of file
In the Firefox Store used in the German Language, the Extension is still called I don't care about Cookies.
https://addons.mozilla.org/de/firefox/addon/istilldontcareaboutcookies/
Since it was rebranded, it would be nice if you could edjust the name for the Other Languages in the Extension Store.
Thanks!
I must click the cookie banner.
Website URL(s)
Browser
[x] Firefox
[ ] Chrome
Extension version
V1.0.4
Hello,
I was able to install the zip file in Chromium on Linux as per instructions. Just open Settings, Extensions and drag and drop the zip file on it.
However, Chromium complains about Manifest version 2 being deprecated.
Is there something that could be done about that?
Kind regards.
In this website, https://www.kaptainmusic.com/
Website URL(s)
Browser
[x] Firefox
[] Chrome
Extension version
V1.0.3
Website URL(s)
Browser
[ ] Firefox
[x] Chrome
Extension version
V1.0.4
Blocks too much in this case. The vertical scroll bar completely disappears when enabled.
Todo
(This is just the initial todo list after this I need to create the maintain todo list)
If someone has suggestions or things like that this is the place 👍
Website URL(s)
Browser
[ x] Firefox
[?] Chrome
Extension version
V1.0.3
Comments
Gray layer on top keeps blocking site
Website URL(s)
Browser
[x] Firefox
[ ] Chrome
Extension version
V1.0.3
there is still a div with class page_hider that block the page
Hi,
Are you also going to implement non Avast related changes, in particular new cookie rules, into this fork?
The installation in Firefox fails with the error Message “This add-on could not be installed because it appears to be corrupt”. In Chrome, the zip can be installed, but there is a deprecation warning for manifest version 2.
@OhMyGuus I see that there is another extension called by the same name published by another user on the webstore although i'm not sure if it's a duplicate or a mirror, it links to a website that seems like the official page... do you own the website?
Add a way to report a website without a Github account.
Website URL(s)
Browser
[ ] Firefox
[x] Chrome (Edge, SRWare Iron)
Extension version
V1.0.0
We need a new name for the extension so people aren't getting confused (and so we can upload it).
There are already some nice ideas from the other post but I still need a bit more input so we can decide the best name
Moved it to a poll using discussions : New name for the extension #23
Website URL(s)
Browser
[ ] Firefox
[x] Chrome
Extension version
V1.0.0
The original IDCAC addon accepts cookies/data retention when the option to deny is not apparent. This is an acceptable choice for the end user since they don’t care about cookies, but hurts the progress towards data privacy by default as it creates a set of users that readily accept unlawful behavior.
I propose a feature that does not detract from the user experience, but also helps data privacy on the web: if cookies are forcefully accepted, silently log a complaint with the relevant data privacy authority. This will enable the notified authorities to crack down on the websites which forcefully keep private data of users.
If such a feature is desirable, I can start working on contributing it.
Website URL(s)
Browser
[ ] Firefox
[x] Chrome
Extension version
V1.0.0
I just wondered why Allow access to file URLs and Collect errors is automatically turned on in the Chrome version. Why does the extension need these permissions or is it not possible to disable them in advance?
In licence there is a typo. 😽
disctrubated
should be distributed
.
In the old version there was always a green check mark ✅ when the addon intervened. Is this also possible again in the new version at some point? Would be great!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.