Spec-Zone.ru › Web Extensions

declarativeNetRequest.RuleCondition

Подробности условия, определяющего, соответствует ли правило запросу.

Тип

Значения этого типа — объекты. Они содержат следующие свойства:

domainType Необязательно

A string. Указывает, является ли сетевой запрос первого или третьего уровня для домена, откуда он исходит. Если опущено, все запросы принимаются. Возможные значения — "firstParty" и "thirdParty".

domains Устарело Необязательно

Массив string. Используйте initiatorDomains вместо этого. Правило соответствует только сетевым запросам, исходящим из этого списка доменов.

excludedDomains Устарело Необязательно

Массив string. Используйте excludedInitiatorDomains вместо этого. Правило не соответствует сетевым запросам, исходящим из этого списка доменов.

initiatorDomains Необязательно

Массив string. Правило соответствует только сетевым запросам, исходящим из этого списка доменов. Если список опушен, правило применяется к запросам со всех доменов. Пустой список недопустим. Следует использовать канонический домен. Сопоставление выполняется с инициатором запроса, а не с URL запроса.

excludedInitiatorDomains Необязательно

Массив string. Правило не соответствует сетевым запросам, исходящим из этого списка доменов. Если список пуст или опушен, не исключается ни один домен. Это имеет приоритет над initiatorDomains. Следует использовать канонический домен. Сопоставление выполняется с инициатором запроса, а не с URL запроса.

isUrlFilterCaseSensitive Необязательно

A boolean. Чувствительно ли к регистру условие фильтрации URL urlFilter или регулярное выражение 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 сопоставляется с URL http://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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API