Описание
API chrome.declarativeNetRequest
используется для блокировки или изменения сетевых запросов путём указания декларативных правил. Это позволяет расширениям изменять сетевые запросы, не перехватывая их и не просматривая их содержимое, обеспечивая тем самым большую конфиденциальность.
Разрешения
declarativeNetRequest
declarativeNetRequestWithHostAccess
Разрешения « declarativeNetRequest
» и « declarativeNetRequestWithHostAccess
» предоставляют одинаковые возможности. Различия между ними заключаются в том, когда разрешения запрашиваются или предоставляются.
-
"declarativeNetRequest"
- Вызывает предупреждение о нехватке прав доступа во время установки, но предоставляет неявный доступ к правилам
allow
,allowAllRequests
иblock
. Используйте это по возможности, чтобы избежать необходимости запрашивать полный доступ к хостам. -
"declarativeNetRequestFeedback"
- Включает функции отладки для распакованных расширений , в частности
getMatchedRules()
иonRuleMatchedDebug
. -
"declarativeNetRequestWithHostAccess"
- Предупреждение о наличии прав доступа не отображается во время установки, но перед выполнением каких-либо действий на хосте необходимо запросить разрешения. Это удобно, если вы хотите использовать декларативные правила сетевых запросов в расширении, у которого уже есть разрешения на доступ к хосту, без генерации дополнительных предупреждений.
Доступность
Манифест
Помимо описанных ранее разрешений, некоторые типы наборов правил, в частности статические, требуют объявления ключа манифеста "declarative_net_request"
, который должен представлять собой словарь с единственным ключом "rule_resources"
. Этот ключ представляет собой массив, содержащий словари типа Ruleset
, как показано ниже. (Обратите внимание, что имя «Ruleset» не отображается в JSON-коде манифеста, поскольку это всего лишь массив.) Статические наборы правил рассматриваются далее в этом документе.
{
"name": "My extension",
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
}, {
"id": "ruleset_2",
"enabled": false,
"path": "rules_2.json"
}]
},
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback"
],
"host_permissions": [
"http://www.blogger.com/*",
"http://*.google.com/*"
],
...
}
Правила и наборы правил
Чтобы использовать этот API, укажите один или несколько наборов правил. Набор правил содержит массив правил. Каждое правило выполняет одно из следующих действий:
- Блокировать сетевой запрос.
- Обновите схему (с http на https).
- Предотвратите блокировку запроса, отменив все соответствующие правила блокировки.
- Перенаправление сетевого запроса.
- Измените заголовки запроса или ответа.
Существует три типа наборов правил, управление которыми немного различается.
- Динамичный
- Сохраняются между сеансами браузера и обновлениями расширений и управляются с помощью JavaScript, пока используется расширение.
- Сессия
- Сбрасывается при закрытии браузера и установке новой версии расширения. Правила сеанса управляются с помощью JavaScript, пока используется расширение.
- Статичный
- Упаковывается, устанавливается и обновляется при установке или обновлении расширения. Статические правила хранятся в файлах правил в формате JSON и перечислены в файле манифеста.
Динамические и сеансовые наборы правил
Во время использования расширения динамические и сеансовые наборы правил управляются с помощью JavaScript.
- Динамические правила сохраняются во всех сеансах браузера и обновлениях расширений.
- Правила сеанса очищаются при закрытии браузера и установке новой версии расширения.
Существует только один тип каждого набора правил. Расширение может динамически добавлять или удалять правила, вызывая updateDynamicRules()
и updateSessionRules()
, при условии, что ограничения правил не превышаются. Подробнее об ограничениях правил см. в разделе Ограничения правил . Пример можно увидеть в разделе Примеры кода .
Статические наборы правил
В отличие от динамических и сеансовых правил, статические правила упаковываются, устанавливаются и обновляются при установке или обновлении расширения. Они хранятся в файлах правил в формате JSON, которые указываются расширению с помощью ключей "declarative_net_request"
и "rule_resources"
, как описано выше , а также одного или нескольких словарей наборов Ruleset
. Словарь Ruleset
содержит путь к файлу правил, идентификатор набора правил в файле и информацию о том, включен или отключен набор правил. Последние два параметра важны при программном включении или отключении набора правил.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Для проверки файлов правил загрузите распакованное расширение . Ошибки и предупреждения о недействительных статических правилах отображаются только для распакованных расширений. Недействительные статические правила в упакованных расширениях игнорируются.
Ускоренное рассмотрение
Изменения в статических наборах правил могут быть рассмотрены в ускоренном порядке. См. информацию об ускоренном рассмотрении изменений .
Включение и отключение статических правил и наборов правил
Как отдельные статические правила, так и полные статические наборы правил могут быть включены или отключены во время выполнения.
Набор включённых статических правил и наборов правил сохраняется между сеансами браузера. Ни те, ни другие не сохраняются при обновлениях расширений, то есть после обновления доступны только те правила, которые вы решили оставить в файлах правил.
Из соображений производительности также существуют ограничения на количество правил и наборов правил, которые можно включить одновременно. Вызовите метод getAvailableStaticRuleCount()
чтобы проверить количество дополнительных правил, которые можно включить. Сведения об ограничениях правил см. в разделе Ограничения правил .
Чтобы включить или отключить статические правила , вызовите updateStaticRules()
. Этот метод принимает объект UpdateStaticRulesOptions
, содержащий массивы идентификаторов правил, которые нужно включить или отключить. Идентификаторы определяются с помощью ключа "id"
словаря Ruleset
. Максимальное количество отключенных статических правил — 5000.
Чтобы включить или отключить статические наборы правил , вызовите метод updateEnabledRulesets()
. Этот метод принимает объект UpdateRulesetOptions
, содержащий массивы идентификаторов наборов правил, которые нужно включить или отключить. Идентификаторы определяются с помощью ключа "id"
словаря Ruleset
.
Правила сборки
Независимо от типа, правило начинается с четырёх полей, как показано ниже. Ключи "id"
и "priority"
принимают числовое значение, а ключи "action"
и "condition"
могут содержать несколько условий блокировки и перенаправления. Следующее правило блокирует все запросы скриптов, исходящие с "foo.com"
к любому URL-адресу с подстрокой "abc"
.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
URL-сопоставление
Декларативный сетевой запрос предоставляет возможность сопоставлять URL-адреса либо с помощью синтаксиса сопоставления с шаблоном, либо с помощью регулярных выражений.
Синтаксис фильтра URL
Ключ "condition"
правила позволяет ключу "urlFilter"
действовать над URL-адресами в указанном домене. Шаблоны создаются с помощью токенов сопоставления с шаблонами . Вот несколько примеров.
urlFilter | Спички | Не совпадает |
---|---|---|
"abc" | https://abcd.com https://example.com/abcd | https://ab.com |
"abc*d" | https://abcd.com https://example.com/abcxyzd | https://abc.com |
"||a.example.com" | https://a.example.com/ https://baexample.com/xyz https://a.example.company | https://example.com/ |
"|https*" | https://example.com | http://example.com/ http://https.com |
"example*^123|" | https://example.com/123 http://abc.com/example?123 | https://example.com/1234 https://abc.com/example0123 |
Регулярные выражения
Условия также могут использовать регулярные выражения. См. раздел "regexFilter"
. Чтобы узнать об ограничениях, применяемых к этим условиям, см. раздел «Правила, использующие регулярные выражения» .
Напишите хорошие условия URL
Будьте внимательны при написании правил, чтобы они всегда соответствовали всему домену. В противном случае ваше правило может сработать в неожиданных ситуациях. Например, при использовании синтаксиса сопоставления с шаблоном:
-
google.com
неверно соответствуетhttps://example.com/?param=google.com
-
||google.com
неверно соответствуетhttps://google.company
-
https://www.google.com
неверно соответствуетhttps://example.com/?param=https://www.google.com
Рассмотрите возможность использования:
-
||google.com/
, который соответствует всем путям и всем поддоменам. -
|https://www.google.com/
, который соответствует всем путям и не содержит поддоменов.
Аналогично, используйте символы ^
и /
для привязки регулярного выражения. Например, ^https:\/\/www\.google\.com\/
соответствует любому пути на https://www.google.com.
Оценка правил
Правила DNR применяются браузером на различных этапах жизненного цикла сетевого запроса.
Перед запросом
Перед выполнением запроса расширение может заблокировать или перенаправить его (включая обновление схемы с HTTP на HTTPS) с помощью соответствующего правила.
Для каждого расширения браузер определяет список соответствующих правил. Правила с действием modifyHeaders
здесь не включены, так как они будут обработаны позже. Кроме того, правила с условием responseHeaders
будут рассмотрены позже (когда заголовки ответа станут доступны) и не включены.
Затем для каждого расширения Chrome выбирает не более одного кандидата на запрос. Chrome находит соответствующее правило, упорядочивая все соответствующие правила по приоритету. Правила с одинаковым приоритетом сортируются по действию ( allow
или allowAllRequests
> block
> upgradeScheme
> redirect
).
Если кандидатом является правило allow
или allowAllRequests
или фрейм, в котором сделан запрос, ранее соответствовал правилу allowAllRequests
с более высоким или равным приоритетом из этого расширения, запрос «разрешается», и расширение не окажет на него никакого влияния.
Если несколько расширений хотят заблокировать или перенаправить этот запрос, выбирается одно действие. Chrome сортирует правила в block
order > redirect
или upgradeScheme
> allow
или allowAllRequests
. Если два правила относятся к одному типу, Chrome выбирает правило из последнего установленного расширения.
Перед отправкой заголовков запроса
Прежде чем Chrome отправит заголовки запроса на сервер, заголовки обновляются на основе соответствующих правил modifyHeaders
.
В рамках одного расширения Chrome формирует список изменений, которые необходимо выполнить, находя все соответствующие правила modifyHeaders
. Как и раньше, включаются только правила с более высоким приоритетом, чем любые соответствующие правила allow
или allowAllRequests
.
Chrome применяет эти правила в таком порядке, что правила из недавно установленного расширения всегда применяются раньше правил из более старого расширения. Кроме того, правила с более высоким приоритетом из одного расширения всегда применяются раньше правил с более низким приоритетом из того же расширения. Примечательно, что даже между расширениями:
- Если правило добавляется к заголовку, то правила с более низким приоритетом могут добавляться только к этому заголовку. Операции установки и удаления не допускаются.
- Если правило устанавливает заголовок, то к нему могут быть добавлены только правила с более низким приоритетом из того же расширения. Другие изменения не допускаются.
- Если правило удаляет заголовок, то правила с более низким приоритетом не могут дальше изменять заголовок.
После получения ответа
После получения заголовков ответа Chrome оценивает правила с условием responseHeaders
.
После сортировки этих правил по action
и priority
и исключения любых правил, которые стали избыточными из-за соответствующего правила allow
или allowAllRequests
(это происходит идентично шагам в разделе «Перед запросом»), Chrome может заблокировать или перенаправить запрос от имени расширения.
Обратите внимание: если запрос дошёл до этого этапа, он уже отправлен на сервер, и сервер получил данные, подобные телу запроса. Правило блокировки или перенаправления с условием в заголовках ответа всё равно будет работать, но не сможет фактически заблокировать или перенаправить запрос.
В случае правила блокировки это обрабатывается страницей, отправившей запрос, которая получает заблокированный ответ, и Chrome досрочно завершает запрос. В случае правила перенаправления Chrome отправляет новый запрос на перенаправленный URL. Убедитесь, что такое поведение соответствует требованиям конфиденциальности вашего расширения.
Если запрос не заблокирован или не перенаправлен, Chrome применяет все правила modifyHeaders
. Изменение заголовков ответа происходит так же, как описано в разделе «До отправки заголовков запроса». Изменение заголовков запроса ни к чему не приводит, поскольку запрос уже был отправлен.
Правила безопасности
Безопасные правила определяются как правила с действием block
, allow
, allowAllRequests
или upgradeScheme
. На эти правила распространяется увеличенная динамическая квота правил.
Пределы правил
Загрузка и оценка правил в браузере снижает производительность, поэтому при использовании API действуют некоторые ограничения. Ограничения зависят от типа используемого правила.
Статические правила
Статические правила — это правила, указанные в файлах правил, объявленных в файле манифеста. Расширение может указать до 100 статических наборов правил в рамках ключа манифеста "rule_resources"
, но только 50 из этих наборов правил могут быть включены одновременно. Последнее называется MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
. В совокупности для этих наборов правил гарантировано не менее 30 000 правил. Это называется GUARANTEED_MINIMUM_STATIC_RULES
.
Количество доступных правил после этого зависит от того, сколько правил включено во всех расширениях, установленных в браузере пользователя. Это число можно узнать во время выполнения, вызвав метод getAvailableStaticRuleCount()
. Пример можно увидеть в разделе «Примеры кода» .
Правила сеанса
Расширение может содержать до 5000 правил сеанса. Это отображается как MAX_NUMBER_OF_SESSION_RULES
.
До Chrome 120 существовало ограничение в 5000 комбинированных динамических и сеансовых правил.
Динамические правила
Расширение может содержать не менее 5000 динамических правил. Это отображается как MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Начиная с Chrome 121, для безопасных динамических правил доступно большее ограничение — 30 000 правил, которое отображается как MAX_NUMBER_OF_DYNAMIC_RULES
. Любые небезопасные правила, добавленные в пределах лимита в 5000, также будут учитываться при подсчёте этого ограничения.
До Chrome 120 существовало ограничение в 5000 комбинированных динамических и сеансовых правил.
Правила, использующие регулярные выражения
Все типы правил могут использовать регулярные выражения; однако общее количество правил регулярных выражений каждого типа не может превышать 1000. Это называется MAX_NUMBER_OF_REGEX_RULES .
Кроме того, размер каждого правила после компиляции должен быть менее 2 КБ. Это примерно соответствует сложности правила. При попытке загрузить правило, превышающее этот лимит, вы увидите предупреждение, подобное следующему, и правило будет проигнорировано.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
Взаимодействие с работниками сферы услуг
Запрос declarativeNetRequest применяется только к запросам, достигающим сетевого стека. Это включает ответы из HTTP-кеша, но может не включать ответы, проходящие через обработчик onfetch
сервис-воркера. Запрос declarativeNetRequest не повлияет на ответы, сгенерированные сервис-воркером или извлеченные из CacheStorage
, но повлияет на вызовы fetch()
выполняемые в сервис-воркере.
Доступные в Интернете ресурсы
Правило declarativeNetRequest не может перенаправить запрос публичного ресурса на ресурс, недоступный через Интернет. Это приводит к ошибке. Это справедливо даже в том случае, если указанный ресурс, доступный через Интернет, принадлежит расширению, выполняющему перенаправление. Чтобы объявить ресурсы для declarativeNetRequest, используйте массив "web_accessible_resources"
манифеста.
Модификация заголовка
Операция добавления поддерживается только для следующих заголовков: accept
, accept-encoding
, accept-language
, access-control-request-headers
, cache-control
, connection
, content-language
, cookie
, forwarded
, if-match
, if-none-match
, keep-alive
, range
, te
, trailer
, transfer-encoding
, upgrade
, user-agent
, via
, want-digest
, x-forwarded-for
.
Примеры
Примеры кода
Обновление динамических правил
В следующем примере показано, как вызвать updateDynamicRules()
. Процедура для updateSessionRules()
та же.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
Обновление статических наборов правил
В следующем примере показано, как включить и отключить наборы правил с учётом количества доступных и максимально допустимого количества включённых статических наборов правил. Это можно сделать, когда количество необходимых статических правил превышает допустимое. Для этого некоторые наборы правил должны быть установлены, а некоторые — отключены (установив параметр "Enabled"
в значение false
в файле манифеста).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
Примеры правил
Следующие примеры иллюстрируют, как Chrome определяет приоритет правил в расширении. При их просмотре вы можете открыть правила определения приоритета в отдельном окне.
Клавиша «приоритет»
Для этих примеров требуется разрешение хоста на *://*.example.com/*
.
Чтобы определить приоритет конкретного URL-адреса, проверьте ключи "priority"
(определённые разработчиком), "action"
и "urlFilter"
. Эти примеры относятся к файлу правил, приведённому ниже.
- Переход на https://google.com
- На этот URL распространяются два правила: правила с идентификаторами 1 и 4. Правило с идентификатором 1 применяется, поскольку действия
"block"
имеют более высокий приоритет, чем действия"redirect"
. Остальные правила не применяются, поскольку они предназначены для более длинных URL. - Переход на https://google.com/1234
- Из-за более длинного URL-адреса теперь применяется правило с идентификатором 2 в дополнение к правилам с идентификаторами 1 и 4. Правило с идентификатором 2 применяется, поскольку
"allow"
имеет более высокий приоритет, чем"block"
и"redirect"
. - Переход на https://google.com/12345
- Все четыре правила соответствуют этому URL. Правило с идентификатором 3 применяется, поскольку его приоритет, заданный разработчиком, является наивысшим в группе.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "||google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "||google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "||google.com/", "resourceTypes": ["main_frame"] }
},
]
Перенаправления
В примере ниже требуется разрешение хоста на *://*.example.com/*
.
В следующем примере показано, как перенаправить запрос с example.com на страницу внутри самого расширения. Путь расширения /a.jpg
преобразуется в chrome-extension://EXTENSION_ID/a.jpg
, где EXTENSION_ID
— это идентификатор вашего расширения. Для этого в манифесте необходимо указать /a.jpg
как доступный веб-ресурс .
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "||https://www.example.com/",
"resourceTypes": ["main_frame"]
}
}
В следующем примере ключ "transform"
используется для перенаправления на поддомен example.com. Он использует якорь доменного имени («||») для перехвата запросов с любой схемой от example.com. Ключ "scheme"
в "transform"
указывает, что перенаправления на поддомен всегда будут использовать протокол «https».
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com/",
"resourceTypes": ["main_frame"]
}
}
В следующем примере регулярные выражения используются для перенаправления с https://www.abc.xyz.com/path
на https://abc.xyz.com/path
. Обратите внимание, что в ключе "regexFilter"
точки экранируются, а группа захвата выбирает "abc" или "def". Ключ "regexSubstitution"
указывает первое возвращённое совпадение регулярного выражения с помощью "\1". В этом случае "abc" извлекается из перенаправленного URL и добавляется в подстановку.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Заголовки
В следующем примере удаляются все файлы cookie как из основного фрейма, так и из всех подфреймов.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Типы
DomainType
Это определяет, является ли запрос первичным или сторонним по отношению к фрейму, из которого он был создан. Запрос считается первичным, если он имеет тот же домен (eTLD+1), что и фрейм, из которого он был создан.
Перечисление
"firstParty" "третья сторона"
Сетевой запрос является первым участником кадра, в котором он возник.
Сетевой запрос является третьим по отношению к фрейму, в котором он возник.
ExtensionActionOptions
Характеристики
- displayActionCountAsBadgeText
логическое необязательное
Отображать ли автоматически количество действий на странице в тексте значка расширения. Эта настройка сохраняется между сеансами.
- вкладкаОбновление
TabActionCountUpdate необязательно
Хром 89+Подробная информация о том, как следует корректировать количество действий вкладки.
GetDisabledRuleIdsOptions
Характеристики
- rulesetId
нить
Идентификатор, соответствующий статическому
Ruleset
.
GetRulesFilter
Характеристики
- идентификаторы правил
номер[] необязательно
Если указано, включаются только правила с совпадающими идентификаторами.
HeaderInfo
Характеристики
- исключенные значения
строка[] необязательная
Если указано, это условие не выполняется, если заголовок существует, но его значение содержит хотя бы один элемент из этого списка. Используется тот же синтаксис шаблона сопоставления, что и
values
. - заголовок
нить
Имя заголовка. Это условие выполняется только в том случае, если не указаны ни
values
, ниexcludedValues
. - ценности
строка[] необязательная
Если указано, это условие выполняется, если значение заголовка соответствует хотя бы одному шаблону из этого списка. Поддерживается сопоставление значений заголовков без учёта регистра, а также следующие конструкции:
'*' : Соответствует любому количеству символов.
'?' : Соответствует нулю или одному символу(ам).
Символы «*» и «?» можно экранировать обратной косой чертой, например, «\*» и «\?».
HeaderOperation
Здесь описываются возможные операции для правила «modifyHeaders».
Перечисление
"добавить" "набор" "удалять"
Добавляет новую запись для указанного заголовка. Эта операция не поддерживается для заголовков запросов.
Устанавливает новое значение для указанного заголовка, удаляя все существующие заголовки с тем же именем.
Удаляет все записи для указанного заголовка.
IsRegexSupportedResult
Характеристики
- поддерживается
булев
- причина
Необязательный параметр UnsupportedRegexReason
Указывает причину, по которой регулярное выражение не поддерживается. Доступно только в том случае, если
isSupported
равно false.
MatchedRule
Характеристики
- ruleId
число
Идентификатор правила сопоставления.
- rulesetId
нить
Идентификатор
Ruleset
к которому принадлежит данное правило. Для правила, созданного из набора динамических правил, этот идентификатор будет равенDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Характеристики
- правило
- tabId
число
TabId вкладки, с которой был отправлен запрос, если вкладка всё ещё активна. В противном случае -1.
- отметка времени
число
Время срабатывания правила. Временные метки будут соответствовать соглашению Javascript для времени, то есть количеству миллисекунд с начала эпохи.
MatchedRuleInfoDebug
Характеристики
- запрос
Подробная информация о запросе, для которого было выполнено правило.
- правило
MatchedRulesFilter
Характеристики
- minTimeStamp
номер необязательно
Если указано, сопоставляет только правила после указанной временной метки.
- tabId
номер необязательно
Если указано, сопоставляет только правила для заданной вкладки. Если указано значение -1, сопоставляет правила, не связанные ни с одной активной вкладкой.
ModifyHeaderInfo
Характеристики
- заголовок
нить
Имя заголовка, который необходимо изменить.
- операция
Операция, которая должна быть выполнена над заголовком.
- ценить
строка необязательная
Новое значение заголовка. Необходимо указать для операций
append
иset
.
QueryKeyValue
Характеристики
- ключ
нить
- replaceOnly
логическое необязательное
Хром 94+Если задано значение true, ключ запроса заменяется только в том случае, если он уже присутствует. В противном случае ключ также добавляется, если он отсутствует. Значение по умолчанию — false.
- ценить
нить
QueryTransform
Характеристики
- addOrReplaceParams
QueryKeyValue [] необязательно
Список пар ключ-значение запроса, которые необходимо добавить или заменить.
- removeParams
строка[] необязательная
Список ключей запроса, которые необходимо удалить.
Redirect
Характеристики
- extensionPath
строка необязательная
Путь относительно каталога расширения. Должен начинаться с «/».
- regexПодстановка
строка необязательная
Шаблон подстановки для правил, в которых указан фильтр
regexFilter
. Первое совпадение с фильтромregexFilter
в URL будет заменено этим шаблоном. ВregexSubstitution
для вставки соответствующих групп захвата можно использовать цифры, экранированные обратной косой чертой (от \1 до \9). \0 относится ко всему совпадающему тексту. - преобразовать
URLTransform необязательно
Преобразования URL для выполнения.
- URL-адрес
строка необязательная
URL-адрес перенаправления. Перенаправления на URL-адреса JavaScript запрещены.
RegexOptions
Характеристики
- isCaseSensitive
логическое необязательное
Учитывает ли указанное
regex
? Значение по умолчанию — true. - регулярное выражение
нить
Регулярное выражение для проверки.
- требуетсяЗахват
логическое необязательное
Требуется ли захват для указанного
regex
. Захват требуется только для правил перенаправления, которые определяют действиеregexSubstition
. Значение по умолчанию — false.
RequestDetails
Характеристики
- documentId
строка необязательная
Хром 106+Уникальный идентификатор документа фрейма, если это запрос фрейма.
- жизненный цикл документа
DocumentLifecycle (необязательно)
Хром 106+Жизненный цикл документа фрейма, если это запрос на фрейм.
- frameId
число
Значение 0 указывает на то, что запрос выполняется в основном фрейме; положительное значение указывает идентификатор подфрейма, в котором выполняется запрос. Если загружен документ (под)фрейма (
type
—main_frame
илиsub_frame
),frameId
указывает идентификатор этого фрейма, а не идентификатор внешнего фрейма. Идентификаторы фреймов уникальны в пределах вкладки. - frameType
FrameType (необязательно)
Хром 106+Тип фрейма, если это запрос фрейма.
- инициатор
строка необязательная
Источник, откуда был инициирован запрос. Не изменяется при перенаправлениях. Если это непрозрачный источник, будет использована строка «null».
- метод
нить
Стандартный метод HTTP.
- parentDocumentId
строка необязательная
Хром 106+Уникальный идентификатор родительского документа фрейма, если это запрос фрейма и у него есть родительский документ.
- parentFrameId
число
Идентификатор кадра, который является оболочкой кадра, отправившего запрос. Установите значение -1, если родительского кадра не существует.
- requestId
нить
Идентификатор запроса. Идентификаторы запросов уникальны в пределах сеанса браузера.
- tabId
число
Идентификатор вкладки, в которой выполнен запрос. Установите значение -1, если запрос не связан с вкладкой.
- тип
Тип ресурса запроса.
- URL-адрес
нить
URL-адрес запроса.
RequestMethod
Здесь описывается метод HTTP-запроса сетевого запроса.
Перечисление
"соединять" "удалить" "получать" "голова" "параметры" "пластырь" "почта" "помещать" "другой"
ResourceType
Здесь описывается тип ресурса сетевого запроса.
Перечисление
"main_frame" "sub_frame" "таблица стилей" "сценарий" "изображение" "шрифт" "объект" "xmlhttprequest" "пинг" "csp_report" "СМИ" "вебсокет" "вебтранспорт" "webbundle" "другой"
Rule
Характеристики
- действие
Действие, которое следует предпринять, если это правило срабатывает.
- состояние
Условие, при котором срабатывает это правило.
- идентификатор
число
Идентификатор, однозначно определяющий правило. Обязательный и должен быть >= 1.
- приоритет
номер необязательно
Приоритет правила. По умолчанию 1. При указании приоритета должен быть >= 1.
RuleAction
Характеристики
- перенаправление
Перенаправление необязательно
Описывает, как должно выполняться перенаправление. Действительно только для правил перенаправления.
- requestHeaders
ModifyHeaderInfo [] необязательно
Хром 86+Заголовки запроса, которые необходимо изменить. Действительно только если RuleActionType — «modifyHeaders».
- responseHeaders
ModifyHeaderInfo [] необязательно
Хром 86+Заголовки ответа, которые необходимо изменить для запроса. Действительно только если RuleActionType — «modifyHeaders».
- тип
Тип действия, которое необходимо выполнить.
RuleActionType
Описывает тип действия, которое следует предпринять, если заданное условие правила совпадает.
Перечисление
"блокировать" «перенаправление» "позволять" "upgradeScheme" "modifyHeaders" "allowAllRequests"
Заблокировать сетевой запрос.
Перенаправить сетевой запрос.
Разрешить сетевой запрос. Запрос не будет перехвачен, если есть соответствующее разрешающее правило.
Обновите схему URL сетевого запроса до https, если запрос — http или ftp.
Измените заголовки запроса/ответа из сетевого запроса.
Разрешить все запросы внутри иерархии фрейма, включая сам запрос фрейма.
RuleCondition
Характеристики
- Тип_домена
DomainType необязательно
Указывает, является ли сетевой запрос основным или сторонним по отношению к домену, с которого он был отправлен. Если этот параметр не указан, принимаются все запросы.
- домены
строка[] необязательная
Не рекомендуется с версии Chrome 101Вместо этого используйте
initiatorDomains
Правило будет соответствовать только сетевым запросам, исходящим из списка
domains
. - исключенныедомены
строка[] необязательная
Не рекомендуется с версии Chrome 101Вместо этого используйте
excludedInitiatorDomains
Правило не будет соответствовать сетевым запросам, исходящим из списка
excludedDomains
. - исключенныеInitiatorDomains
строка[] необязательная
Хром 101+Правило не будет учитывать сетевые запросы, исходящие из списка
excludedInitiatorDomains
. Если список пуст или отсутствует, домены не исключаются. Это правило имеет приоритет надinitiatorDomains
.Примечания:
- Также разрешены поддомены типа «a.example.com».
- Записи должны состоять только из символов ASCII.
- Используйте кодировку punycode для интернационализированных доменов.
- Сопоставляется с инициатором запроса, а не с URL-адресом запроса.
- Поддомены перечисленных доменов также исключены.
- исключенныеRequestDomains
строка[] необязательная
Хром 101+Правило не будет учитывать сетевые запросы, если домен соответствует одному из списка
excludedRequestDomains
. Если список пуст или пропущен, домены не исключаются. Это правило имеет приоритет надrequestDomains
.Примечания:
- Также разрешены поддомены типа «a.example.com».
- Записи должны состоять только из символов ASCII.
- Используйте кодировку punycode для интернационализированных доменов.
- Поддомены перечисленных доменов также исключены.
- исключенныеRequestMethods
RequestMethod [] необязательно
Хром 91+Список методов запроса, которые не будут соответствовать правилу. Необходимо указать только один из
requestMethods
илиexcludedRequestMethods
. Если не указан ни один из них, будут соответствовать все методы запроса. - исключенныеResourceTypes
ResourceType [] необязательно
Список типов ресурсов, которые не будут соответствовать правилу. Необходимо указать только один из
resourceTypes
илиexcludedResourceTypes
. Если не указан ни один из них, блокируются все типы ресурсов, кроме «main_frame». - исключенные заголовки ответов
HeaderInfo [] необязательно
Хром 128+Правило не срабатывает, если запрос соответствует любому условию заголовка ответа в этом списке (если указано). Если указаны оба свойства:
excludedResponseHeaders
иresponseHeaders
, то приоритет имеет свойствоexcludedResponseHeaders
. - исключенныеTabIds
номер[] необязательно
Хром 92+Список
tabs.Tab.id
, которым правило не должно соответствовать. Идентификаторtabs.TAB_ID_NONE
исключает запросы, не исходящие из вкладки. Поддерживается только для правил, действующих в рамках сеанса. - initiatorDomains
строка[] необязательная
Хром 101+Правило будет соответствовать только сетевым запросам, исходящим из списка
initiatorDomains
. Если список не указан, правило применяется к запросам со всех доменов. Пустой список не допускается.Примечания:
- Также разрешены поддомены типа «a.example.com».
- Записи должны состоять только из символов ASCII.
- Используйте кодировку punycode для интернационализированных доменов.
- Сопоставляется с инициатором запроса, а не с URL-адресом запроса.
- Также сопоставляются поддомены перечисленных доменов.
- isUrlFilterCaseSensitive
логическое необязательное
Чувствителен ли к регистру
urlFilter
илиregexFilter
(в зависимости от того, какой из них указан). Значение по умолчанию — false. - regexFilter
строка необязательная
Регулярное выражение для сопоставления с URL-адресом сетевого запроса. Оно соответствует синтаксису RE2 .
Примечание: можно указать только один из параметров:
urlFilter
илиregexFilter
.Примечание:
regexFilter
должен содержать только символы ASCII. Он сопоставляется с URL-адресом, в котором хост закодирован в формате punycode (в случае интернационализированных доменов), а все остальные символы, не входящие в ASCII, закодированы в формате UTF-8. - requestDomains
строка[] необязательная
Хром 101+Правило будет применяться только к сетевым запросам, если домен совпадает с одним из списка
requestDomains
. Если список не указан, правило применяется к запросам со всех доменов. Пустой список не допускается.Примечания:
- Также разрешены поддомены типа «a.example.com».
- Записи должны состоять только из символов ASCII.
- Используйте кодировку punycode для интернационализированных доменов.
- Также сопоставляются поддомены перечисленных доменов.
- requestMethods
RequestMethod [] необязательно
Хром 91+Список методов HTTP-запросов, которым может соответствовать правило. Пустой список не допускается.
Примечание: указание условия правила
requestMethods
также исключит запросы, не являющиеся HTTP(s), тогда как указаниеexcludedRequestMethods
не позволит этого сделать. - Типы ресурсов
ResourceType [] необязательно
Список типов ресурсов, которым может соответствовать правило. Пустой список не допускается.
Примечание: это необходимо указать для правил
allowAllRequests
и может включать только типы ресурсовsub_frame
иmain_frame
. - responseHeaders
HeaderInfo [] необязательно
Хром 128+Правило срабатывает, если запрос соответствует любому условию заголовка ответа в этом списке (если указано).
- tabIds
номер[] необязательно
Хром 92+Список
tabs.Tab.id
, которым должно соответствовать правило. Идентификаторtabs.TAB_ID_NONE
соответствует запросам, не относящимся к вкладке. Пустой список не допускается. Поддерживается только для правил, действующих в рамках сеанса. - URL-фильтр
строка необязательная
Шаблон, сопоставляемый с 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.
Ruleset
Характеристики
- включено
булев
Включен ли набор правил по умолчанию.
- идентификатор
нить
Непустая строка, однозначно идентифицирующая набор правил. Идентификаторы, начинающиеся с «_», зарезервированы для внутреннего использования.
- путь
нить
Путь к набору правил JSON относительно каталога расширения.
RulesMatchedDetails
Характеристики
- Правила MatchedInfo
Правила, соответствующие данному фильтру.
TabActionCountUpdate
Характеристики
- приращение
число
Сумма, чтобы увеличить количество действий вкладки. Отрицательные значения уменьшат счет.
- табид
число
Вкладка, для которой можно обновить количество действий.
TestMatchOutcomeResult
Характеристики
- Matchedrules
MatchedRule []
Правила (если таковые имеются), которые соответствуют гипотетическому запросу.
TestMatchRequestDetails
Характеристики
- инициатор
строка необязательная
URL инициатора (если есть) для гипотетического запроса.
- метод
RequestMethod необязательно
Стандартный метод HTTP гипотетического запроса. По умолчанию «получить» для HTTP-запросов и игнорируется для не HTTP-запросов.
- Ответчики
объект необязательно
Хром 129+Заголовки, предоставленные гипотетическим ответом, если запрос не заблокирован или перенаправлен до его отправки. Представлен как объект, который отображает имя заголовка в список строковых значений. Если не указано, гипотетический ответ будет возвращать пустые заголовки ответа, которые могут соответствовать правилам, которые соответствуют небыванию заголовков. Например
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
- табид
номер необязательно
Идентификатор вкладки, в которой происходит гипотетический запрос. Не нужно соответствовать реальному идентификатору вкладки. По умолчанию -1, что означает, что запрос не связан с вкладкой.
- тип
Тип ресурса гипотетического запроса.
- URL-адрес
нить
URL гипотетического запроса.
UnsupportedRegexReason
Описывает причину, по которой данное регулярное выражение не поддерживается.
Перечисление
"Синтаксиртор" "MemoryLimitexeded"
Регулярное выражение является синтаксически неверным или использует функции, недоступные в синтаксисе RE2 .
Регулярное выражение превышает предел памяти.
UpdateRuleOptions
Характеристики
- addrules
Правило [] Необязательно
Правила добавить.
- Removeruleids
номер [] необязательно
Идентификаторы правил для удаления. Любые неверные идентификаторы будут игнорированы.
UpdateRulesetOptions
Характеристики
UpdateStaticRulesOptions
Характеристики
URLTransform
Характеристики
- фрагмент
строка необязательная
Новый фрагмент для запроса. Должен быть либо пустым, и в этом случае существующий фрагмент очищается; или начинаться с '#'.
- хозяин
строка необязательная
Новый хост для запроса.
- пароль
строка необязательная
Новый пароль для запроса.
- путь
строка необязательная
Новый путь для запроса. Если пуст, существующий путь очищается.
- порт
строка необязательная
Новый порт для запроса. Если пуст, существующий порт очищается.
- запрос
строка необязательная
Новый запрос для запроса. Должен быть либо пустым, и в этом случае существующий запрос очищается; Или начать с '?'.
- QueryTransform
QueryTransform необязательно
Добавьте, удалите или замените пары значений клавиш запроса.
- схема
строка необязательная
Новая схема для запроса. Разрешенными значениями являются «http», «https», «ftp» и «chrome-extension».
- имя пользователя
строка необязательная
Новое имя пользователя для запроса.
Характеристики
DYNAMIC_RULESET_ID
Идентификатор набора правил для динамических правил, добавленных расширением.
Ценить
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Временный интервал, в котором могут быть сделаны вызовы MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
, указаны в минуты. Дополнительные вызовы сразу не будут сбой и установят runtime.lastError
LasterRor. ПРИМЕЧАНИЕ. Вызовы getMatchedRules
, связанные с жестом пользователя, освобождены от квоты.
Ценить
10
GUARANTEED_MINIMUM_STATIC_RULES
Минимальное количество статических правил гарантированно продление на его включенных статических наборах правил. Любые правила выше этого предела будут учитываться в отношении глобального ограничения статического правила .
Ценить
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Количество раз, когда getMatchedRules
можно вызывать в течение периода GETMATCHEDRULES_QUOTA_INTERVAL
.
Ценить
20
MAX_NUMBER_OF_DYNAMIC_RULES
Максимальное количество динамических правил, которые может добавить расширение.
Ценить
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Максимальное количество статических Rulesets
расширение может включить в любое время.
Ценить
50
MAX_NUMBER_OF_REGEX_RULES
Максимальное количество правил регулярного выражения, которые может добавить расширение. Этот предел оценивается отдельно для набора динамических правил и указанных в файле ресурсов правил.
Ценить
1000
MAX_NUMBER_OF_SESSION_RULES
Максимальное количество правил сферы сеанса, которые может добавить расширение.
Ценить
5000
MAX_NUMBER_OF_STATIC_RULESETS
Максимальное количество статических Rulesets
расширение может указать как часть манифестного ключа "rule_resources"
.
Ценить
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Максимальное количество «небезопасных» динамических правил, которые может добавить расширение.
Ценить
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Максимальное количество «небезопасных» сессионных правил, которые может добавить расширение.
Ценить
5000
SESSION_RULESET_ID
Идентификатор набора правил для правил с сеансом, добавленным расширением.
Ценить
"_Session"
Методы
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(): Promise<number>
Возвращает количество статических правил, которые может включить расширение до достижения глобального ограничения статического правила .
Возврат
Обещание <число>
Хром 91+
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
): Promise<number[]>
Возвращает список статических правил в данном Ruleset
, которые в настоящее время отключены.
Параметры
- параметры
Определяет набор правил для запроса.
Возврат
Обещание <номер []>
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
): Promise<Rule[]>
Возвращает текущий набор динамических правил для расширения. Абоненты могут необязательно отфильтровать список извлеченных правил, указав filter
.
Параметры
- фильтр
GetRulesFilter необязательно
Хром 111+Объект для фильтрации списка извлеченных правил.
Возврат
Обещание < Правило []>
Хром 91+
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(): Promise<string[]>
Возвращает идентификаторы для текущего набора включенных статических наборов правил.
Возврат
Обещание <string []>
Хром 91+
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
): Promise<RulesMatchedDetails>
Возвращает все правила, соответствующие расширению. Абоненты могут необязательно отфильтровать список соответствующих правил, указав filter
. Этот метод доступен только для расширений с разрешением "declarativeNetRequestFeedback"
или с разрешением "activeTab"
, предоставленным для tabId
указанного в filter
. ПРИМЕЧАНИЕ. Правила, не связанные с активным документом, который соответствовал более пяти минутам назад, не будут возвращены.
Параметры
- фильтр
MatchedRulesfilter необязательно
Объект для фильтрации списка соответствующих правил.
Возврат
Обещание < Правила MatchedDetails >
Хром 91+
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
): Promise<Rule[]>
Возвращает текущий набор правил сферы сеанса для расширения. Абоненты могут необязательно отфильтровать список извлеченных правил, указав filter
.
Параметры
- фильтр
GetRulesFilter необязательно
Хром 111+Объект для фильтрации списка извлеченных правил.
Возврат
Обещание < Правило []>
Хром 91+
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
): Promise<IsRegexSupportedResult>
Проверяет, если данное регулярное выражение будет поддерживаться как условие правила regexFilter
.
Параметры
- regexoptions
Регулярное выражение для проверки.
Возврат
Обещание <ISREGEXSUPPORTEDRESULT>
Хром 91+
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
): Promise<void>
Настройка, если количество действий для вкладок должно отображаться в качестве текста значка действия расширения и предоставляет способ увеличить количество действий.
Параметры
- параметры
Возврат
Обещание <Void>
Хром 91+
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
): Promise<TestMatchOutcomeResult>
Проверяет, что какое -либо из правил DeclarativenetRequest в продлении соответствует гипотетическому запросу. Примечание. Доступно только для распакованных расширений, так как это предназначено только для развития расширения.
Параметры
- запрос
Возврат
Обещание <testmatchoutcomeresult>
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
): Promise<void>
Изменяет текущий набор динамических правил для расширения. Правила с идентификаторами, перечисленными в options.removeRuleIds
сначала удаляются, а затем добавляются правила, приведенные в options.addRules
. Примечания:
- Это обновление происходит как одна атомная операция: либо добавляются и удаляются все указанные правила, либо возвращается ошибка.
- Эти правила сохраняются между сеансами браузера и по обновлениям расширения.
- Статические правила, указанные как часть пакета расширения, не могут быть удалены с использованием этой функции.
-
MAX_NUMBER_OF_DYNAMIC_RULES
- это максимальное количество динамических правил, которые может добавить расширение. Количество небезопасных правил не должно превышатьMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Параметры
- параметрыХром 87+
Возврат
Обещание <Void>
Хром 91+
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
): Promise<void>
Обновляет набор включенных статических наборов правил для расширения. Наборы правил с идентификаторами, перечисленными в options.disableRulesetIds
, сначала удаляются, а затем добавляются наборы правил, перечисленные в options.enableRulesetIds
. Обратите внимание, что набор включенных статических наборов правил сохраняется в разных сеансах, но не по обновлениям расширения, то есть ключ Manifest rule_resources
будет определять набор включенных статических наборов правил при каждом обновлении расширения.
Параметры
- параметрыХром 87+
Возврат
Обещание <Void>
Хром 91+
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
): Promise<void>
Изменяет текущий набор правил сферы сеанса для расширения. Правила с идентификаторами, перечисленными в options.removeRuleIds
сначала удаляются, а затем добавляются правила, приведенные в options.addRules
. Примечания:
- Это обновление происходит как одна атомная операция: либо добавляются и удаляются все указанные правила, либо возвращается ошибка.
- Эти правила не сохраняются в разных сессиях и поддерживаются в памяти.
-
MAX_NUMBER_OF_SESSION_RULES
- это максимальное количество правил сеанса, которое может добавить расширение.
Параметры
- параметры
Возврат
Обещание <Void>
Хром 91+
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
): Promise<void>
Отключает и позволяет отдельным статическим правилам на Ruleset
. Изменения в правилах, принадлежащих к Ruleset
отключения, вступят в силу в следующий раз, когда он станет включенным.
Параметры
- параметры
Возврат
Обещание <Void>
События
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Уволен, когда правило сопоставлено с запросом. Доступно только для распакованных расширений с разрешением "declarativeNetRequestFeedback"
поскольку это предназначено для использования только для целей отладки.
Параметры
- перезвонить
функция
Параметр
callback
выглядит так:(info: MatchedRuleInfoDebug) => void
- информация