chrome.declarativeNetRequest

Описание

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

Разрешения

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequestFeedback
host_permissions

Доступность

Chrome 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-адреса правило с ID 2 теперь соответствует требованиям в дополнение к правилам с ID 1 и 4. Правило с ID 2 применяется, потому что "allow" имеет более высокий приоритет, чем "block" и "redirect" .
Перейти по ссылке https://google.com/12345
Все четыре правила соответствуют этому URL-адресу. Правило с ID 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

Chrome 88+

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

  • displayActionCountAsBadgeText

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

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

  • tabUpdate

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

    Chrome 89+

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

GetDisabledRuleIdsOptions

Chrome 111+

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

  • rulesetId

    нить

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

GetRulesFilter

Chrome 111+

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

  • ruleIds

    число[] необязательно

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

HeaderInfo

Chrome 128+

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

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

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

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

  • заголовок

    нить

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

  • ценности

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

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

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

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

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

HeaderOperation

Chrome 86+

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

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

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

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

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

IsRegexSupportedResult

Chrome 87+

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

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

    логический

  • причина

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

MatchedRule

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

  • ruleId

    число

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

  • rulesetId

    нить

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

MatchedRuleInfo

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

  • правило
  • tabId

    число

    tabId — идентификатор вкладки, с которой поступил запрос, если вкладка все еще активна. В противном случае — -1.

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

    число

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

MatchedRuleInfoDebug

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

  • запрос

    Подробная информация о запросе, для которого было найдено соответствующее правило.

  • правило

MatchedRulesFilter

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

  • minTimeStamp

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

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

  • tabId

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

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

ModifyHeaderInfo

Chrome 86+

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

  • заголовок

    нить

    Название заголовка, подлежащего изменению.

  • операция

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

  • ценить

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

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

QueryKeyValue

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

  • ключ

    нить

  • replaceOnly

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

    Chrome 94+

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

  • ценить

    нить

QueryTransform

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

  • addOrReplaceParams

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

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

  • removeParams

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

    Список ключей запроса, подлежащих удалению.

Redirect

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

  • extensionPath

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

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

  • regexSubstitution

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

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

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

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

    Для выполнения преобразования URL-адресов.

  • url

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

    URL-адрес перенаправления. Перенаправления на URL-адреса JavaScript не допускаются.

RegexOptions

Chrome 87+

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

  • isCaseSensitive

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

    Указывает, чувствительно ли указанное regex . По умолчанию — true.

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

    нить

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

  • requireCapturing

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

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

RequestDetails

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

  • documentId

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

    Chrome 106+

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

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

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

  • frameId

    число

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

  • frameType

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

    Chrome 106+

    Укажите тип рамки, если запрос касается именно рамки.

  • инициатор

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

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

  • метод

    нить

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

  • parentDocumentId

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

    Chrome 106+

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

  • parentFrameId

    число

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

  • requestId

    нить

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

  • tabId

    число

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

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

  • url

    нить

    URL запроса.

RequestMethod

Chrome 91+

В этом описании представлен метод HTTP-запроса к сети.

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

"соединять"

"удалить"

"получать"

"голова"

"параметры"

"пластырь"

"почта"

"помещать"

"другой"

ResourceType

Здесь описывается тип ресурса, к которому относится сетевой запрос.

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

"main_frame"

"sub_frame"

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

"сценарий"

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

"шрифт"

"объект"

"xmlhttprequest"

"пинг"

"csp_report"

«медиа»

"вебсокет"

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

"webbundle"

"другой"

Rule

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

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

  • состояние

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

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

    число

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

  • приоритет

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

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

RuleAction

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

  • перенаправление

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

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

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

    ModifyHeaderInfo [] optional

    Chrome 86+

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

  • responseHeaders

    ModifyHeaderInfo [] optional

    Chrome 86+

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

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

RuleActionType

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

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

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

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

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

«upgradeScheme»
Если запрос выполняется по протоколу HTTP или FTP, измените схему URL-адреса сетевого запроса на HTTPS.

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

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

