From c142d9af67079d8e2179295035859f70309ff334 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Thu, 29 May 2025 14:33:30 -0400 Subject: [PATCH] [mv3] Fix dnr-parser for Safari compatibility --- platform/mv3/extension/js/develop.js | 2 ++ platform/mv3/extension/js/dnr-parser.js | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/platform/mv3/extension/js/develop.js b/platform/mv3/extension/js/develop.js index 86f60bccf..25a237455 100644 --- a/platform/mv3/extension/js/develop.js +++ b/platform/mv3/extension/js/develop.js @@ -245,6 +245,8 @@ function getAutocompleteCandidates(from) { { token: 'urlFilter:', after: ' ' }, { token: 'initiatorDomains:', after: '\n - ' }, { token: 'excludedInitiatorDomains:', after: '\n - ' }, + { token: 'domains:', after: '\n - ' }, + { token: 'excludedDomains:', after: '\n - ' }, { token: 'requestDomains:', after: '\n - ' }, { token: 'excludedRequestDomains:', after: '\n - ' }, { token: 'resourceTypes:', after: '\n - ' }, diff --git a/platform/mv3/extension/js/dnr-parser.js b/platform/mv3/extension/js/dnr-parser.js index 8c4799b88..68d243df0 100644 --- a/platform/mv3/extension/js/dnr-parser.js +++ b/platform/mv3/extension/js/dnr-parser.js @@ -294,12 +294,14 @@ const perScopeParsers = { rule.condition.urlFilter = val; break; case 'initiatorDomains': - rule.condition.initiatorDomains = []; - scope.push('initiatorDomains'); + case 'domains': + rule.condition[key] = []; + scope.push(key); break; case 'excludedInitiatorDomains': - rule.condition.excludedInitiatorDomains = []; - scope.push('excludedInitiatorDomains'); + case 'excludedDomains': + rule.condition[key] = []; + scope.push(key); break; case 'requestDomains': rule.condition.requestDomains = []; @@ -348,6 +350,16 @@ const perScopeParsers = { rule.condition.excludedInitiatorDomains.push(node.val); return true; }, + 'condition.domains': function(scope, rule, node) { + if ( node.list !== true ) { return false; } + rule.condition.domains.push(node.val); + return true; + }, + 'condition.excludedDomains': function(scope, rule, node) { + if ( node.list !== true ) { return false; } + rule.condition.excludedDomains.push(node.val); + return true; + }, 'condition.requestDomains': function(scope, rule, node) { if ( node.list !== true ) { return false; } rule.condition.requestDomains.push(node.val);