chrome.declarativeNetRequest

Описание

API chrome.declarativeNetRequest используется для блокировки или изменения сетевых запросов путем указания декларативных правил. Это позволяет расширениям изменять сетевые запросы, не перехватывая их и не просматривая их содержимое, обеспечивая тем самым большую конфиденциальность.

Разрешения

declarativeNetRequest
declarativeNetRequestWithHostAccess

Разрешения « declarativeNetRequest » и « declarativeNetRequestWithHostAccess » предоставляют одинаковые возможности. Разница между ними заключается в том, когда разрешения запрашиваются или предоставляются.

"declarativeNetRequest"
Вызывает предупреждение о разрешении во время установки, но обеспечивает неявный доступ к allow , allowAllRequests и правилам block . Используйте это, когда это возможно, чтобы избежать необходимости запрашивать полный доступ к хостам.
"declarativeNetRequestFeedback"
Включает функции отладки для распакованных расширений , в частности getMatchedRules() и onRuleMatchedDebug .
"declarativeNetRequestWithHostAccess"
Предупреждение о разрешении не отображается во время установки, но вы должны запросить разрешения хоста, прежде чем сможете выполнять какие-либо действия на хосте. Это подходит, если вы хотите использовать декларативные правила сетевых запросов в расширении, которое уже имеет разрешения хоста, без создания дополнительных предупреждений.

Доступность

Хром 84+

Манифест

В дополнение к разрешениям, описанным ранее, некоторые типы наборов правил, в частности статические наборы правил, требуют объявления ключа манифеста "declarative_net_request" , который должен представлять собой словарь с единственным ключом, называемым "rule_resources" . Этот ключ представляет собой массив, содержащий словари типа 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 .

Чтобы включить или отключить статические наборы правил , вызовите 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"]
  }
}

urlFilter соответствующие символы

Ключ "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://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

Приоритизация правил

Правила активируются запросами, отправленными с веб-страниц. Если несколько правил соответствуют определенному запросу, то правила должны быть приоритетными. В этом разделе объясняется, как они расставлены по приоритетам. Расстановка приоритетов происходит в два этапа.

  1. Приоритет определяется для правил внутри расширения.
  2. Если к запросу правило может применить более одного расширения, приоритет определяется для всех расширений, соответствующих конкретному запросу.

Если подумать о сопоставлении таким образом: какое бы правило ни было приоритетным для конкретного расширения, оно будет иметь приоритет по отношению к правилам других расширений.

Приоритизация правил внутри расширения

В рамках одного расширения расстановка приоритетов осуществляется с использованием следующего процесса:

  1. Возвращается правило с наивысшим приоритетом, определенным разработчиком (другими словами, поле "priority" ).
  2. Если существует более одного правила с наивысшим приоритетом, определенным разработчиком, приоритет правил определяется с помощью поля "action" в следующем порядке:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. Если тип действия не является block или redirect , оцениваются все соответствующие правила modifyHeaders . Имейте в виду, что если существуют какие-либо правила с приоритетом, определенным разработчиком, меньшим, чем приоритет, указанный для allow allowAllRequests , такие правила игнорируются.

  4. Если несколько правил изменяют один и тот же заголовок, модификация определяется определяемым разработчиком полем "priority" и указанными операциями.

    • Если правило добавляется к заголовку, то правила с более низким приоритетом могут добавляться только к этому заголовку. Операции установки и удаления не допускаются.
    • Если правило устанавливает заголовок, то правила с более низким приоритетом могут добавляться только к этому заголовку. Никакие другие модификации не допускаются.
    • Если правило удаляет заголовок, то правила с более низким приоритетом не смогут в дальнейшем изменять заголовок.

Приоритизация правил между расширениями

Если только одно расширение имеет правило, соответствующее запросу, применяется это правило. Но если запросу соответствует более одного расширения, используется следующий процесс:

  1. Приоритеты правил распределяются с помощью поля "action" в следующем порядке:

    1. block
    2. redirect или upgradeScheme
    3. allow или allowAllRequests
  2. Если совпадает более одного правила, приоритет имеет последнее установленное расширение.

