chrome.declarativeNetRequest

Описание

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

Разрешения

declarativeNetRequest
declarativeNetRequestWithHostAccess

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

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

Доступность

Хром 84+

Манифест

В дополнение к разрешениям, описанным ранее, некоторые типы наборов правил, в частности статические наборы правил, требуют объявления ключа манифеста "declarative_net_request" , который должен представлять собой словарь с единственным ключом под названием "rule_resources" . Этот ключ представляет собой массив, содержащий словари типа Ruleset , как показано ниже. (Обратите внимание, что имя «Набор правил» не отображается в JSON манифеста, поскольку это просто массив.) Статические наборы правил объясняются позже в этом документе.

{
  "name": "My extension",
  ...

  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    }, {
      "id": "ruleset_2",
      "enabled": false,
      "path": "rules_2.json"
    }]
  },
  "permissions": [
    "declarativeNetRequest",
    "declarativeNetRequestFeedback",
  ],
  "host_permissions": [
    "http://www.blogger.com/*",
    "http://*.google.com/*"
  ],
  ...
}

Правила и наборы правил

Чтобы использовать этот API, укажите один или несколько наборов правил. Набор правил содержит массив правил. Одно правило выполняет одно из следующих действий:

  • Заблокируйте сетевой запрос.
  • Обновите схему (с http на https).
  • Предотвратите блокировку запроса, отменив все соответствующие заблокированные правила.
  • Перенаправить сетевой запрос.
  • Измените заголовки запроса или ответа.

Существует три типа наборов правил, управление которыми осуществляется немного по-разному.

Динамический
Сохраняются во всех сеансах браузера и обновлениях расширений и управляются с помощью JavaScript, пока расширение используется.
Сессия
Очищается при закрытии браузера и установке новой версии расширения. Правила сеанса управляются с помощью JavaScript, пока используется расширение.
Статический
Упаковывается, устанавливается и обновляется при установке или обновлении расширения. Статические правила хранятся в файлах правил в формате JSON и перечислены в файле манифеста.

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

Динамические и сеансовые наборы правил управляются с помощью JavaScript, пока используется расширение.

  • Динамические правила сохраняются во всех сеансах браузера и обновлениях расширений.
  • Правила сеанса очищаются при закрытии браузера и установке новой версии расширения.

Каждый из этих типов наборов правил существует только по одному. Расширение может добавлять или удалять правила динамически, вызывая updateDynamicRules() и updateSessionRules() , при условии, что ограничения правил не превышены. Информацию об ограничениях правил см. в разделе Ограничения правил . Пример этого вы можете увидеть в разделе «Примеры кода» .

Статические наборы правил

В отличие от динамических правил и правил сеанса, статические правила упаковываются, устанавливаются и обновляются при установке или обновлении расширения. Они хранятся в файлах правил в формате JSON, которые указываются расширению с помощью ключей "declarative_net_request" и "rule_resources" , как описано выше , а также в одном или нескольких словарях Ruleset . Словарь Ruleset содержит путь к файлу правил, идентификатор набора правил, содержащегося в файле, а также сведения о том, включен или отключен этот набор правил. Последние два важны при программном включении или отключении набора правил.

{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}

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

Ускоренная проверка

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

Включение и отключение статических правил и наборов правил

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

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

По соображениям производительности также существуют ограничения на количество правил и наборов правил, которые можно включить одновременно. Вызовите getAvailableStaticRuleCount() чтобы проверить количество дополнительных правил, которые можно включить. Информацию об ограничениях правил см. в разделе Ограничения правил .

Чтобы включить или отключить статические правила , вызовите updateStaticRules() . Этот метод принимает объект UpdateStaticRulesOptions , который содержит массивы идентификаторов правил для включения или отключения. Идентификаторы определяются с использованием ключа "id" словаря Ruleset . Максимальный лимит отключенных статических правил — 5000.

Чтобы включить или отключить статические наборы правил , вызовите updateEnabledRulesets() . Этот метод принимает объект UpdateRulesetOptions , который содержит массивы идентификаторов наборов правил для включения или отключения. Идентификаторы определяются с использованием ключа "id" словаря Ruleset .

Правила сборки

