declarativeNetRequest.RuleCondition
Подробности условия, определяющего, соответствует ли правило запросу.
Тип
Значения этого типа — объекты. Они содержат следующие свойства:
-
domainTypeНеобязательно -
A
string. Указывает, является ли сетевой запрос первого или третьего уровня для домена, откуда он исходит. Если опущено, все запросы принимаются. Возможные значения —"firstParty"и"thirdParty". -
domainsУстарело Необязательно -
Массив
string. ИспользуйтеinitiatorDomainsвместо этого. Правило соответствует только сетевым запросам, исходящим из этого списка доменов. -
excludedDomainsУстарело Необязательно -
Массив
string. ИспользуйтеexcludedInitiatorDomainsвместо этого. Правило не соответствует сетевым запросам, исходящим из этого списка доменов. -
initiatorDomainsНеобязательно -
Массив
string. Правило соответствует только сетевым запросам, исходящим из этого списка доменов. Если список опушен, правило применяется к запросам со всех доменов. Пустой список недопустим. Следует использовать канонический домен. Сопоставление выполняется с инициатором запроса, а не с URL запроса. -
excludedInitiatorDomainsНеобязательно -
Массив
string. Правило не соответствует сетевым запросам, исходящим из этого списка доменов. Если список пуст или опушен, не исключается ни один домен. Это имеет приоритет надinitiatorDomains. Следует использовать канонический домен. Сопоставление выполняется с инициатором запроса, а не с URL запроса. -
isUrlFilterCaseSensitiveНеобязательно -
A
boolean. Чувствительно ли к регистру условие фильтрации URLurlFilterили регулярное выражениеregexFilter(которое указано)? По умолчанию true в (более ранних) версиях Chrome и Safari, и false в Firefox. По соглашению, значение по умолчанию —trueво всех браузерах, см. вопрос 269 WECG. -
regexFilterНеобязательно -
A
string. Регулярное выражение для сопоставления с URL сетевого запроса. Обратите внимание, что:- Поддерживаемый формат нестабилен и варьируется между браузерами, см. «Регулярные выражения в API DNR (regexFilter)» в вопросе 344 WECG для получения подробностей.
- Можно указать только одно из
urlFilterилиregexFilter. regexFilterдолжно состоять только из символов ASCII. Оно сопоставляется с URL, где хост закодирован в формате punycode (в случае международных доменов), а все другие не-ASCII символы закодированы в UTF-8.
-
requestDomainsНеобязательно -
Массив
string. Правило соответствует сетевым запросам только тогда, когда домен совпадает с одним из этого списка. Если список опущен, правило применяется к запросам со всех доменов. Пустой список недопустим. Следует использовать канонический домен. -
excludedRequestDomainsНеобязательно -
Массив
string. Правило не соответствует сетевым запросам, когда домен совпадает с одним из этого списка. Если список пуст или опущен, не исключается ни один домен. Это имеет приоритет надrequestDomains. Следует использовать канонический домен. -
requestMethodsНеобязательно -
Массив
string. Список HTTP-методов запроса, которым соответствует правило. Пустой список недопустим. Указание условия правилаrequestMethodsтакже исключает запросы, не являющиеся HTTP(s), в то время как указаниеexcludedRequestMethods— нет. -
excludedRequestMethodsНеобязательно -
Массив
string. Список методов запроса, которым правило не соответствует. Следует указать только одно изrequestMethodsиexcludedRequestMethods. Если ни одно из них не указано, соответствуют все методы запроса. -
resourceTypesНеобязательно -
Массив
declarativeNetRequest.ResourceType. Список типов ресурсов, которым соответствует правило. Пустой список недопустим. Это должно быть указано для правил"allowAllRequests"и может включать только типы ресурсов"sub_frame"и"main_frame". -
excludedResourceTypesНеобязательно -
Массив
declarativeNetRequest.ResourceType. Список типов ресурсов, которым правило не соответствует. Следует указать только одно изresourceTypesиexcludedResourceTypes. Если ни одно из них не указано, все типы ресурсов, кроме"main_frame"будут заблокированы. -
tabIdsНеобязательно -
Массив
number. Списокtabs.Tab.idк которым должно относиться правило. Идентификаторtabs.TAB_ID_NONEсоответствует запросам, не исходящим из вкладки. Пустой список недопустим. Поддерживается только для правил уровня сеанса. -
excludedTabIdsНеобязательно -
Массив
number. Списокtabs.Tab.idк которым правило не должно относиться. Идентификаторtabs.TAB_ID_NONEисключает запросы, не исходящие из вкладки. Поддерживается только для правил уровня сеанса. -
urlFilterНеобязательно -
A
string. Шаблон, который сопоставляется с URL сетевого запроса. Поддерживаемые конструкции:- '*' : Подстановка: Сопоставляет любое количество символов.
- '|' : Левый или правый якорь: Если используется в начале или конце шаблона, соответственно, указывает начало или конец URL.
- '||' : Якорь имени домена: Если используется в начале шаблона, указывает начало (под-)домена URL.
- '^' : Разделитель: Сопоставляет все, кроме буквы, цифры или одного из символов _, -, ., или %. Последний
^также может соответствовать концу URL вместо разделителя.urlFilterсостоит из следующих частей: (необязательный левый/якорь имени домена) + шаблон + (необязательный правый якорь). Если опущено, все URL сопоставляются. Пустая строка недопустима. Шаблон, начинающийся с ||*, недопустим. Используйте * вместо этого. Обратите внимание, что: - Можно указать только одно из
urlFilterилиregexFilter. urlFilterдолжно состоять только из символов ASCII. Оно сопоставляется с URL, где хост закодирован в формате punycode (в случае международных доменов), а все остальные не-ASCII символы закодированы в UTF-8. Например, если URL запросаhttp://abc.рф?q=ф, тоurlFilterсопоставляется с URLhttp://abc.xn--p1ai/?q=%D1%84.
Канонический домен
Домены, указанные в initiatorDomains, excludedInitiatorDomains, requestDomains, или excludedRequestDomains, должны соответствовать следующим правилам:
- Допускаются поддомены, такие как "a.example.com".
- Элементы должны состоять только из строчных символов ASCII.
- Используйте кодировку Punycode для международных доменов.
- IP-адреса IPv4 должны быть представлены как 4 числа, разделённые точкой.
- IP-адреса IPv6 должны быть представлены в канонической форме, заключённые в скобки.
Чтобы программно сгенерировать канонический домен для URL, используйте API URL и прочитайте его свойство hostname, например, new URL(url).hostname.
Совместимость с браузерами
| Рабочий стол | Мобильный | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
RuleCondition |
84 | 84 | Нет | ? | 70 | 15 | ? | ? | Нет | ? | 15 | ? |
domains |
84Устарело в Chrome 101, используйтеinitiatorDomains вместо этого. |
84Устарело в Edge 101, используйтеinitiatorDomains вместо этого. |
Нет | ? | 70Устарело в Opera 87, используйтеinitiatorDomains вместо этого. |
15 | ? | ? | Нет | ? | 15 | ? |
excludedDomains |
84Устарело в Chrome 101, используйтеexcludedInitiatorDomains вместо этого. |
84Устарело в Edge 101, используйтеexcludedInitiatorDomains вместо этого. |
Нет | ? | 70Устарело в Opera 87, используйтеexcludedInitiatorDomains вместо этого. |
15 | ? | ? | Нет | ? | 15 | ? |
excludedInitiatorDomains |
101 | 101 | Нет | ? | 87 | Нет | ? | ? | Нет | ? | Нет | ? |
excludedRequestDomains |
101 | 101 | Нет | ? | 87 | предварительный просмотр | ? | ? | Нет | ? | Нет | ? |
excludedRequestMethods |
91 | 91 | Нет | ? | 77 | Нет | ? | ? | Нет | ? | Нет | ? |
requestDomains |
101 | 101 | Нет | ? | 87 | 16.4 | ? | ? | Нет | ? | 16.4 | ? |
requestMethods |
91 | 91 | Нет | ? | 77 | Нет | ? | ? | Нет | ? | Нет | ? |
tabIds |
92 | 92 | Нет | ? | 78 | Нет | ? | ? | Нет | ? | Нет | ? |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/declarativeNetRequest/RuleCondition