Ограничения правил

Загрузка и оценка правил в браузере приводит к увеличению производительности, поэтому при использовании 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 . Безопасные правила определяются как правила с block , allow , allowAllRequests upgradeScheme . Любые небезопасные правила, добавленные в пределах лимита в 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" манифеста.

Примеры

Примеры кода

Обновить динамические правила

В следующем примере показано, как вызвать 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), что и кадр, в котором возник запрос.

Перечисление

"первая вечеринка"
Сетевой запрос является первой стороной кадра, в котором он был создан.

"третья сторона"
Сетевой запрос является третьей стороной по отношению к кадру, в котором он был создан.

ExtensionActionOptions

Хром 88+

Характеристики

  • displayActionCountAsBadgeText

    логическое значение необязательно

    Следует ли автоматически отображать количество действий для страницы в виде текста значка расширения. Это предпочтение сохраняется во всех сеансах.

  • tabUpdate

    TabActionCountUpdate необязательно.

    Хром 89+

    Подробная информация о том, как следует настроить количество действий на вкладке.

GetDisabledRuleIdsOptions

Хром 111+

Характеристики

  • Идентификатор набора правил

    нить

    Идентификатор, соответствующий статическому Ruleset .

GetRulesFilter

Хром 111+

Характеристики

  • идентификаторы правил

    номер[] необязательно

    Если указано, включаются только правила с совпадающими идентификаторами.

HeaderOperation

Хром 86+

Здесь описаны возможные операции для правила «modifyHeaders».

Перечисление

"добавить"
Добавляет новую запись для указанного заголовка. Эта операция не поддерживается для заголовков запросов.

"набор"
Устанавливает новое значение для указанного заголовка, удаляя все существующие заголовки с тем же именем.

"удалять"
Удаляет все записи для указанного заголовка.

IsRegexSupportedResult

Хром 87+

Характеристики

  • поддерживается

    логическое значение

  • причина

    UnsupportedRegexReason необязательно

    Указывает причину, по которой регулярное выражение не поддерживается. Предоставляется только в том случае, если isSupported имеет значение false.

MatchedRule

Характеристики

  • идентификатор правила

    число

    Идентификатор соответствующего правила.

  • Идентификатор набора правил

    нить

    Идентификатор Ruleset которому принадлежит это правило. Для правила, происходящего из набора динамических правил, это значение будет равно DYNAMIC_RULESET_ID .

MatchedRuleInfo

Характеристики

  • идентификатор табуляции

    число

    tabId вкладки, из которой поступил запрос, если вкладка все еще активна. Остальное -1.

  • метка времени

    число

    Время соответствия правилу. Временные метки будут соответствовать соглашению Javascript для времени, то есть количеству миллисекунд с начала эпохи.

MatchedRuleInfoDebug

Характеристики

MatchedRulesFilter

Характеристики

  • минтиместамп

    номер необязательно

    Если указано, соответствует правилам только после указанной отметки времени.

  • идентификатор табуляции

    номер необязательно

    Если указано, соответствует только правилам для данной вкладки. Соответствует правилам, не связанным ни с одной активной вкладкой, если установлено значение -1.

ModifyHeaderInfo

Хром 86+

Характеристики

  • заголовок

    нить

    Имя заголовка, который нужно изменить.

  • Операция, выполняемая над заголовком.

  • ценить

    строка необязательна

    Новое значение для заголовка. Должен быть указан для операций append и set .

QueryKeyValue

Характеристики

  • ключ

    нить

  • replaceOnly

    логическое значение необязательно

    Хром 94+

    Если это правда, ключ запроса заменяется, только если он уже существует. В противном случае ключ также добавляется, если он отсутствует. По умолчанию ложь.

  • ценить

    нить

QueryTransform

Характеристики

  • аддонзаменепарамс

    QueryKeyValue [] необязательно

    Список пар ключ-значение запроса, которые необходимо добавить или заменить.

  • удалитьПарамс

    строка[] необязательно

    Список ключей запроса, которые необходимо удалить.