Независимо от типа правило начинается с четырех полей, как показано ниже. Хотя ключи "id" и "priority" принимают числа, клавиши "action" и "condition" могут обеспечивать несколько условий блокировки и перенаправления. Следующее правило блокирует все запросы сценариев, исходящие от "foo.com" к любому URL-адресу с "abc" в качестве подстроки.

{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}

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

Оценка правил

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

До запроса

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

Для каждого расширения браузер определяет список правил соответствия. Правила с modifyHeaders сюда не включены, поскольку они будут обработаны позже. Кроме того, правила с условием responseHeaders будут рассмотрены позже (когда будут доступны заголовки ответов) и не включены.

Затем для каждого расширения Chrome выбирает не более одного кандидата на каждый запрос. Chrome находит подходящее правило, упорядочивая все соответствующие правила по приоритету. Правила с одинаковым приоритетом упорядочены по действию ( allow allowAllRequests > block > upgradeScheme > redirect ).

Если кандидатом является allow allowAllRequests , или кадр, в котором выполняется запрос, ранее соответствовал allowAllRequests с более высоким или равным приоритетом из этого расширения, запрос считается «разрешенным», и расширение не окажет никакого влияния на запрос.

Если более одного расширения хотят заблокировать или перенаправить этот запрос, выбирается одно действие. Chrome делает это, сортируя правила в block порядка > redirect upgradeScheme > allow allowAllRequests . Если два правила относятся к одному типу, Chrome выбирает правило из последнего установленного расширения.

Перед отправкой заголовков запросов

Прежде чем Chrome отправит заголовки запроса на сервер, заголовки обновляются на основе соответствующих правил modifyHeaders .

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

Эти правила применяются Chrome в таком порядке, что правила из недавно установленного расширения всегда оцениваются перед правилами из более старого расширения. Кроме того, правила с более высоким приоритетом из одного расширения всегда применяются раньше правил с более низким приоритетом из того же расширения. Примечательно, что даже среди расширений:

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

Как только будет получен ответ

После получения заголовков ответа Chrome оценивает правила с условием responseHeaders .

После сортировки этих правил по action и priority и исключения всех правил, ставших избыточными из-за соответствующего правила allow или allowAllRequests (это происходит идентично шагам, описанным в разделе «Перед запросом»), Chrome может заблокировать или перенаправить запрос от имени расширения.

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

В случае правила блокировки это обрабатывается тем, что страница, отправившая запрос, получает заблокированный ответ, а Chrome досрочно завершает запрос. В случае правила перенаправления Chrome отправляет новый запрос на перенаправленный URL-адрес. Обязательно подумайте, соответствуют ли эти действия ожиданиям конфиденциальности вашего расширения.

Если запрос не блокируется и не перенаправляется, Chrome применяет все правила modifyHeaders . Применение изменений к заголовкам ответов работает так же, как описано в разделе «Перед отправкой заголовков запроса». Применение изменений к заголовкам запроса ничего не дает, поскольку запрос уже был сделан.

Безопасные правила

Безопасные правила определяются как правила с block , allow , allowAllRequests upgradeScheme . На эти правила распространяется увеличенная квота динамических правил.

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

Загрузка и оценка правил в браузере приводит к увеличению производительности, поэтому при использовании API применяются некоторые ограничения. Ограничения зависят от типа используемого вами правила.

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

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

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

Правила сеанса

Расширение может иметь до 5000 правил сеанса. Это отображается как MAX_NUMBER_OF_SESSION_RULES .

До Chrome 120 существовало ограничение в 5000 комбинированных динамических и сеансовых правил.

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

Расширение может иметь не менее 5000 динамических правил. Это отображается как MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES .

Начиная с Chrome 121, для безопасных динамических правил доступен больший лимит в 30 000 правил, представленный как MAX_NUMBER_OF_DYNAMIC_RULES . Любые небезопасные правила, добавленные в пределах лимита в 5000, также будут учитываться в этом лимите.

До Chrome 120 существовало ограничение в 5000 объединенных динамических и сеансовых правил.

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

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

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

rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.

Взаимодействие с работниками сервиса