RuleCondition

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

  • domainType

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

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

  • домены

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

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

    Используйте initiatorDomains вместо этого.

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

  • excludedDomains

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

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

    Используйте excludedInitiatorDomains вместо этого.

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

  • excludedInitiatorDomains

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

    Chrome 101+

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

    Примечания:

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

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

    Chrome 101+

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

    Примечания:

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

    RequestMethod [] optional

    Chrome 91+

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

  • excludedResourceTypes

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

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

  • excludedResponseHeaders

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

    Chrome 128+

    Правило не срабатывает, если запрос соответствует какому-либо условию заголовка ответа из этого списка (если указано). Если указаны и excludedResponseHeaders , и responseHeaders , то свойство excludedResponseHeaders имеет приоритет.

  • excludedTabIds

    число[] необязательно

    Chrome 92+

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

  • excludedTopDomains

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

    В ожидании

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

    Примечания:

    • Также разрешены поддомены, такие как "a.example.com".
    • Записи должны состоять только из символов ASCII.
    • Для интернационализированных доменов используйте кодировку punycode.
    • Исключение составляют также поддомены перечисленных доменов.
    • Для запросов, не имеющих связанного с ними фрейма верхнего уровня (например, запросы, инициированные ServiceWorker), вместо этого рассматривается домен инициатора запроса.
  • initiatorDomains

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

    Chrome 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

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

    Chrome 101+

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

    Примечания:

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

    RequestMethod [] optional

    Chrome 91+

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

    Примечание: указание условия правила requestMethods также исключит запросы, не относящиеся к HTTP(s), тогда как указание excludedRequestMethods этого не сделает.

  • resourceTypes

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

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

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

  • responseHeaders

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

    Chrome 128+

    Правило срабатывает, если запрос соответствует хотя бы одному условию заголовка ответа из этого списка (если указано).

  • tabIds

    число[] необязательно

    Chrome 92+

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

  • topDomains

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

    В ожидании

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

    Примечания:

    • Также разрешены поддомены, такие как "a.example.com".
    • Записи должны состоять только из символов ASCII.
    • Для интернационализированных доменов используйте кодировку punycode.
    • Также выполняется сопоставление субдоменов перечисленных доменов.
    • Для запросов, не имеющих связанного с ними фрейма верхнего уровня (например, запросы, инициированные ServiceWorker), вместо этого рассматривается домен инициатора запроса.
  • urlFilter

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

    Шаблон, сопоставляемый с 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.

RuleConditionKeys

В ожидании

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

"urlFilter"

"regexFilter"

"isUrlFilterCaseSensitive"

"initiatorDomains"

"excludedInitiatorDomains"

"requestDomains"

"excludedRequestDomains"

"topDomains"

"исключенныеТопДомены"

«домены»

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

"resourceTypes"

"excludedResourceTypes"

"requestMethods"

"excludedRequestMethods"

"domainType"

"tabIds"

"excludedTabIds"

"responseHeaders"

"исключенные заголовки ответа"

Ruleset

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

  • включено

    логический

    Указывает, включен ли набор правил по умолчанию.

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

    нить

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

  • путь

    нить

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

RulesMatchedDetails

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

  • rulesMatchedInfo

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

TabActionCountUpdate

Chrome 89+

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

  • увеличение

    число

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

  • tabId

    число

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

TestMatchOutcomeResult

Chrome 103+

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

  • matchedRules

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

TestMatchRequestDetails

Chrome 103+

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

  • инициатор

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

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

  • метод

    RequestMethod ( необязательный параметр)

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

  • responseHeaders

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

    Chrome 129+

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

  • tabId

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

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

  • topUrl

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

    В ожидании

    Связанный с запросом URL-адрес фрейма верхнего уровня (если таковой имеется).

  • тип

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

  • url

    нить

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

UnsupportedRegexReason

Chrome 87+

Describes the reason why a given regular expression isn't supported.

Enum

"syntaxError"
The regular expression is syntactically incorrect, or uses features not available in the RE2 syntax .

"memoryLimitExceeded"
The regular expression exceeds the memory limit.