Redirect

Характеристики

  • путь расширения

    строка необязательна

    Путь относительно каталога расширения. Должно начинаться с '/'.

  • регулярное выражениеЗамена

    строка необязательна

    Шаблон подстановки для правил, определяющих regexFilter . Первое совпадение regexFilter в URL-адресе будет заменено этим шаблоном. В regexSubstitution цифры с обратной косой чертой (от \1 до \9) можно использовать для вставки соответствующих групп захвата. \0 относится ко всему совпадающему тексту.

  • трансформировать

    URLTransform необязательно

    Преобразования URL-адресов, которые необходимо выполнить.

  • URL

    строка необязательна

    URL-адрес перенаправления. Перенаправления на URL-адреса JavaScript не разрешены.

RegexOptions

Хром 87+

Характеристики

  • isCaseSensitive

    логическое значение необязательно

    Является ли указанное regex чувствительным к регистру. По умолчанию верно.

  • регулярное выражение

    нить

    Регулярное выражение для проверки.

  • требуется захват

    логическое значение необязательно

    Требуется ли захват указанного regex . Захват требуется только для правил перенаправления, которые определяют действие regexSubstition . По умолчанию — ложь.

RequestDetails

Характеристики

  • идентификатор документа

    строка необязательна

    Хром 106+

    Уникальный идентификатор документа фрейма, если этот запрос относится к фрейму.

  • Жизненный цикл документа
    Хром 106+

    Жизненный цикл документа фрейма, если этот запрос относится к фрейму.

  • идентификатор кадра

    число

    Значение 0 указывает, что запрос происходит в основном кадре; положительное значение указывает идентификатор подкадра, в котором происходит запрос. Если загружен документ (под)кадра ( typemain_frame или sub_frame ), frameId указывает идентификатор этого кадра, а не идентификатор внешнего кадра. Идентификаторы кадров уникальны в пределах вкладки.

  • Тип рамки

    Тип кадра необязательно

    Хром 106+

    Тип кадра, если это запрос на кадр.

  • инициатор

    строка необязательна

    Источник, из которого был инициирован запрос. Это не меняется при перенаправлении. Если это непрозрачное происхождение, будет использоваться строка «null».

  • метод

    нить

    Стандартный метод HTTP.

  • родительскийDocumentId

    строка необязательна

    Хром 106+

    Уникальный идентификатор родительского документа фрейма, если этот запрос относится к фрейму и имеет родительский элемент.

  • родительскийFrameId

    число

    Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

  • идентификатор запроса

    нить

    Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера.

  • идентификатор табуляции

    число

    Идентификатор вкладки, в которой происходит запрос. Установите значение -1, если запрос не связан с вкладкой.

  • Тип ресурса запроса.

  • URL

    нить

    URL-адрес запроса.

RequestMethod

Хром 91+

Здесь описывается метод HTTP-запроса сетевого запроса.

Перечисление

"соединять"

"удалить"

"получать"

"голова"

"параметры"

"пластырь"

"почта"

"помещать"

"другой"

ResourceType

Это описывает тип ресурса сетевого запроса.

Перечисление

"основной_фрейм"

"под_кадр"

"таблица стилей"

"сценарий"

"изображение"

"шрифт"

"объект"

"xmlhttprequest"

"пинг"

"csp_report"

"СМИ"

"веб-сокет"

"вебтранспорт"

"паутина"

"другой"

Rule

Характеристики

  • Действие, которое необходимо предпринять, если это правило соответствует.

  • состояние

    Условие, при котором срабатывает это правило.

  • идентификатор

    число

    Идентификатор, который однозначно идентифицирует правило. Обязательный и должен быть >= 1.

  • приоритет

    номер необязательно

    Приоритет правила. По умолчанию — 1. Если указано, должно быть >= 1.

RuleAction

