1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-09-18 08:52:26 +02:00

Fix block filter reported in the logger despite being excepted

Reported internally by @uBlock-user.

Also, fixed broken caching of `cname` exception, which forced
uBO to repeatedly evaluate whether a `cname` exception exists
when a block `cname`-cloaked request is encountered.
This commit is contained in:
Raymond Hill 2020-12-08 11:16:17 -05:00
parent a440bcbc46
commit 3ff6617ea3
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2

View File

@ -377,7 +377,9 @@ const PageStore = class {
setFrameURL(frameId, frameURL) { setFrameURL(frameId, frameURL) {
let frameStore = this.frames.get(frameId); let frameStore = this.frames.get(frameId);
if ( frameStore !== undefined ) { if ( frameStore !== undefined ) {
frameStore.init(frameURL); if ( frameURL !== frameStore.rawURL ) {
frameStore.init(frameURL);
}
} else { } else {
frameStore = FrameStore.factory(frameURL); frameStore = FrameStore.factory(frameURL);
this.frames.set(frameId, frameStore); this.frames.set(frameId, frameStore);
@ -613,7 +615,7 @@ const PageStore = class {
result = snfe.matchString(fctxt); result = snfe.matchString(fctxt);
if ( result !== 0 ) { if ( result !== 0 ) {
if ( loggerEnabled ) { if ( loggerEnabled ) {
fctxt.filter = snfe.toLogData(); fctxt.setFilter(snfe.toLogData());
} }
// https://github.com/uBlockOrigin/uBlock-issues/issues/943 // https://github.com/uBlockOrigin/uBlock-issues/issues/943
// Blanket-except blocked aliased canonical hostnames? // Blanket-except blocked aliased canonical hostnames?
@ -872,20 +874,16 @@ const PageStore = class {
? frameStore.rawURL ? frameStore.rawURL
: fctxt.getDocOrigin() : fctxt.getDocOrigin()
); );
if ( result === 2 ) { exceptCname = result === 2
exceptCname = µb.logger.enabled ? µb.staticNetFilteringEngine.toLogData()
? µb.staticNetFilteringEngine.toLogData() : false;
: true;
} else {
exceptCname = false;
}
if ( frameStore instanceof Object ) { if ( frameStore instanceof Object ) {
frameStore.exceptCname = exceptCname; frameStore.exceptCname = exceptCname;
} }
} }
if ( exceptCname === false ) { return false; } if ( exceptCname === false ) { return false; }
if ( exceptCname instanceof Object ) { if ( exceptCname instanceof Object ) {
fctxt.pushFilter(exceptCname); fctxt.setFilter(exceptCname);
} }
return true; return true;
} }