chrome.declarativeNetRequest

Описание

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

Разрешения

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequestFeedback
host_permissions

Доступность

Хром 84+

Манифест

Помимо описанных выше разрешений, некоторые типы наборов правил, в частности статические, требуют объявления ключа манифеста "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 .

Чтобы включить или отключить статические наборы правил , вызовите метод 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 действуют некоторые ограничения. Ограничения зависят от типа используемого правила.

Статические правила

Статические правила — это правила, указанные в файлах правил, объявленных в файле манифеста. Расширение может указать до 50 статических наборов правил в рамках ключа манифеста "rule_resources" , но только 10 из этих наборов правил могут быть включены одновременно. Последнее называется MAX_NUMBER_OF_ENABLED_STATIC_RULESETS . В совокупности эти наборы правил гарантированно содержат не менее 30 000 правил. Это называется GUARANTEED_MINIMUM_STATIC_RULES .

Количество доступных правил после этого зависит от того, сколько правил включено во всех расширениях, установленных в браузере пользователя. Это число можно узнать во время выполнения, вызвав метод getAvailableStaticRuleCount() . Пример можно увидеть в разделе «Примеры кода» .

Динамические и сеансовые правила

Ограничения, применяемые к динамическим и сеансовым правилам, проще, чем к статическим. Общее количество правил не может превышать 5000. Это называется MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES .

Правила, использующие регулярные выражения

Все типы правил могут использовать регулярные выражения; однако общее количество правил регулярных выражений каждого типа не может превышать 1000. Это называется MAX_NUMBER_OF_REGEX_RULES .

Кроме того, размер каждого правила после компиляции должен быть менее 2 КБ. Это примерно соответствует сложности правила. При попытке загрузить правило, превышающее этот лимит, вы увидите предупреждение, подобное показанному ниже, и правило будет проигнорировано.

rules_1.json: Rule with id 1 specified a more complext 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), что и фрейм, из которого он был создан.

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

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

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

ExtensionActionOptions

Хром 88+

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

  • displayActionCountAsBadgeText

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

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

  • вкладкаОбновление

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

    Хром 89+

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

GetDisabledRuleIdsOptions

Хром 111+

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

  • rulesetId

    нить

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

GetRulesFilter

Хром 111+

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

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

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

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

HeaderInfo

Хром 128+

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

  • исключенные значения

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

    Если указано, это условие не выполняется, если заголовок существует, но его значение содержит хотя бы один элемент из этого списка. Используется тот же синтаксис шаблона сопоставления, что и values .

  • заголовок

    нить

    Имя заголовка. Это условие выполняется только в том случае, если не указаны ни values , ни excludedValues .

  • ценности

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

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

    '*' : Соответствует любому количеству символов.

    '?' : Соответствует нулю или одному символу(ам).

    Символы «*» и «?» можно экранировать обратной косой чертой, например, «\*» и «\?».

HeaderOperation

Хром 86+

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

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

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

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

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

IsRegexSupportedResult

Хром 87+

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

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

    булев

  • причина

    Необязательный параметр UnsupportedRegexReason

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

MatchedRule

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

  • ruleId

    число

    Идентификатор правила сопоставления.

  • rulesetId

    нить

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

MatchedRuleInfo

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

  • правило
  • tabId

    число

    TabId вкладки, с которой был отправлен запрос, если вкладка всё ещё активна. В противном случае -1.

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

    число

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

MatchedRuleInfoDebug

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

MatchedRulesFilter

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

  • minTimeStamp

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

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

  • tabId

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

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

ModifyHeaderInfo

Хром 86+

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

  • заголовок

    нить

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

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

  • ценить

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

    Новое значение заголовка. Необходимо указать для операций 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

Хром 87+

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

  • isCaseSensitive

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

    Учитывает ли указанное regex ? Значение по умолчанию — true.

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

    нить

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

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

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

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

RequestDetails

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

  • documentId

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

    Хром 106+

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

  • жизненный цикл документа

    DocumentLifecycle (необязательно)

    Хром 106+

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

  • frameId

    число

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

  • frameType

    FrameType (необязательно)

    Хром 106+

    Тип фрейма, если это запрос фрейма.

  • инициатор

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

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

  • метод

    нить

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

  • parentDocumentId

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

    Хром 106+

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

  • parentFrameId

    число

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

  • requestId

    нить

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

  • tabId

    число

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

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

  • URL-адрес

    нить

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