Характеристики

  • перенаправить

    Перенаправление необязательно

    Описывает, как должно выполняться перенаправление. Действует только для правил перенаправления.

  • Заголовки запроса

    ModifyHeaderInfo [] необязательно

    Хром 86+

    Заголовки запроса, которые необходимо изменить для запроса. Допустимо только в том случае, если RuleActionType имеет значение «modifyHeaders».

  • Заголовки ответа

    ModifyHeaderInfo [] необязательно

    Хром 86+

    Заголовки ответов, которые необходимо изменить для запроса. Допустимо только в том случае, если RuleActionType имеет значение «modifyHeaders».

  • Тип действия, которое необходимо выполнить.

RuleActionType

Описывает тип действия, которое необходимо предпринять, если заданное RuleCondition соответствует.

Перечисление

"блокировать"
Заблокируйте сетевой запрос.

"перенаправление"
Перенаправить сетевой запрос.

"позволять"
Разрешите сетевой запрос. Запрос не будет перехвачен, если существует разрешающее правило, соответствующее ему.

"схема обновления"
Обновите схему URL-адреса сетевого запроса на https, если запрос является http или ftp.

"изменить заголовки"
Измените заголовки запроса/ответа из сетевого запроса.

"allowAllRequests"
Разрешить все запросы в иерархии кадров, включая сам запрос кадра.

RuleCondition

