diff --git a/src/js/1p-filters.js b/src/js/1p-filters.js index 645d231d5..ccbd7067c 100644 --- a/src/js/1p-filters.js +++ b/src/js/1p-filters.js @@ -70,9 +70,6 @@ let cachedUserFilters = ''; if ( response instanceof Object === false ) { return; } if ( response.hintUpdateToken !== undefined ) { const mode = cmEditor.getMode(); - if ( typeof response.filterOnHeaders === 'boolean' ) { - cmEditor.setOption('filterOnHeaders', response.filterOnHeaders); - } if ( mode.setHints instanceof Function ) { mode.setHints(response); } diff --git a/src/js/asset-viewer.js b/src/js/asset-viewer.js index c9d3d1cbc..060ea20a3 100644 --- a/src/js/asset-viewer.js +++ b/src/js/asset-viewer.js @@ -73,7 +73,6 @@ import './codemirror/ubo-static-filtering.js'; }); if ( hints instanceof Object ) { const mode = cmEditor.getMode(); - cmEditor.setOption('filterOnHeaders', hints.filterOnHeaders === true); if ( mode.setHints instanceof Function ) { mode.setHints(hints); } diff --git a/src/js/background.js b/src/js/background.js index 0e645fa77..bcbb6f10c 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -71,7 +71,6 @@ const hiddenSettingsDefault = { disableWebAssembly: false, extensionUpdateForceReload: false, filterAuthorMode: false, - filterOnHeaders: false, loggerPopupType: 'popup', manualUpdateAssetFetchPeriod: 500, modifyWebextFlavor: 'unset', diff --git a/src/js/benchmarks.js b/src/js/benchmarks.js index 2354701ae..1d02dc94b 100644 --- a/src/js/benchmarks.js +++ b/src/js/benchmarks.js @@ -188,7 +188,7 @@ const loadBenchmarkDataset = (( ) => { staticNetFilteringEngine.matchAndFetchModifiers(fctxt, 'csp'); staticNetFilteringEngine.matchAndFetchModifiers(fctxt, 'permissions'); } - //staticNetFilteringEngine.matchHeaders(fctxt, []); + staticNetFilteringEngine.matchHeaders(fctxt, []); } else if ( redirectEngine !== undefined ) { staticNetFilteringEngine.redirectRequest(redirectEngine, fctxt); } diff --git a/src/js/codemirror/ubo-static-filtering.js b/src/js/codemirror/ubo-static-filtering.js index d84018b9a..963509a83 100644 --- a/src/js/codemirror/ubo-static-filtering.js +++ b/src/js/codemirror/ubo-static-filtering.js @@ -38,15 +38,6 @@ const originHints = []; let hintHelperRegistered = false; -/******************************************************************************/ - -let filterOnHeaders = false; - -CodeMirror.defineOption('filterOnHeaders', false, (cm, state) => { - filterOnHeaders = state; - self.dispatchEvent(new Event('filterOnHeaders')); -}); - /******************************************************************************/ CodeMirror.defineMode('ubo-static-filtering', function() { @@ -214,10 +205,6 @@ CodeMirror.defineMode('ubo-static-filtering', function() { return '+'; }; - self.addEventListener('filterOnHeaders', ( ) => { - astParser.options.filterOnHeaders = filterOnHeaders; - }); - return { lineComment: '!', token: function(stream) { @@ -990,10 +977,6 @@ CodeMirror.registerHelper('fold', 'ubo-static-filtering', (( ) => { } }; - self.addEventListener('filterOnHeaders', ( ) => { - astParser.options.filterOnHeaders = filterOnHeaders; - }); - CodeMirror.defineInitHook(cm => { cm.on('changes', onChanges); cm.on('beforeChange', onBeforeChanges); diff --git a/src/js/messaging.js b/src/js/messaging.js index 053fad433..443b4bdfa 100644 --- a/src/js/messaging.js +++ b/src/js/messaging.js @@ -1600,7 +1600,6 @@ const onMessage = function(request, sender, callback) { response.preparseDirectiveHints = sfp.utils.preparser.getHints(); response.expertMode = µb.hiddenSettings.filterAuthorMode; - response.filterOnHeaders = µb.hiddenSettings.filterOnHeaders; } if ( request.hintUpdateToken !== µb.pageStoresToken ) { response.originHints = getOriginHints(); diff --git a/src/js/reverselookup.js b/src/js/reverselookup.js index 757c62108..27f0136f8 100644 --- a/src/js/reverselookup.js +++ b/src/js/reverselookup.js @@ -131,7 +131,6 @@ const fromNetFilter = async function(rawFilter) { const writer = new CompiledListWriter(); const parser = new sfp.AstFilterParser({ expertMode: true, - filterOnHeaders: true, maxTokenLength: staticNetFilteringEngine.MAX_TOKEN_LENGTH, nativeCssHas: vAPI.webextFlavor.env.includes('native_css_has'), }); diff --git a/src/js/static-filtering-parser.js b/src/js/static-filtering-parser.js index 4e274daea..94ee66cd1 100644 --- a/src/js/static-filtering-parser.js +++ b/src/js/static-filtering-parser.js @@ -1279,7 +1279,7 @@ export class AstFilterParser { realBad = isException === false || isNegated || hasValue; break; case NODE_TYPE_NET_OPTION_NAME_HEADER: - realBad = this.options.filterOnHeaders !== true || isNegated || hasValue === false; + realBad = isNegated || hasValue === false; break; case NODE_TYPE_NET_OPTION_NAME_IMPORTANT: realBad = isException || isNegated || hasValue; diff --git a/src/js/static-net-filtering.js b/src/js/static-net-filtering.js index fbda11573..757c5a0a8 100644 --- a/src/js/static-net-filtering.js +++ b/src/js/static-net-filtering.js @@ -5000,25 +5000,25 @@ FilterContainer.prototype.realmMatchString = function( let tokenHash = DOT_TOKEN_HASH; if ( (ibucket00 !== 0) && - (iunit = bucket00.get(tokenHash) || 0) !== 0 && + (iunit = bucket00.get(DOT_TOKEN_HASH) || 0) !== 0 && (filterMatch(iunit) === true) ) { catBits = catBits00; } else if ( (ibucket01 !== 0) && - (iunit = bucket01.get(tokenHash) || 0) !== 0 && + (iunit = bucket01.get(DOT_TOKEN_HASH) || 0) !== 0 && (filterMatch(iunit) === true) ) { catBits = catBits01; } else if ( (ibucket10 !== 0) && - (iunit = bucket10.get(tokenHash) || 0) !== 0 && + (iunit = bucket10.get(DOT_TOKEN_HASH) || 0) !== 0 && (filterMatch(iunit) === true) ) { catBits = catBits10; } else if ( (ibucket11 !== 0) && - (iunit = bucket11.get(tokenHash) || 0) !== 0 && + (iunit = bucket11.get(DOT_TOKEN_HASH) || 0) !== 0 && (filterMatch(iunit) === true) ) { catBits = catBits11; @@ -5200,12 +5200,16 @@ FilterContainer.prototype.matchHeaders = function(fctxt, headers) { $httpHeaders.init(headers); let r = 0; - if ( this.realmMatchString(HEADERS | BlockImportant, typeBits, partyBits) ) { + if ( this.realmMatchString(HEADERS | BlockAction, typeBits, partyBits) ) { r = 1; - } else if ( this.realmMatchString(HEADERS | BlockAction, typeBits, partyBits) ) { - r = this.realmMatchString(HEADERS | AllowAction, typeBits, partyBits) - ? 2 - : 1; + } + if ( r !== 0 && $isBlockImportant !== true ) { + if ( this.realmMatchString(HEADERS | AllowAction, typeBits, partyBits) ) { + r = 2; + if ( this.realmMatchString(HEADERS | BlockImportant, typeBits, partyBits) ) { + r = 1; + } + } } $httpHeaders.reset(); diff --git a/src/js/storage.js b/src/js/storage.js index 7266868f4..28482e3ce 100644 --- a/src/js/storage.js +++ b/src/js/storage.js @@ -1051,7 +1051,6 @@ self.addEventListener('hiddenSettingsChanged', ( ) => { this.hiddenSettings.filterAuthorMode !== false; const parser = new sfp.AstFilterParser({ expertMode, - filterOnHeaders: µb.hiddenSettings.filterOnHeaders, maxTokenLength: staticNetFilteringEngine.MAX_TOKEN_LENGTH, nativeCssHas: vAPI.webextFlavor.env.includes('native_css_has'), }); diff --git a/src/js/traffic.js b/src/js/traffic.js index 3677cb69d..c004dbb56 100644 --- a/src/js/traffic.js +++ b/src/js/traffic.js @@ -516,7 +516,7 @@ const onHeadersReceived = function(details) { const { responseHeaders } = details; if ( Array.isArray(responseHeaders) === false ) { return; } - if ( isRootDoc === false && µb.hiddenSettings.filterOnHeaders === true ) { + if ( isRootDoc === false ) { const result = pageStore.filterOnHeaders(fctxt, responseHeaders); if ( result !== 0 ) { if ( logger.enabled ) {