RequestMethod

Хром 91+

Здесь описывается метод 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"
Обновите схему URL сетевого запроса до https, если запрос — http или ftp.

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

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

RuleCondition

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

  • Тип_домена

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

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

  • домены

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

    Не рекомендуется с версии Chrome 101

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

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

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

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

    Умерен с хрома 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

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

  • rulesMatchedInfo

    Правила, соответствующие заданному фильтру.

TabActionCountUpdate

Хром 89+

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

  • приращение

    число

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

  • tabId

    число

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

TestMatchOutcomeResult

Хром 103+

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

  • matchedRules

    Правила (если таковые имеются), соответствующие гипотетическому запросу.

TestMatchRequestDetails

Хром 103+

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

  • инициатор

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

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

  • метод

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

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

  • responseHeaders

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

    Хром 129+

    Заголовки, предоставляемые гипотетическим ответом, если запрос не был заблокирован или перенаправлен до отправки. Представлены как объект, сопоставляющий имя заголовка со списком строковых значений. Если не указано иное, гипотетический ответ вернет пустые заголовки ответа, что может соответствовать правилам, применяемым при отсутствии заголовков. Например {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • tabId

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

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

  • тип

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

  • URL-адрес

    нить

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

UnsupportedRegexReason

Хром 87+

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

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

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

"memoryLimitExceeded"
Регулярное выражение превышает лимит памяти.

UpdateRuleOptions

Хром 87+

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

  • addRules

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

    Правила для добавления.

  • removeRuleIds

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

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

UpdateRulesetOptions

Хром 87+

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

  • disableRulesetIds

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

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

  • enableRulesetIds

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

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

UpdateStaticRulesOptions

Хром 111+

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

  • disableRuleIds

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

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

  • enableRuleIds

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

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

  • rulesetId

    нить

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

URLTransform

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

  • фрагмент

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

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

  • хозяин

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

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

  • пароль

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

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

  • путь

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

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

  • порт

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

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

  • запрос

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

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

  • queryTransform

    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+

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

Ценить

"_сессия"

Методы

getAvailableStaticRuleCount()

Обещание Chrome 89+
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)
: Promise<number>

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

Параметры

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

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

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

    (count: number) => void

    • считать

      число

Возврат

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

    Хром 91+

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

getDisabledRuleIds()

Обещание Chrome 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)
: Promise<number[]>

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

Параметры

  • параметры

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

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

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

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

    (disabledRuleIds: number[]) => void

    • отключенныеRuleIds

      число[]

Возврат

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

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

getDynamicRules()

Обещать
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

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

Параметры

  • фильтр

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

    Хром 111+

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

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

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

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

    (rules: Rule[]) => void

Возврат

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

    Хром 91+

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

getEnabledRulesets()

Обещать
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)
: Promise<string[]>

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

Параметры

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

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

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

    (rulesetIds: string[]) => void

    • rulesetIds

      нить[]

Возврат

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

    Хром 91+

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

getMatchedRules()

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

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

Параметры

Возврат

  • Хром 91+

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

getSessionRules()

Обещание Chrome 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

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

Параметры

  • фильтр

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

    Хром 111+

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

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

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

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

    (rules: Rule[]) => void

Возврат

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

    Хром 91+

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

isRegexSupported()

Обещание Chrome 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)
: Promise<IsRegexSupportedResult>

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

Параметры

  • regexOptions

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

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

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

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

    (result: IsRegexSupportedResult) => void

Возврат

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

    Хром 91+

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

setExtensionActionOptions()

Обещание Chrome 88+
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)
: Promise<void>

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

Параметры

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

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

    Хром 89+

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

    () => void

Возврат

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

    Хром 91+

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

testMatchOutcome()

Обещание Chrome 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)
: Promise<TestMatchOutcomeResult>

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

Параметры

Возврат

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

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

updateDynamicRules()

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

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

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

Параметры

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

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

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

    () => void

Возврат

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

    Хром 91+

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

updateEnabledRulesets()

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

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

Параметры

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

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

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

    () => void

Возврат

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

    Хром 91+

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

updateSessionRules()

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

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

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

Параметры

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

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

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

    () => void

Возврат

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

    Хром 91+

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

updateStaticRules()

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

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

Параметры

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

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

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

    () => void

Возврат

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

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

События

onRuleMatchedDebug

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

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

Параметры