Характеристики

  • тип домена

    Тип домена необязательно

    Указывает, является ли сетевой запрос собственным или сторонним по отношению к домену, из которого он исходит. Если этот параметр опущен, все запросы принимаются.

  • домены

    строка[] необязательно

    Устарело с версии Chrome 101.

    Вместо этого используйте initiatorDomains

    Правило будет соответствовать только сетевым запросам, исходящим из списка domains .

  • исключенные домены

    строка[] необязательно

    Устарело с версии Chrome 101.

    Вместо этого используйте excludedInitiatorDomains .

    Правило не будет соответствовать сетевым запросам, исходящим из списка excludedDomains .

  • исключенные инициатордомены

    строка[] необязательно

    Хром 101+

    Правило не будет соответствовать сетевым запросам, исходящим из списка excludedInitiatorDomains . Если список пуст или опущен, домены не исключаются. Это имеет приоритет над initiatorDomains .

    Примечания:

    • Также разрешены субдомены, такие как «a.example.com».
    • Записи должны состоять только из символов ASCII.
    • Используйте кодировку punycode для интернационализированных доменов.
    • Это соответствует инициатору запроса, а не URL-адресу запроса.
    • Субдомены перечисленных доменов также исключены.
  • исключенный запросдомены

    строка[] необязательно

    Хром 101+

    Правило не будет соответствовать сетевым запросам, если домены соответствуют одному из списка excludedRequestDomains . Если список пуст или опущен, домены не исключаются. Это имеет приоритет над requestDomains .

    Примечания:

    • Также разрешены субдомены, такие как «a.example.com».
    • Записи должны состоять только из символов ASCII.
    • Используйте кодировку punycode для интернационализированных доменов.
    • Субдомены перечисленных доменов также исключены.
  • исключенные методы запроса

    RequestMethod [] необязательный

    Хром 91+

    Список методов запроса, которым правило не соответствует. Должен быть указан только один из requestMethods и excludedRequestMethods . Если ни один из них не указан, сопоставляются все методы запроса.

  • исключенныересаурцетипес

    ТипРесурса [] необязательно

    Список типов ресурсов, которым правило не соответствует. Должен быть указан только один из resourceTypes и excludedResourceTypes . Если ни один из них не указан, блокируются все типы ресурсов, кроме «main_frame».

  • исключенныеTabIds

    номер[] необязательно

    Хром 92+

    Список tabs.Tab.id , которым правило не должно соответствовать. Идентификатор tabs.TAB_ID_NONE исключает запросы, исходящие не от вкладки. Поддерживается только для правил на уровне сеанса.

  • домены инициатора

    строка[] необязательно

    Хром 101+

    Правило будет соответствовать только сетевым запросам, исходящим из списка initiatorDomains . Если список опущен, правило применяется к запросам со всех доменов. Пустой список не допускается.

    Примечания:

    • Также разрешены субдомены, такие как «a.example.com».
    • Записи должны состоять только из символов ASCII.
    • Используйте кодировку punycode для интернационализированных доменов.
    • Это соответствует инициатору запроса, а не URL-адресу запроса.
    • Субдомены перечисленных доменов также совпадают.
  • isUrlFilterCaseSensitive

    логическое значение необязательно

    Учитывает ли urlFilter или regexFilter (в зависимости от того, что указано) регистр. По умолчанию — ложь.

  • регулярное выражениеФильтр

    строка необязательна

    Регулярное выражение для сопоставления с URL-адресом сетевого запроса. Это соответствует синтаксису RE2 .

    Примечание. Можно указать только один из urlFilter или regexFilter .

    Примечание. regexFilter должен состоять только из символов ASCII. Это сопоставляется с URL-адресом, в котором хост закодирован в формате punycode (в случае интернационализированных доменов), а любые другие символы, отличные от ascii, имеют URL-адрес, закодированный в utf-8.

  • запросДомены

    строка[] необязательно

    Хром 101+

    Правило будет соответствовать сетевым запросам только в том случае, если домен соответствует одному из списка requestDomains . Если список опущен, правило применяется к запросам со всех доменов. Пустой список не допускается.

    Примечания:

    • Также разрешены субдомены, такие как «a.example.com».
    • Записи должны состоять только из символов ASCII.
    • Используйте кодировку punycode для интернационализированных доменов.
    • Субдомены перечисленных доменов также совпадают.
  • Методы запроса

    RequestMethod [] необязательный

    Хром 91+

    Список методов HTTP-запросов, которым может соответствовать правило. Пустой список не допускается.

    Примечание. Указание условия правила requestMethods также будет исключать запросы, отличные от HTTP, тогда как указание excludedRequestMethods — нет.

  • типы ресурсов

    ТипРесурса [] необязательно

    Список типов ресурсов, которым может соответствовать правило. Пустой список не допускается.

    Примечание. Это значение должно быть указано для allowAllRequests и может включать только типы ресурсов sub_frame и main_frame .

  • tabIds

    номер[] необязательно

    Хром 92+

    Список tabs.Tab.id , которым должно соответствовать правило. Идентификатор tabs.TAB_ID_NONE соответствует запросам, исходящим не от вкладки. Пустой список не допускается. Поддерживается только для правил на уровне сеанса.

  • urlFilter

    строка необязательна

    Шаблон, который сопоставляется с URL-адресом сетевого запроса. Поддерживаемые конструкции:

    '*' : Подстановочный знак: соответствует любому количеству символов.

    '|' : Левая/правая привязка: если используется в любом конце шаблона, указывает начало/конец URL-адреса соответственно.

    '||' : Привязка имени домена: если используется в начале шаблона, указывает начало (суб)домена URL-адреса.

    '^' : Символ-разделитель: соответствует чему угодно, кроме буквы, цифры или одного из следующих символов: _ , - , . , или % . Это также соответствует концу URL-адреса.

    Поэтому urlFilter состоит из следующих частей: (необязательная привязка слева/доменного имени) + шаблон + (необязательная правая привязка).

    Если этот параметр опущен, все URL-адреса совпадают. Пустая строка не допускается.

    Шаблон, начинающийся с ||* не допускается. Вместо этого используйте * .

    Примечание. Можно указать только один из urlFilter или regexFilter .

    Примечание. urlFilter должен состоять только из символов ASCII. Это сопоставляется с URL-адресом, в котором хост закодирован в формате punycode (в случае интернационализированных доменов), а любые другие символы, отличные от ascii, имеют URL-адрес, закодированный в utf-8. Например, если URL-адрес запроса — http://abc.рф?q=ф, urlFilter будет сопоставляться с URL-адресом http://abc.xn--p1ai/?q=%D1%84.

Ruleset

Характеристики

  • включено

    логическое значение

    Включен ли набор правил по умолчанию.

  • идентификатор

    нить

    Непустая строка, однозначно идентифицирующая набор правил. Идентификаторы, начинающиеся с «_», зарезервированы для внутреннего использования.

  • путь

    нить

    Путь к набору правил JSON относительно каталога расширения.

