diff --git a/platform/chromium/manifest.json b/platform/chromium/manifest.json index ba860b6e3..b2945f90f 100644 --- a/platform/chromium/manifest.json +++ b/platform/chromium/manifest.json @@ -89,7 +89,7 @@ }, "incognito": "split", "manifest_version": 2, - "minimum_chrome_version": "80.0", + "minimum_chrome_version": "85.0", "name": "uBlock Origin", "options_ui": { "page": "dashboard.html", diff --git a/platform/firefox/manifest.json b/platform/firefox/manifest.json index bd347e5ee..b5d28c111 100644 --- a/platform/firefox/manifest.json +++ b/platform/firefox/manifest.json @@ -17,7 +17,7 @@ "browser_specific_settings": { "gecko": { "id": "uBlock0@raymondhill.net", - "strict_min_version": "78.0" + "strict_min_version": "79.0" }, "gecko_android": { "strict_min_version": "79.0" diff --git a/platform/opera/manifest.json b/platform/opera/manifest.json index 38015c395..6b9f0e015 100644 --- a/platform/opera/manifest.json +++ b/platform/opera/manifest.json @@ -88,7 +88,7 @@ }, "incognito": "split", "manifest_version": 2, - "minimum_opera_version": "67.0", + "minimum_opera_version": "79.0", "name": "uBlock Origin", "options_page": "dashboard.html", "permissions": [ diff --git a/src/js/static-net-filtering.js b/src/js/static-net-filtering.js index b1a56d232..e6796d89a 100644 --- a/src/js/static-net-filtering.js +++ b/src/js/static-net-filtering.js @@ -4565,6 +4565,7 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar // Patch modifier filters for ( const rule of ruleset ) { if ( rule.__modifierType === undefined ) { continue; } + let patchDomainOption = false; switch ( rule.__modifierType ) { case 'csp': rule.action.type = 'modifyHeaders'; @@ -4576,6 +4577,7 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar if ( rule.__modifierAction === ALLOW_REALM ) { dnrAddRuleError(rule, `Unsupported csp exception: ${rule.__modifierValue}`); } + patchDomainOption = true; break; case 'permissions': rule.action.type = 'modifyHeaders'; @@ -4587,6 +4589,7 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar if ( rule.__modifierAction === ALLOW_REALM ) { dnrAddRuleError(rule, `Unsupported permissions exception: ${rule.__modifierValue}`); } + patchDomainOption = true; break; case 'redirect-rule': { let token = rule.__modifierValue; @@ -4689,6 +4692,21 @@ StaticNetFilteringEngine.prototype.dnrFromCompiled = function(op, context, ...ar dnrAddRuleError(rule, `Unsupported modifier ${rule.__modifierType}`); break; } + + // Some modifiers only work on document resources + // Related issue: https://github.com/uBlockOrigin/uBOL-home/issues/156 + if ( patchDomainOption ) { + const domains = rule.condition.initiatorDomains; + if ( Array.isArray(domains) && domains.length !== 0 ) { + rule.condition.requestDomains ||= []; + rule.condition.requestDomains.push(...domains); + } + const notDomains = rule.condition.excludedInitiatorDomains; + if ( Array.isArray(notDomains) && notDomains.length !== 0 ) { + rule.condition.excludedRequestDomains ||= []; + rule.condition.excludedRequestDomains.push(...notDomains); + } + } } return {