declarativeNetRequest применяется только к запросам, достигающим сетевого стека. Сюда входят ответы из HTTP-кэша, но могут не включаться ответы, проходящие через обработчик onfetch сервисного работника. declarativeNetRequest не повлияет на ответы, сгенерированные сервисным работником или полученные из CacheStorage , но повлияет на вызовы fetch() сделанные в сервисном работнике.

Доступные веб-ресурсы

Правило declarativeNetRequest не может перенаправлять запрос общедоступного ресурса на ресурс, который недоступен через Интернет. Это вызывает ошибку. Это верно, даже если указанный доступный веб-ресурс принадлежит расширению перенаправления. Чтобы объявить ресурсы для declarativeNetRequest, используйте массив "web_accessible_resources" манифеста.

Модификация заголовка

Операция добавления поддерживается только для следующих заголовков: accept , accept-encoding , accept-language , access-control-request-headers , cache-control , connection , content-language , cookie , forwarded , if-match , if-none-match , keep-alive , range , te , trailer , transfer-encoding , upgrade , user-agent , via , want-digest , x-forwarded-for .

Примеры

Примеры кода

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

В следующем примере показано, как вызвать updateDynamicRules() . Процедура updateSessionRules() такая же.

// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);

// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: oldRuleIds,
  addRules: newRules
});

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

В следующем примере показано, как включать и отключать наборы правил, учитывая количество доступных и максимальное количество включенных статических наборов правил. Это следует сделать, когда количество необходимых статических правил превышает разрешенное количество. Чтобы это работало, некоторые из ваших наборов правил должны быть установлены, а некоторые отключены (в файле манифеста "Enabled" установлено значение false ).

async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
  // Create the options structure for the call to updateEnabledRulesets()
  let options = { enableRulesetIds: enableRulesetIds }
  // Get the number of enabled static rules
  const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
  // Compare rule counts to determine if anything needs to be disabled so that
  // new rules can be enabled
  const proposedCount = enableRulesetIds.length;
  if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
    options.disableRulesetIds = disableCandidateIds
  }
  // Update the enabled static rules
  await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}

Примеры правил

Следующие примеры иллюстрируют, как Chrome определяет приоритет правил в расширении. При их просмотре вам может потребоваться открыть правила расстановки приоритетов в отдельном окне.

Ключ «приоритета»

Эти примеры требуют разрешения хоста для *://*.example.com/* .

Чтобы определить приоритет конкретного URL-адреса, посмотрите на ключ "priority" , определенный разработчиком, ключ "action" и ключ "urlFilter" . Эти примеры относятся к примерному файлу правил, показанному под ними.

Переход на https://google.com
Этот URL-адрес распространяется на два правила: правила с идентификаторами 1 и 4. Правило с идентификатором 1 применяется, поскольку действия "block" имеют более высокий приоритет, чем действия "redirect" . Остальные правила не применяются, поскольку они предназначены для более длинных URL-адресов.
Переход на https://google.com/1234.
Из-за более длинного URL-адреса правило с идентификатором 2 теперь соответствует правилам в дополнение к правилам с идентификаторами 1 и 4. Правило с идентификатором 2 применяется, поскольку "allow" имеет более высокий приоритет, чем "block" и "redirect" .
Переход на https://google.com/12345.
Все четыре правила соответствуют этому URL. Правило с идентификатором 3 применяется, поскольку его приоритет, определенный разработчиком, является наивысшим в группе.
[
  {
    "id": 1,
    "priority": 1,
    "action": { "type": "block" },
    "condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 2,
    "priority": 1,
    "action": { "type": "allow" },
    "condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 3,
    "priority": 2,
    "action": { "type": "block" },
    "condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 4,
    "priority": 1,
    "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
    "condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
]

Перенаправления

В приведенном ниже примере требуется разрешение хоста для *://*.example.com/* .

В следующем примере показано, как перенаправить запрос с сайта example.com на страницу внутри самого расширения. Путь расширения /a.jpg разрешается в chrome-extension://EXTENSION_ID/a.jpg , где EXTENSION_ID — это идентификатор вашего расширения. Чтобы это работало, манифест должен объявить /a.jpg как ресурс, доступный через Интернет .

{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "https://www.example.com",
    "resourceTypes": ["main_frame"]
  }
}