UpdateRuleOptions

Chrome 87+

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

  • addRules

    Rule [] optional

    Rules to add.

  • removeRuleIds

    number[] optional

    IDs of the rules to remove. Any invalid IDs will be ignored.

UpdateRulesetOptions

Chrome 87+

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

  • disableRulesetIds

    string[] optional

    The set of ids corresponding to a static Ruleset that should be disabled.

  • enableRulesetIds

    string[] optional

    The set of ids corresponding to a static Ruleset that should be enabled.

UpdateStaticRulesOptions

Chrome 111+

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

  • disableRuleIds

    number[] optional

    Set of ids corresponding to rules in the Ruleset to disable.

  • enableRuleIds

    number[] optional

    Set of ids corresponding to rules in the Ruleset to enable.

  • rulesetId

    нить

    The id corresponding to a static Ruleset .

URLTransform

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

  • фрагмент

    string optional

    The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'.

  • хозяин

    string optional

    The new host for the request.

  • пароль

    string optional

    The new password for the request.

  • путь

    string optional

    The new path for the request. If empty, the existing path is cleared.

  • порт

    string optional

    The new port for the request. If empty, the existing port is cleared.

  • запрос

    string optional

    The new query for the request. Should be either empty, in which case the existing query is cleared; or should begin with '?'.

  • queryTransform

    QueryTransform optional

    Add, remove or replace query key-value pairs.

  • схема

    string optional

    The new scheme for the request. Allowed values are "http", "https", "ftp" and "chrome-extension".

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

    string optional

    The new username for the request.

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

DYNAMIC_RULESET_ID

Ruleset ID for the dynamic rules added by the extension.

Ценить

"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

Time interval within which MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules calls can be made, specified in minutes. Additional calls will fail immediately and set runtime.lastError . Note: getMatchedRules calls associated with a user gesture are exempt from the quota.

Ценить

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89+

The minimum number of static rules guaranteed to an extension across its enabled static rulesets. Any rules above this limit will count towards the global static rule limit .

Ценить

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

The number of times getMatchedRules can be called within a period of GETMATCHEDRULES_QUOTA_INTERVAL .

Ценить

20

MAX_NUMBER_OF_DYNAMIC_RULES

The maximum number of dynamic rules that an extension can add.

Ценить

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94+

The maximum number of static Rulesets an extension can enable at any one time.

Ценить

50

MAX_NUMBER_OF_REGEX_RULES

The maximum number of regular expression rules that an extension can add. This limit is evaluated separately for the set of dynamic rules and those specified in the rule resources file.

Ценить

1000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120+

The maximum number of session scoped rules that an extension can add.

Ценить

5000

MAX_NUMBER_OF_STATIC_RULESETS

The maximum number of static Rulesets an extension can specify as part of the "rule_resources" manifest key.

Ценить

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120+

The maximum number of "unsafe" dynamic rules that an extension can add.

Ценить

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120+

The maximum number of "unsafe" session scoped rules that an extension can add.

Ценить

5000

SESSION_RULESET_ID

Chrome 90+

Ruleset ID for the session-scoped rules added by the extension.

Ценить

"_session"

Методы

getAvailableStaticRuleCount()

PromiseChrome 89+
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)
: Promise<number>

Returns the number of static rules an extension can enable before the global static rule limit is reached.

Параметры

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

    function optional

    The callback parameter looks like:

    (count: number) => void

    • считать

      число

Возвраты

  • Promise<number>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getDisabledRuleIds()

PromiseChrome 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)
: Promise<number[]>

Returns the list of static rules in the given Ruleset that are currently disabled.

Параметры

  • параметры

    Specifies the ruleset to query.

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

    function optional

    The callback parameter looks like:

    (disabledRuleIds: number[]) => void

    • disabledRuleIds

      число[]

Возвраты

  • Promise<number[]>

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getDynamicRules()

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

Returns the current set of dynamic rules for the extension. Callers can optionally filter the list of fetched rules by specifying a filter .