RulesMatchedDetails

Характеристики

TabActionCountUpdate

Хром 89+

Характеристики

  • приращение

    число

    Сумма, на которую нужно увеличить количество действий на вкладке. Отрицательные значения уменьшат счетчик.

  • идентификатор табуляции

    число

    Вкладка, для которой обновляется количество действий.

TestMatchOutcomeResult

Хром 103+

Характеристики

TestMatchRequestDetails

Хром 103+

Характеристики

  • инициатор

    строка необязательна

    URL-адрес инициатора (если есть) гипотетического запроса.

  • метод

    RequestMethod необязательный

    Стандартный HTTP-метод гипотетического запроса. По умолчанию используется значение «get» для HTTP-запросов и игнорируется для запросов, отличных от HTTP.

  • идентификатор табуляции

    номер необязательно

    Идентификатор вкладки, в которой происходит гипотетический запрос. Не обязательно должен соответствовать реальному идентификатору вкладки. По умолчанию установлено значение -1, что означает, что запрос не связан с вкладкой.

  • Тип ресурса гипотетического запроса.

  • URL

    нить

    URL-адрес гипотетического запроса.

UnsupportedRegexReason

Хром 87+

Описывает причину, по которой данное регулярное выражение не поддерживается.

Перечисление

"ошибка синтаксиса"
Регулярное выражение синтаксически неверно или использует функции, недоступные в синтаксисе RE2 .

«Превышение лимита памяти»
Регулярное выражение превышает лимит памяти.

UpdateRuleOptions

Хром 87+

Характеристики

  • добавитьправила

    Правило [] необязательно

    Правила добавить.

  • удалитьRuleIds

    номер[] необязательно

    Идентификаторы правил, которые необходимо удалить. Любые недействительные идентификаторы будут игнорироваться.

UpdateRulesetOptions

Хром 87+

Характеристики

  • отключитьRulesetIds

    строка[] необязательно

    Набор идентификаторов, соответствующий статическому Ruleset , который следует отключить.

  • EnableRulesetIds

    строка[] необязательно

    Набор идентификаторов, соответствующий статическому Ruleset , который следует включить.

UpdateStaticRulesOptions

Хром 111+

Характеристики

  • отключитьрулеидс

    номер[] необязательно

    Набор идентификаторов, соответствующих правилам в Ruleset , которые необходимо отключить.

  • EnableRuleIds

    номер[] необязательно

    Набор идентификаторов, соответствующих правилам в Ruleset , которые необходимо включить.

  • Идентификатор набора правил

    нить

    Идентификатор, соответствующий статическому Ruleset .

URLTransform

Характеристики

  • фрагмент

    строка необязательна

    Новый фрагмент запроса. Должно быть либо пустым, в этом случае существующий фрагмент очищается; или должен начинаться с '#'.

  • хозяин

    строка необязательна

    Новый хост для запроса.

  • пароль

    строка необязательна

    Новый пароль для запроса.

  • путь

    строка необязательна

    Новый путь для запроса. Если пусто, существующий путь очищается.

  • порт

    строка необязательна

    Новый порт для запроса. Если пусто, существующий порт очищается.

  • запрос

    строка необязательна

    Новый запрос для запроса. Должно быть либо пустым, в этом случае существующий запрос очищается; или должно начинаться с '?'.

  • запросПреобразование

    QueryTransform необязательно

    Добавляйте, удаляйте или заменяйте пары ключ-значение запроса.

  • схема

    строка необязательна

    Новая схема запроса. Допустимые значения: «http», «https», «ftp» и «chrome-extension».

  • имя пользователя

    строка необязательна

    Новое имя пользователя для запроса.

Характеристики

DYNAMIC_RULESET_ID

Идентификатор набора правил для динамических правил, добавляемых расширением.

Ценить

"_динамический"

GETMATCHEDRULES_QUOTA_INTERVAL

Интервал времени, в течение которого могут быть выполнены вызовы MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules , указан в минутах. Дополнительные вызовы немедленно завершатся ошибкой и будут установлены runtime.lastError . Примечание. Вызовы getMatchedRules , связанные с жестом пользователя, не подпадают под действие квоты.