Ниже используется ключ "transform" для перенаправления на поддомен example.com. Он использует привязку доменного имени («||») для перехвата запросов по любой схеме от example.com. Ключ "scheme" в "transform" указывает, что при перенаправлении на поддомен всегда будет использоваться «https».

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com",
    "resourceTypes": ["main_frame"]
  }
}

В следующем примере регулярные выражения используются для перенаправления с https://www.abc.xyz.com/path на https://abc.xyz.com/path . Обратите внимание, что в ключе "regexFilter" точки экранируются и что группа захвата выбирает либо «abc», либо «def». Ключ "regexSubstitution" указывает первое возвращаемое совпадение регулярного выражения с помощью «\1». В этом случае «abc» извлекается из перенаправленного URL-адреса и помещается в подстановку.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}

Заголовки

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

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}

Типы

DomainType

Здесь указывается, является ли запрос первой или третьей стороной по отношению к кадру, в котором он был создан. Запрос считается первичным, если он имеет тот же домен (eTLD+1), что и кадр, в котором возник запрос.

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

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

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

ExtensionActionOptions

Хром 88+

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

  • displayActionCountAsBadgeText

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

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

  • tabUpdate

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

    Хром 89+

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

GetDisabledRuleIdsOptions

Хром 111+

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

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

    нить

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

GetRulesFilter

Хром 111+

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

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

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

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

HeaderInfo

Хром 128+

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

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

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

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

  • заголовок

    нить

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

  • ценности

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

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

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

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

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

HeaderOperation

Хром 86+

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

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

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

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

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

IsRegexSupportedResult

Хром 87+

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

  • isSupported

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

  • причина

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

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

MatchedRule

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

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

    число

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

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

    нить

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

MatchedRuleInfo

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

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

    число

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

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

    число

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

MatchedRuleInfoDebug

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

MatchedRulesFilter

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

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

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

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

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

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

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

ModifyHeaderInfo

Хром 86+

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

  • заголовок

    нить

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

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

  • ценить

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

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

QueryKeyValue

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

  • ключ

    нить

  • replaceOnly

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

    Хром 94+

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

  • ценить

    нить

QueryTransform

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

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

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

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

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

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

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

Redirect

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

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

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

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

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

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

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

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

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

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

  • URL

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

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

RegexOptions

Хром 87+

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

  • isCaseSensitive

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

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

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

    нить

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

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

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

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

RequestDetails

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

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

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

    Хром 106+

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

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

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

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

    число

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

  • Тип рамки

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

    Хром 106+

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

  • инициатор

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

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

  • метод

    нить

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

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

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

    Хром 106+

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

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

    число

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

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

    нить

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

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

    число

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

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

  • URL

    нить

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

RequestMethod

Хром 91+

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

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

"соединять"

"удалить"

"получать"

"голова"

"параметры"

"пластырь"

"почта"

"помещать"

"другой"

ResourceType

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

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

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

"под_кадр"

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

"сценарий"

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

"шрифт"

"объект"

"xmlhttprequest"

"пинг"

"csp_report"

"СМИ"

"веб-сокет"

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

"паутина"

"другой"

Rule

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

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

  • состояние

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

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

    число

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

  • приоритет

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

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

RuleAction

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

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

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

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

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

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

    Хром 86+

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

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

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

    Хром 86+

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

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

RuleActionType

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

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

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

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

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

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

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

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

RuleCondition

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

  • тип домена

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

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

  • домены

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

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

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

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

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

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

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

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

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

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

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

    Хром 101+

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

    Примечания:

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

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

    Хром 101+

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

    Примечания:

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

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

    Хром 91+

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

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

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

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

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

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

    Хром 128+

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

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

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

    Хром 92+

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

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

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

    Хром 101+

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

    Примечания:

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

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

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

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

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

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

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

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

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

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

    Хром 101+

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

    Примечания:

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

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

    Хром 91+

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

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

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

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

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

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

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

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

    Хром 128+

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

  • tabIds

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

    Хром 92+

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

  • urlFilter

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

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

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

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

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

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

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

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

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

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

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

Ruleset

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

  • включено

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

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

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

    нить

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

  • путь

    нить

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

RulesMatchedDetails

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

  • Правила MatchedInfo

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

TabActionCountUpdate

