From 63364ea062fcec95909d0836a4016994353df7e3 Mon Sep 17 00:00:00 2001 From: Daniel Jacobs Date: Fri, 30 Aug 2024 09:57:58 -0400 Subject: [PATCH] Add new declarativeNetRequest RuleConditions --- .../declarativenetrequest/headerinfo/index.md | 66 +++++++++++++++++++ .../rulecondition/index.md | 6 +- 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/headerinfo/index.md diff --git a/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/headerinfo/index.md b/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/headerinfo/index.md new file mode 100644 index 000000000000000..a0dce380b399ac5 --- /dev/null +++ b/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/headerinfo/index.md @@ -0,0 +1,66 @@ +--- +title: declarativeNetRequest.HeaderInfo +slug: Mozilla/Add-ons/WebExtensions/API/declarativeNetRequest/HeaderInfo +page-type: webextension-api-type +browser-compat: + - webextensions.api.declarativeNetRequest.RuleCondition.excludedResponseHeaders + - webextensions.api.declarativeNetRequest.RuleCondition.responseHeaders +--- + +{{AddonSidebar}} + +The response header to match for the request, declared in the {{WebExtAPIRef("declarativeNetRequest.RuleCondition", "rule.condition")}}`.excludedResponseHeaders` array or {{WebExtAPIRef("declarativeNetRequest.RuleCondition", "rule.condition")}}`.responseHeaders` array. + +When used in the condition responseHeaders, the rule matches if the request matches this response header condition. When used in the condition excludedResponseHeaders, the rule does not match if the request matches this response header condition. + +Each object describes one header to match or exclude. To check multiple headers, multiple objects can be specified in these arrays, or across multiple rules. + +## Type + +Values of this type are objects. They contain these properties: + +- `header` + - : A `string`. The name of the header. This condition matches on the name only if both values and excludedValues are not specified. +- `values` {{optional_inline}} + - : An array of `string`. If specified, this condition matches if the header's value matches at least one pattern in this list. This supports case-insensitive header value matching plus the following constructs: + - `'*'` : Matches any number of characters. + - `'?'` : Matches zero or one character(s). + - `'*'` and `'?'` can be escaped with a backslash, e.g. `'\*'` and `'\?'`. +- `excludedValues` {{optional_inline}} + - : An array of `string`. If specified, this condition is not matched if the header exists but its value contains at least one element in this list. This uses the same match pattern syntax as `values`. + +{{WebExtExamples("h2")}} + +## Browser compatibility + +{{Compat}} + + diff --git a/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/rulecondition/index.md b/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/rulecondition/index.md index 44b738992f06a82..ed46656c3fcdd85 100644 --- a/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/rulecondition/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/api/declarativenetrequest/rulecondition/index.md @@ -42,8 +42,12 @@ Values of this type are objects. They contain these properties: - : An array of {{WebExtAPIRef("declarativeNetRequest.ResourceType")}}. List of resource types that the rule matches with. An empty list is not allowed. This must be specified for `"allowAllRequests"` rules and may only include the `"sub_frame"` and `"main_frame"` resource types. - `excludedResourceTypes` {{optional_inline}} - : An array of {{WebExtAPIRef("declarativeNetRequest.ResourceType")}}. List of resource types that the rule does not match on. Only one of [`resourceTypes`](#resourcetypes) and `excludedResourceTypes` should be specified. If neither of them is specified, all resource types except `"main_frame"` are blocked. +- `responseHeaders` {{optional_inline}} + - : An array of {{WebExtAPIRef("declarativeNetRequest.HeaderInfo")}}. The rule matches if the request matches any response header condition in this list (if specified). +- `excludedResponseHeaders` {{optional_inline}} + - : An array of {{WebExtAPIRef("declarativeNetRequest.HeaderInfo")}}. The rule does not match if the request matches any response header condition in this list (if specified). If both `excludedResponseHeaders` and `responseHeaders` are specified, then the `excludedResponseHeaders` property takes precedence. - `tabIds` {{optional_inline}} - - : An array of `number`. List of {{WebExtAPIRef("tabs.Tab")}}.`id` that the rule should match. An ID of {{WebExtAPIRef("tabs.TAB_ID_NONE")}} matches requests that don't originate from a tab. An empty list is not allowed. Only supported for session-scoped rules. + - : An array of `number`. List of {{WebExtAPIRef("tabs.tab")}}.`id` that the rule should match. An ID of {{WebExtAPIRef("tabs.TAB_ID_NONE")}} matches requests that don't originate from a tab. An empty list is not allowed. Only supported for session-scoped rules. - `excludedTabIds` {{optional_inline}} - : An array of `number`. List of {{WebExtAPIRef("tabs.Tab")}}.`id` that the rule should not match. An ID of {{WebExtAPIRef("tabs.TAB_ID_NONE")}} excludes requests that do not originate from a tab. Only supported for session-scoped rules. - `urlFilter` {{optional_inline}}