Ценить

10

GUARANTEED_MINIMUM_STATIC_RULES

Хром 89+

Минимальное количество статических правил, гарантированное расширению во всех включенных статических наборах правил. Любые правила, превышающие этот предел, будут учитываться в глобальном лимите статических правил .

Ценить

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

Сколько раз getMatchedRules можно вызывать в течение периода GETMATCHEDRULES_QUOTA_INTERVAL .

Ценить

20

MAX_NUMBER_OF_DYNAMIC_RULES

Максимальное количество динамических правил, которые может добавить расширение.

Ценить

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Хром 94+

Максимальное количество статических Rulesets которые расширение может включить в любое время.

Ценить

50

MAX_NUMBER_OF_REGEX_RULES

Максимальное количество правил регулярного выражения, которые может добавить расширение. Этот предел оценивается отдельно для набора динамических правил и указанных в файле ресурсов правил.

Ценить

1000

MAX_NUMBER_OF_SESSION_RULES

Хром 120+

Максимальное количество правил сферы сеанса, которые может добавить расширение.

Ценить

5000

MAX_NUMBER_OF_STATIC_RULESETS

Максимальное количество статических Rulesets , которые расширение может указать как часть манифестного ключа "rule_resources" .

Ценить

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Хром 120+

Максимальное количество «небезопасных» динамических правил, которые может добавить расширение.

Ценить

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Хром 120+

Максимальное количество «небезопасных» сессионных правил, которые может добавить расширение.

Ценить

5000

SESSION_RULESET_ID

Хром 90+

Идентификатор набора правил для правил с сеансом, добавленным расширением.

Ценить

"_Session"

Методы

getAvailableStaticRuleCount()

Обещай хром 89+
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)

Возвращает количество статических правил, которые может включить расширение до достижения глобального ограничения статического правила .

Параметры

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (count: number)=>void

    • считать

      число

Возврат

  • Обещание <число>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

getDisabledRuleIds()

Обещание хром 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)

Возвращает список статических правил в данном Ruleset , которые в настоящее время отключены.

Параметры

  • параметры

    Определяет набор правил для запроса.

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (disabledRuleIds: number[])=>void

    • инвалиды

      число[]

Возврат

  • Обещание <номер []>

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

getDynamicRules()

Обещать
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Возвращает текущий набор динамических правил для расширения. Абоненты могут необязательно отфильтровать список извлеченных правил, указав filter .

Параметры

  • фильтр

    GetRulesFilter необязательно

    Хром 111+

    Объект для фильтрации списка извлеченных правил.

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (rules: Rule[])=>void

Возврат

  • Обещание < Правило []>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

getEnabledRulesets()

Обещать
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)

Возвращает идентификаторы для текущего набора включенных статических наборов правил.

Параметры

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (rulesetIds: string[])=>void

    • Правила

      нить[]

Возврат

  • Обещание <string []>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

getMatchedRules()

Обещать
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)

Возвращает все правила, соответствующие расширению. Абоненты могут необязательно отфильтровать список соответствующих правил, указав filter . Этот метод доступен только для расширений с разрешением "declarativeNetRequestFeedback" или с разрешением "activeTab" , предоставленным для tabId , указанного в filter . ПРИМЕЧАНИЕ. Правила, не связанные с активным документом, который соответствовал более пяти минутам назад, не будут возвращены.

Параметры

  • фильтр

    MatchedRulesfilter необязательно

    Объект для фильтрации списка соответствующих правил.

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (details: RulesMatchedDetails)=>void

Возврат

  • Обещание < правила MatchedDetails >

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

getSessionRules()

Обещай хром 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Возвращает текущий набор правил сферы сеанса для расширения. Абоненты могут необязательно отфильтровать список извлеченных правил, указав filter .

Параметры

  • фильтр

    GetRulesFilter необязательно

    Хром 111+

    Объект для фильтрации списка извлеченных правил.

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (rules: Rule[])=>void