Хром 89+

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

  • приращение

    число

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

  • табид

    число

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

TestMatchOutcomeResult

Хром 103+

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

  • Matchedrules

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

TestMatchRequestDetails

Хром 103+

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

  • инициатор

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

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

  • метод

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

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

  • Ответчики

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

    В ожидании

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

  • табид

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

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

  • тип

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

  • URL

    нить

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

UnsupportedRegexReason

Хром 87+

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

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

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

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

UpdateRuleOptions

Хром 87+

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

  • addrules

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

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

  • Removeruleids

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

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

UpdateRulesetOptions

Хром 87+

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

  • Divablorulesetids

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

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

  • eNablerulesTids

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

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

UpdateStaticRulesOptions

Хром 111+

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

  • Distableruleids

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

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

  • Enableruleids

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

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

  • Правила

    нить

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

URLTransform

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

  • фрагмент

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

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

  • хозяин

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

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

  • пароль

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

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

  • путь

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

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

  • порт

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

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

  • запрос

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

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

  • QueryTransform

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

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

  • схема

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

    Новая схема для запроса. Разрешенными значениями являются «http», «https», «ftp» и «chrome-extension».

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

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

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

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

DYNAMIC_RULESET_ID

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

Ценить

"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

Временный интервал, в котором могут быть сделаны вызовы MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules , указаны в минуты. Дополнительные вызовы сразу не будут сбой и установят runtime.lastError . LasterRor. ПРИМЕЧАНИЕ. Вызовы getMatchedRules , связанные с жестом пользователя, освобождены от квоты.

Ценить

10

GUARANTEED_MINIMUM_STATIC_RULES

Хром 89+

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

Ценить

30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

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

Ценить

20

MAX_NUMBER_OF_DYNAMIC_RULES

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

Ценить

30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Хром 94+

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

Ценить

50

MAX_NUMBER_OF_REGEX_RULES

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

Ценить

1000

MAX_NUMBER_OF_SESSION_RULES

Хром 120+

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

Ценить

5000

MAX_NUMBER_OF_STATIC_RULESETS

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

Ценить

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Хром 120+

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

Ценить

5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Хром 120+

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

Ценить

5000

SESSION_RULESET_ID

Хром 90+

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

Ценить

"_Session"

Методы

getAvailableStaticRuleCount()

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

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

Параметры

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

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

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

    (count: number) => void

    • считать

      число

Возврат

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

    Хром 91+

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

getDisabledRuleIds()

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

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

Параметры

  • параметры

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

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

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

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

    (disabledRuleIds: number[]) => void

    • инвалиды

      число[]

Возврат

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

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

getDynamicRules()

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

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

Параметры

  • фильтр

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

    Хром 111+

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

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

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

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

    (rules: Rule[]) => void

Возврат

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

    Хром 91+

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

getEnabledRulesets()

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

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

Параметры

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

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

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

    (rulesetIds: string[]) => void

    • Правила

      нить[]

Возврат

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

    Хром 91+

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

getMatchedRules()

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

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

Параметры

  • фильтр

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

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

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

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

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

    (details: RulesMatchedDetails) => void

Возврат

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

    Хром 91+

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

getSessionRules()

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

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

Параметры

  • фильтр

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

    Хром 111+

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

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

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

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

    (rules: Rule[]) => void

Возврат

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

    Хром 91+

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

isRegexSupported()

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

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

Параметры

  • regexoptions

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

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

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

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

    (result: IsRegexSupportedResult) => void

Возврат

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

    Хром 91+

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

setExtensionActionOptions()

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

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

Параметры

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

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

    Хром 89+

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

    () => void

Возврат

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

    Хром 91+

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

testMatchOutcome()

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

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

Параметры

Возврат

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

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

updateDynamicRules()

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

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

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

Параметры

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

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

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

    () => void

Возврат

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

    Хром 91+

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

updateEnabledRulesets()

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

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

Параметры

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

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

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

    () => void

Возврат

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

    Хром 91+

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

updateSessionRules()

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

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

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

Параметры

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

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

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

    () => void

Возврат

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

    Хром 91+

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

updateStaticRules()

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

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

Параметры

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

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

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

    () => void

Возврат

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

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

События

onRuleMatchedDebug

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

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

Параметры