Параметры

  • фильтр

    GetRulesFilter optional

    Chrome 111+

    An object to filter the list of fetched rules.

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

    function optional

    The callback parameter looks like:

    (rules: Rule[]) => void

    • правила

      Rule []

Возвраты

  • Promise< Rule []>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getEnabledRulesets()

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

Returns the ids for the current set of enabled static rulesets.

Параметры

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

    function optional

    The callback parameter looks like:

    (rulesetIds: string[]) => void

    • rulesetIds

      нить[]

Возвраты

  • Promise<string[]>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getMatchedRules()

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

Returns all rules matched for the extension. Callers can optionally filter the list of matched rules by specifying a filter . This method is only available to extensions with the "declarativeNetRequestFeedback" permission or having the "activeTab" permission granted for the tabId specified in filter . Note: Rules not associated with an active document that were matched more than five minutes ago will not be returned.

Параметры

Возвраты

  • Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

getSessionRules()

PromiseChrome 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

Returns the current set of session scoped rules for the extension. Callers can optionally filter the list of fetched rules by specifying a filter .

Параметры

  • фильтр

    GetRulesFilter optional

    Chrome 111+

    An object to filter the list of fetched rules.

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

    function optional

    The callback parameter looks like:

    (rules: Rule[]) => void

    • правила

      Rule []

Возвраты

  • Promise< Rule []>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

isRegexSupported()

PromiseChrome 87+
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)
: Promise<IsRegexSupportedResult>

Checks if the given regular expression will be supported as a regexFilter rule condition.

Параметры

Возвраты

  • Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

setExtensionActionOptions()

PromiseChrome 88+
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)
: Promise<void>

Configures if the action count for tabs should be displayed as the extension action's badge text and provides a way for that action count to be incremented.

Параметры

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

    function optional

    Chrome 89+

    The callback parameter looks like:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

testMatchOutcome()

PromiseChrome 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)
: Promise<TestMatchOutcomeResult>

Checks if any of the extension's declarativeNetRequest rules would match a hypothetical request. Note: Only available for unpacked extensions as this is only intended to be used during extension development.

Параметры

Возвраты

  • Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

updateDynamicRules()

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

Modifies the current set of dynamic rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. Notes:

  • This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
  • These rules are persisted across browser sessions and across extension updates.
  • Static rules specified as part of the extension package can not be removed using this function.
  • MAX_NUMBER_OF_DYNAMIC_RULES is the maximum number of dynamic rules an extension can add. The number of unsafe rules must not exceed MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES .

Параметры

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

    function optional

    The callback parameter looks like:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

updateEnabledRulesets()

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

Updates the set of enabled static rulesets for the extension. The rulesets with IDs listed in options.disableRulesetIds are first removed, and then the rulesets listed in options.enableRulesetIds are added. Note that the set of enabled static rulesets is persisted across sessions but not across extension updates, ie the rule_resources manifest key will determine the set of enabled static rulesets on each extension update.

Параметры

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

    function optional

    The callback parameter looks like:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

updateSessionRules()

PromiseChrome 90+
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)
: Promise<void>

Modifies the current set of session scoped rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. Notes:

  • This update happens as a single atomic operation: either all specified rules are added and removed, or an error is returned.
  • These rules are not persisted across sessions and are backed in memory.
  • MAX_NUMBER_OF_SESSION_RULES is the maximum number of session rules an extension can add.

Параметры

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

    function optional

    The callback parameter looks like:

    () => void

Возвраты

  • Обещание<пустота>

    Chrome 91+

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

updateStaticRules()

PromiseChrome 111+
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)
: Promise<void>

Disables and enables individual static rules in a Ruleset . Changes to rules belonging to a disabled Ruleset will take effect the next time that it becomes enabled.

Параметры

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

    function optional

    The callback parameter looks like:

    () => void

Возвраты

  • Обещание<пустота>

    Promises are only supported for Manifest V3 and later, other platforms need to use callbacks.

События

onRuleMatchedDebug

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

Fired when a rule is matched with a request. Only available for unpacked extensions with the "declarativeNetRequestFeedback" permission as this is intended to be used for debugging purposes only.

Параметры