Возврат

  • Обещание < Правило []>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

isRegexSupported()

Обещай хром 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)

Проверяет, если данное регулярное выражение будет поддерживаться как условие правила regexFilter .

Параметры

  • regexoptions

    Регулярное выражение для проверки.

  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    (result: IsRegexSupportedResult)=>void

Возврат

  • Обещание <ISREGEXSUPPORTEDRESULT>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

setExtensionActionOptions()

Обещай хром 88+
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)

Настройка, если количество действий для вкладок должно отображаться в качестве текста значка действия расширения и предоставляет способ увеличить количество действий.

Параметры

  • параметры
  • перезвонить

    функция необязательно

    Хром 89+

    Параметр callback выглядит как:

    ()=>void

Возврат

  • Обещание <Void>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

testMatchOutcome()

Обещай хром 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)

Проверяет, что какое -либо из правил DeclarativenetRequest в продлении соответствует гипотетическому запросу. Примечание. Доступно только для распакованных расширений, так как это предназначено только для развития расширения.

Параметры

Возврат

  • Обещание <testmatchoutcomeresult>

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

updateDynamicRules()

Обещать
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Изменяет текущий набор динамических правил для расширения. Правила с идентификаторами, перечисленными в options.removeRuleIds сначала удаляются, а затем добавляются правила, приведенные в options.addRules . Примечания:

  • Это обновление происходит как одна атомная операция: либо добавляются и удаляются все указанные правила, либо возвращается ошибка.
  • Эти правила сохраняются между сеансами браузера и по обновлениям расширения.
  • Статические правила, указанные как часть пакета расширения, не могут быть удалены с использованием этой функции.
  • MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES - это максимальное количество комбинированных динамических правил и сеансов, которые может добавить расширение.

Параметры

  • параметры
    Хром 87+
  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    ()=>void

Возврат

  • Обещание <Void>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

updateEnabledRulesets()

Обещать
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)

Обновляет набор включенных статических наборов правил для расширения. Наборы правил с идентификаторами, перечисленными в options.disableRulesetIds сначала удаляются, а затем добавляются наборы правил, перечисленные в options.enableRulesetIds . Обратите внимание, что набор включенных статических наборов правил сохраняется в разных сеансах, но не по обновлениям расширения, то есть ключ Manifest rule_resources будет определять набор включенных статических наборов правил при каждом обновлении расширения.

Параметры

  • параметры
    Хром 87+
  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    ()=>void

Возврат

  • Обещание <Void>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

updateSessionRules()

Обещай хром 90+
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Изменяет текущий набор правил сферы сеанса для расширения. Правила с идентификаторами, перечисленными в options.removeRuleIds сначала удаляются, а затем добавляются правила, приведенные в options.addRules . Примечания:

  • Это обновление происходит как одна атомная операция: либо добавляются и удаляются все указанные правила, либо возвращается ошибка.
  • Эти правила не сохраняются в разных сессиях и поддерживаются в памяти.
  • MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES - это максимальное количество комбинированных динамических правил и сеансов, которые может добавить расширение.

Параметры

  • параметры
  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    ()=>void

Возврат

  • Обещание <Void>

    Хром 91+

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

updateStaticRules()

Обещание хром 111+
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)

Отключает и позволяет отдельным статическим правилам на Ruleset . Изменения в правилах, принадлежащих к сбору Ruleset отключения, вступят в силу в следующий раз, когда он станет включенным.

Параметры

  • параметры
  • перезвонить

    функция необязательно

    Параметр callback выглядит как:

    ()=>void

Возврат

  • Обещание <Void>

    Обещания поддерживаются в Manifest V3 и позже, но обратные вызовы предоставляются для обратной совместимости. Вы не можете использовать оба на одном и том же вызове функции. Обещание решается с тем же типом, который передается обратном вызове.

События

onRuleMatchedDebug

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
  callback: function,
)

Уволен, когда правило сопоставлено с запросом. Доступно только для распакованных расширений с разрешением "declarativeNetRequestFeedback" , поскольку это предназначено для использования только для целей отладки.

Параметры