diff --git a/platform/mv3/extension/js/scripting/css-declarative.js b/platform/mv3/extension/js/scripting/css-declarative.js index 097d6fc7f..ae5bf3031 100644 --- a/platform/mv3/extension/js/scripting/css-declarative.js +++ b/platform/mv3/extension/js/scripting/css-declarative.js @@ -105,25 +105,30 @@ if ( selectors.length === 0 ) { return; } const cssRuleFromProcedural = details => { const { tasks, action } = details; - let mq; - if ( tasks !== undefined ) { - if ( tasks.length > 1 ) { return; } + let mq, selector; + if ( Array.isArray(tasks) ) { if ( tasks[0][0] !== 'matches-media' ) { return; } mq = tasks[0][1]; + if ( tasks.length > 2 ) { return; } + if ( tasks.length === 2 ) { + if ( tasks[1][0] !== 'spath' ) { return; } + selector = tasks[1][1]; + } } let style; if ( Array.isArray(action) ) { if ( action[0] !== 'style' ) { return; } + selector = selector || details.selector; style = action[1]; } - if ( mq === undefined && style === undefined ) { return; } + if ( mq === undefined && style === undefined && selector === undefined ) { return; } if ( mq === undefined ) { - return `${details.selector}\n{${style}}`; + return `${selector}\n{${style}}`; } if ( style === undefined ) { - return `@media ${mq} {\n${details.selector}\n{display:none!important;}\n}`; + return `@media ${mq} {\n${selector}\n{display:none!important;}\n}`; } - return `@media ${mq} {\n${details.selector}\n{${style}}\n}`; + return `@media ${mq} {\n${selector}\n{${style}}\n}`; }; const sheetText = []; diff --git a/src/js/static-filtering-parser.js b/src/js/static-filtering-parser.js index 65ec52288..16c05334e 100644 --- a/src/js/static-filtering-parser.js +++ b/src/js/static-filtering-parser.js @@ -3115,7 +3115,10 @@ class ExtSelectorCompiler { if ( Array.isArray(r.tasks) === false ) { return true; } if ( r.tasks[0][0] === 'matches-media' ) { if ( r.tasks.length === 1 ) { return true; } - if ( r.tasks.length === 2 && r.tasks[1][0] === 'spath' ) { return true; } + if ( r.tasks.length === 2 ) { + if ( r.selector !== '' ) { return false; } + if ( r.tasks[1][0] === 'spath' ) { return true; } + } } return false; }