Skip to content

Commit c4d39d3

Browse files
committed
Fix cookie removal on subdomains of base domain
Related issue: - uBlockOrigin/uBlock-issues#1126
1 parent d95bab1 commit c4d39d3

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

assets/resources/scriptlets.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1197,14 +1197,14 @@
11971197
// https://github.com/NanoAdblocker/NanoFilters/issues/149
11981198
/// cookie-remover.js
11991199
(function() {
1200-
let needle = '{{1}}',
1201-
reName = /./;
1200+
const needle = '{{1}}';
1201+
let reName = /./;
12021202
if ( /^\/.+\/$/.test(needle) ) {
12031203
reName = new RegExp(needle.slice(1,-1));
12041204
} else if ( needle !== '' && needle !== '{{1}}' ) {
12051205
reName = new RegExp(needle.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
12061206
}
1207-
let removeCookie = function() {
1207+
const removeCookie = function() {
12081208
document.cookie.split(';').forEach(cookieStr => {
12091209
let pos = cookieStr.indexOf('=');
12101210
if ( pos === -1 ) { return; }
@@ -1213,8 +1213,16 @@
12131213
let part1 = cookieName + '=';
12141214
let part2a = '; domain=' + document.location.hostname;
12151215
let part2b = '; domain=.' + document.location.hostname;
1216+
let part2c, part2d;
12161217
let domain = document.domain;
1217-
let part2c = domain && domain !== document.location.hostname ? '; domain=.' + domain : undefined;
1218+
if ( domain ) {
1219+
if ( domain !== document.location.hostname ) {
1220+
part2c = '; domain=.' + domain;
1221+
}
1222+
if ( domain.startsWith('www.') ) {
1223+
part2d = '; domain=' + domain.replace('www', '');
1224+
}
1225+
}
12181226
let part3 = '; path=/';
12191227
let part4 = '; Max-Age=-1000; expires=Thu, 01 Jan 1970 00:00:00 GMT';
12201228
document.cookie = part1 + part4;
@@ -1226,6 +1234,9 @@
12261234
if ( part2c !== undefined ) {
12271235
document.cookie = part1 + part2c + part3 + part4;
12281236
}
1237+
if ( part2d !== undefined ) {
1238+
document.cookie = part1 + part2d + part3 + part4;
1239+
}
12291240
});
12301241
};
12311242
removeCookie();

0 commit comments

Comments
 (0)