webext-schema 5.0.7 → 5.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -272,7 +272,7 @@ export const getExtensionInfo = async id => {
272
272
  /**
273
273
  * get external extensions
274
274
  *
275
- * @returns {?Array|boolean} -array of management.extensionInfo
275
+ * @returns {?Array|boolean} - array of management.extensionInfo
276
276
  */
277
277
  export const getExternalExtensions = async () => {
278
278
  const isGranted = await isPermissionGranted({
package/package.json CHANGED
@@ -32,21 +32,21 @@
32
32
  "commander": "^9.4.1",
33
33
  "decamelize": "^6.0.0",
34
34
  "json5": "^2.2.1",
35
- "node-fetch": "^3.2.10",
36
- "sinon": "^14.0.2"
35
+ "node-fetch": "^3.3.0",
36
+ "sinon": "^15.0.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "c8": "^7.12.0",
40
40
  "chai": "^4.3.7",
41
- "eslint": "^8.27.0",
41
+ "eslint": "^8.29.0",
42
42
  "eslint-config-standard": "^17.0.0",
43
43
  "eslint-plugin-import": "^2.26.0",
44
- "eslint-plugin-jsdoc": "^39.6.2",
44
+ "eslint-plugin-jsdoc": "^39.6.4",
45
45
  "eslint-plugin-node": "^11.1.0",
46
46
  "eslint-plugin-promise": "^6.1.1",
47
47
  "mocha": "^10.1.0",
48
48
  "nock": "^13.2.9",
49
49
  "npm-run-all": "^4.1.5"
50
50
  },
51
- "version": "5.0.7"
51
+ "version": "5.0.9"
52
52
  }
@@ -8060,10 +8060,24 @@
8060
8060
  {
8061
8061
  "name": "openPopup",
8062
8062
  "type": "function",
8063
- "requireUserInput": true,
8064
- "description": "Opens the extension popup window in the active window.",
8063
+ "description": "Opens the extension popup window in the specified window.",
8065
8064
  "async": true,
8066
- "parameters": []
8065
+ "parameters": [
8066
+ {
8067
+ "name": "options",
8068
+ "optional": true,
8069
+ "type": "object",
8070
+ "description": "An object with information about the popup to open.",
8071
+ "properties": {
8072
+ "windowId": {
8073
+ "type": "integer",
8074
+ "minimum": -2,
8075
+ "optional": true,
8076
+ "description": "Defaults to the $(topic:current-window)[current window]."
8077
+ }
8078
+ }
8079
+ }
8080
+ ]
8067
8081
  }
8068
8082
  ],
8069
8083
  "events": [
@@ -9697,6 +9711,11 @@
9697
9711
  "rulesetId": {
9698
9712
  "type": "string",
9699
9713
  "description": "ID of the Ruleset this rule belongs to."
9714
+ },
9715
+ "extensionId": {
9716
+ "type": "string",
9717
+ "description": "ID of the extension, if this rule belongs to a different extension.",
9718
+ "optional": true
9700
9719
  }
9701
9720
  }
9702
9721
  },
@@ -9742,7 +9761,7 @@
9742
9761
  "minItems": 1,
9743
9762
  "items": {
9744
9763
  "type": "string",
9745
- "description": "TODO: describe domain format."
9764
+ "format": "canonicalDomain"
9746
9765
  }
9747
9766
  },
9748
9767
  "excludedInitiatorDomains": {
@@ -9751,7 +9770,7 @@
9751
9770
  "description": "The rule will not match network requests originating from the list of 'initiatorDomains'. If the list is empty or omitted, no domains are excluded. This takes precedence over 'initiatorDomains'.",
9752
9771
  "items": {
9753
9772
  "type": "string",
9754
- "description": "TODO: describe domain format."
9773
+ "format": "canonicalDomain"
9755
9774
  }
9756
9775
  },
9757
9776
  "requestDomains": {
@@ -9761,7 +9780,7 @@
9761
9780
  "minItems": 1,
9762
9781
  "items": {
9763
9782
  "type": "string",
9764
- "description": "TODO: describe domain format."
9783
+ "format": "canonicalDomain"
9765
9784
  }
9766
9785
  },
9767
9786
  "excludedRequestDomains": {
@@ -9770,7 +9789,7 @@
9770
9789
  "description": "The rule will not match network requests when the domains matches one from the list of 'excludedRequestDomains'. If the list is empty or omitted, no domains are excluded. This takes precedence over 'requestDomains'.",
9771
9790
  "items": {
9772
9791
  "type": "string",
9773
- "description": "TODO: describe domain format."
9792
+ "format": "canonicalDomain"
9774
9793
  }
9775
9794
  },
9776
9795
  "resourceTypes": {
@@ -9786,7 +9805,6 @@
9786
9805
  "type": "array",
9787
9806
  "optional": true,
9788
9807
  "description": "List of resource types which the rule won't match. Cannot be specified if 'resourceTypes' is specified. If neither of them is specified, all resource types except 'main_frame' are matched.",
9789
- "minItems": 1,
9790
9808
  "items": {
9791
9809
  "$ref": "ResourceType"
9792
9810
  }
@@ -9804,7 +9822,6 @@
9804
9822
  "type": "array",
9805
9823
  "optional": true,
9806
9824
  "description": "List of request methods which the rule won't match. Cannot be specified if 'requestMethods' is specified. If neither of them is specified, all request methods are matched.",
9807
- "minItems": 1,
9808
9825
  "items": {
9809
9826
  "type": "string"
9810
9827
  }
@@ -9869,6 +9886,7 @@
9869
9886
  },
9870
9887
  "url": {
9871
9888
  "type": "string",
9889
+ "format": "url",
9872
9890
  "optional": true,
9873
9891
  "description": "The redirect url. Redirects to JavaScript urls are not allowed."
9874
9892
  },
@@ -9880,51 +9898,59 @@
9880
9898
  }
9881
9899
  },
9882
9900
  "requestHeaders": {
9883
- "type": "object",
9901
+ "type": "array",
9884
9902
  "optional": true,
9885
9903
  "description": "The request headers to modify for the request. Only valid when type is 'modifyHeaders'.",
9886
- "properties": {
9887
- "header": {
9888
- "type": "string",
9889
- "description": "The name of the request header to be modified."
9890
- },
9891
- "operation": {
9892
- "type": "string",
9893
- "description": "The operation to be performed on a header. The 'append' operation is not supported for request headers.",
9894
- "enum": [
9895
- "set",
9896
- "remove"
9897
- ]
9898
- },
9899
- "value": {
9900
- "type": "string",
9901
- "optional": true,
9902
- "description": "The new value for the header. Must be specified for the 'set' operation."
9904
+ "minItems": 1,
9905
+ "items": {
9906
+ "type": "object",
9907
+ "properties": {
9908
+ "header": {
9909
+ "type": "string",
9910
+ "description": "The name of the request header to be modified."
9911
+ },
9912
+ "operation": {
9913
+ "type": "string",
9914
+ "description": "The operation to be performed on a header. The 'append' operation is not supported for request headers.",
9915
+ "enum": [
9916
+ "set",
9917
+ "remove"
9918
+ ]
9919
+ },
9920
+ "value": {
9921
+ "type": "string",
9922
+ "optional": true,
9923
+ "description": "The new value for the header. Must be specified for the 'set' operation."
9924
+ }
9903
9925
  }
9904
9926
  }
9905
9927
  },
9906
9928
  "responseHeaders": {
9907
- "type": "object",
9929
+ "type": "array",
9908
9930
  "optional": true,
9909
9931
  "description": "The response headers to modify for the request. Only valid when type is 'modifyHeaders'.",
9910
- "properties": {
9911
- "header": {
9912
- "type": "string",
9913
- "description": "The name of the response header to be modified."
9914
- },
9915
- "operation": {
9916
- "type": "string",
9917
- "description": "The operation to be performed on a header.",
9918
- "enum": [
9919
- "append",
9920
- "set",
9921
- "remove"
9922
- ]
9923
- },
9924
- "value": {
9925
- "type": "string",
9926
- "optional": true,
9927
- "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
9932
+ "minItems": 1,
9933
+ "items": {
9934
+ "type": "object",
9935
+ "properties": {
9936
+ "header": {
9937
+ "type": "string",
9938
+ "description": "The name of the response header to be modified."
9939
+ },
9940
+ "operation": {
9941
+ "type": "string",
9942
+ "description": "The operation to be performed on a header.",
9943
+ "enum": [
9944
+ "append",
9945
+ "set",
9946
+ "remove"
9947
+ ]
9948
+ },
9949
+ "value": {
9950
+ "type": "string",
9951
+ "optional": true,
9952
+ "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
9953
+ }
9928
9954
  }
9929
9955
  }
9930
9956
  }
@@ -10031,6 +10057,18 @@
10031
10057
  }
10032
10058
  }
10033
10059
  },
10060
+ {
10061
+ "name": "options",
10062
+ "type": "object",
10063
+ "optional": true,
10064
+ "properties": {
10065
+ "includeOtherExtensions": {
10066
+ "type": "boolean",
10067
+ "description": "Whether to account for rules from other installed extensions during rule evaluation.",
10068
+ "optional": true
10069
+ }
10070
+ }
10071
+ },
10034
10072
  {
10035
10073
  "name": "callback",
10036
10074
  "type": "function",
@@ -13047,7 +13085,8 @@
13047
13085
  "applications": {
13048
13086
  "$ref": "BrowserSpecificSettings",
13049
13087
  "description": "The applications property is deprecated, please use 'browser_specific_settings'",
13050
- "optional": true
13088
+ "optional": true,
13089
+ "max_manifest_version": 2
13051
13090
  },
13052
13091
  "browser_specific_settings": {
13053
13092
  "$ref": "BrowserSpecificSettings",
@@ -13076,7 +13115,8 @@
13076
13115
  },
13077
13116
  "version": {
13078
13117
  "type": "string",
13079
- "optional": false
13118
+ "optional": false,
13119
+ "format": "versionString"
13080
13120
  },
13081
13121
  "homepage_url": {
13082
13122
  "type": "string",
@@ -3267,6 +3267,11 @@
3267
3267
  "minLength": 1,
3268
3268
  "description": "The text that is displayed in the URL dropdown. Can contain XML-style markup for styling. The supported tags are 'url' (for a literal URL), 'match' (for highlighting text that matched what the user's query), and 'dim' (for dim helper text). The styles can be nested, eg. <dim><match>dimmed match</match></dim>. You must escape the five predefined entities to display them as text: stackoverflow.com/a/1091953/89484 "
3269
3269
  },
3270
+ "deletable": {
3271
+ "type": "boolean",
3272
+ "optional": true,
3273
+ "description": "Whether the suggest result can be deleted by the user."
3274
+ },
3270
3275
  "descriptionStyles": {
3271
3276
  "optional": true,
3272
3277
  "unsupported": true,
@@ -3431,6 +3436,17 @@
3431
3436
  "type": "function",
3432
3437
  "description": "User has ended the keyword input session without accepting the input.",
3433
3438
  "parameters": []
3439
+ },
3440
+ {
3441
+ "name": "onDeleteSuggestion",
3442
+ "type": "function",
3443
+ "description": "User has deleted a suggested result.",
3444
+ "parameters": [
3445
+ {
3446
+ "type": "string",
3447
+ "name": "text"
3448
+ }
3449
+ ]
3434
3450
  }
3435
3451
  ]
3436
3452
  }
@@ -9662,6 +9678,46 @@
9662
9678
  "min_manifest_version": 3
9663
9679
  }
9664
9680
  ]
9681
+ },
9682
+ {
9683
+ "$extend": "WebExtensionManifest",
9684
+ "properties": {
9685
+ "declarative_net_request": {
9686
+ "type": "object",
9687
+ "min_manifest_version": 3,
9688
+ "optional": true,
9689
+ "additionalProperties": {
9690
+ "$ref": "UnrecognizedProperty"
9691
+ },
9692
+ "properties": {
9693
+ "rule_resources": {
9694
+ "type": "array",
9695
+ "minItems": 1,
9696
+ "items": {
9697
+ "type": "object",
9698
+ "additionalProperties": {
9699
+ "$ref": "UnrecognizedProperty"
9700
+ },
9701
+ "properties": {
9702
+ "id": {
9703
+ "type": "string",
9704
+ "pattern": "^[^_]",
9705
+ "description": "A non-empty string uniquely identifying the ruleset. IDs beginning with '_' are reserved for internal use."
9706
+ },
9707
+ "enabled": {
9708
+ "type": "boolean",
9709
+ "description": "Whether the ruleset is enabled by default."
9710
+ },
9711
+ "path": {
9712
+ "$ref": "manifest.ExtensionURL",
9713
+ "description": "The path of the JSON ruleset relative to the extension directory."
9714
+ }
9715
+ }
9716
+ }
9717
+ }
9718
+ }
9719
+ }
9720
+ }
9665
9721
  }
9666
9722
  ]
9667
9723
  },
@@ -9719,6 +9775,95 @@
9719
9775
  }
9720
9776
  }
9721
9777
  },
9778
+ {
9779
+ "id": "URLTransform",
9780
+ "type": "object",
9781
+ "description": "Describes the type of the Rule.action.redirect.transform property.",
9782
+ "properties": {
9783
+ "scheme": {
9784
+ "type": "string",
9785
+ "optional": true,
9786
+ "description": "The new scheme for the request.",
9787
+ "enum": [
9788
+ "http",
9789
+ "https",
9790
+ "moz-extension"
9791
+ ]
9792
+ },
9793
+ "username": {
9794
+ "type": "string",
9795
+ "optional": true,
9796
+ "description": "The new username for the request."
9797
+ },
9798
+ "password": {
9799
+ "type": "string",
9800
+ "optional": true,
9801
+ "description": "The new password for the request."
9802
+ },
9803
+ "host": {
9804
+ "type": "string",
9805
+ "optional": true,
9806
+ "description": "The new host name for the request."
9807
+ },
9808
+ "port": {
9809
+ "type": "string",
9810
+ "optional": true,
9811
+ "description": "The new port for the request. If empty, the existing port is cleared."
9812
+ },
9813
+ "path": {
9814
+ "type": "string",
9815
+ "optional": true,
9816
+ "description": "The new path for the request. If empty, the existing path is cleared."
9817
+ },
9818
+ "query": {
9819
+ "type": "string",
9820
+ "optional": true,
9821
+ "description": "The new query for the request. Should be either empty, in which case the existing query is cleared; or should begin with '?'. Cannot be specified if 'queryTransform' is specified."
9822
+ },
9823
+ "queryTransform": {
9824
+ "type": "object",
9825
+ "optional": true,
9826
+ "description": "Add, remove or replace query key-value pairs. Cannot be specified if 'query' is specified.",
9827
+ "properties": {
9828
+ "removeParams": {
9829
+ "type": "array",
9830
+ "optional": true,
9831
+ "description": "The list of query keys to be removed.",
9832
+ "items": {
9833
+ "type": "string"
9834
+ }
9835
+ },
9836
+ "addOrReplaceParams": {
9837
+ "type": "array",
9838
+ "optional": true,
9839
+ "description": "The list of query key-value pairs to be added or replaced.",
9840
+ "items": {
9841
+ "type": "object",
9842
+ "properties": {
9843
+ "key": {
9844
+ "type": "string"
9845
+ },
9846
+ "value": {
9847
+ "type": "string"
9848
+ },
9849
+ "replaceOnly": {
9850
+ "type": "boolean",
9851
+ "optional": true,
9852
+ "description": "If true, the query key is replaced only if it's already present. Otherwise, the key is also added if it's missing.",
9853
+ "default": false
9854
+ }
9855
+ }
9856
+ }
9857
+ }
9858
+ }
9859
+ },
9860
+ "fragment": {
9861
+ "type": "string",
9862
+ "optional": true,
9863
+ "description": "The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'."
9864
+ }
9865
+ }
9866
+ },
9722
9867
  {
9723
9868
  "id": "Rule",
9724
9869
  "type": "object",
@@ -9880,9 +10025,9 @@
9880
10025
  "description": "Path relative to the extension directory. Should start with '/'."
9881
10026
  },
9882
10027
  "transform": {
9883
- "type": "object",
10028
+ "$ref": "URLTransform",
9884
10029
  "optional": true,
9885
- "description": "TODO: URLTransform - Url transformations to perform."
10030
+ "description": "Url transformations to perform."
9886
10031
  },
9887
10032
  "url": {
9888
10033
  "type": "string",
@@ -9911,8 +10056,9 @@
9911
10056
  },
9912
10057
  "operation": {
9913
10058
  "type": "string",
9914
- "description": "The operation to be performed on a header. The 'append' operation is not supported for request headers.",
10059
+ "description": "The operation to be performed on a header.",
9915
10060
  "enum": [
10061
+ "append",
9916
10062
  "set",
9917
10063
  "remove"
9918
10064
  ]
@@ -9920,7 +10066,7 @@
9920
10066
  "value": {
9921
10067
  "type": "string",
9922
10068
  "optional": true,
9923
- "description": "The new value for the header. Must be specified for the 'set' operation."
10069
+ "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
9924
10070
  }
9925
10071
  }
9926
10072
  }
@@ -9996,6 +10142,80 @@
9996
10142
  }
9997
10143
  ]
9998
10144
  },
10145
+ {
10146
+ "name": "getEnabledRulesets",
10147
+ "type": "function",
10148
+ "description": "Returns the ids for the current set of enabled static rulesets.",
10149
+ "async": "callback",
10150
+ "parameters": [
10151
+ {
10152
+ "name": "callback",
10153
+ "type": "function",
10154
+ "parameters": [
10155
+ {
10156
+ "type": "array",
10157
+ "name": "rulesetIds",
10158
+ "items": {
10159
+ "type": "string"
10160
+ }
10161
+ }
10162
+ ]
10163
+ }
10164
+ ]
10165
+ },
10166
+ {
10167
+ "name": "updateEnabledRulesets",
10168
+ "type": "function",
10169
+ "description": "Returns the ids for the current set of enabled static rulesets.",
10170
+ "async": "callback",
10171
+ "parameters": [
10172
+ {
10173
+ "name": "updateRulesetOptions",
10174
+ "type": "object",
10175
+ "properties": {
10176
+ "disableRulesetIds": {
10177
+ "type": "array",
10178
+ "items": {
10179
+ "type": "string"
10180
+ },
10181
+ "optional": true,
10182
+ "default": []
10183
+ },
10184
+ "enableRulesetIds": {
10185
+ "type": "array",
10186
+ "items": {
10187
+ "type": "string"
10188
+ },
10189
+ "optional": true,
10190
+ "default": []
10191
+ }
10192
+ }
10193
+ },
10194
+ {
10195
+ "name": "callback",
10196
+ "type": "function",
10197
+ "parameters": []
10198
+ }
10199
+ ]
10200
+ },
10201
+ {
10202
+ "name": "getAvailableStaticRuleCount",
10203
+ "type": "function",
10204
+ "description": "Returns the remaining number of static rules an extension can enable",
10205
+ "async": "callback",
10206
+ "parameters": [
10207
+ {
10208
+ "name": "callback",
10209
+ "type": "function",
10210
+ "parameters": [
10211
+ {
10212
+ "name": "count",
10213
+ "type": "integer"
10214
+ }
10215
+ ]
10216
+ }
10217
+ ]
10218
+ },
9999
10219
  {
10000
10220
  "name": "getSessionRules",
10001
10221
  "type": "function",
@@ -19730,6 +19950,11 @@
19730
19950
  "description": "The key exchange algorithm used in this request if state is \"secure\".",
19731
19951
  "optional": true
19732
19952
  },
19953
+ "secretKeyLength": {
19954
+ "type": "number",
19955
+ "description": "The length (in bits) of the secret key.",
19956
+ "optional": true
19957
+ },
19733
19958
  "signatureSchemeName": {
19734
19959
  "type": "string",
19735
19960
  "description": "The signature scheme used in this request if state is \"secure\".",
@@ -3693,10 +3693,6 @@
3693
3693
  {
3694
3694
  "name": "node",
3695
3695
  "$ref": "ContactNode"
3696
- },
3697
- {
3698
- "name": "id",
3699
- "type": "string"
3700
3696
  }
3701
3697
  ]
3702
3698
  },
@@ -8060,10 +8060,24 @@
8060
8060
  {
8061
8061
  "name": "openPopup",
8062
8062
  "type": "function",
8063
- "requireUserInput": true,
8064
- "description": "Opens the extension popup window in the active window.",
8063
+ "description": "Opens the extension popup window in the specified window.",
8065
8064
  "async": true,
8066
- "parameters": []
8065
+ "parameters": [
8066
+ {
8067
+ "name": "options",
8068
+ "optional": true,
8069
+ "type": "object",
8070
+ "description": "An object with information about the popup to open.",
8071
+ "properties": {
8072
+ "windowId": {
8073
+ "type": "integer",
8074
+ "minimum": -2,
8075
+ "optional": true,
8076
+ "description": "Defaults to the $(topic:current-window)[current window]."
8077
+ }
8078
+ }
8079
+ }
8080
+ ]
8067
8081
  }
8068
8082
  ],
8069
8083
  "events": [
@@ -9697,6 +9711,11 @@
9697
9711
  "rulesetId": {
9698
9712
  "type": "string",
9699
9713
  "description": "ID of the Ruleset this rule belongs to."
9714
+ },
9715
+ "extensionId": {
9716
+ "type": "string",
9717
+ "description": "ID of the extension, if this rule belongs to a different extension.",
9718
+ "optional": true
9700
9719
  }
9701
9720
  }
9702
9721
  },
@@ -9742,7 +9761,7 @@
9742
9761
  "minItems": 1,
9743
9762
  "items": {
9744
9763
  "type": "string",
9745
- "description": "TODO: describe domain format."
9764
+ "format": "canonicalDomain"
9746
9765
  }
9747
9766
  },
9748
9767
  "excludedInitiatorDomains": {
@@ -9751,7 +9770,7 @@
9751
9770
  "description": "The rule will not match network requests originating from the list of 'initiatorDomains'. If the list is empty or omitted, no domains are excluded. This takes precedence over 'initiatorDomains'.",
9752
9771
  "items": {
9753
9772
  "type": "string",
9754
- "description": "TODO: describe domain format."
9773
+ "format": "canonicalDomain"
9755
9774
  }
9756
9775
  },
9757
9776
  "requestDomains": {
@@ -9761,7 +9780,7 @@
9761
9780
  "minItems": 1,
9762
9781
  "items": {
9763
9782
  "type": "string",
9764
- "description": "TODO: describe domain format."
9783
+ "format": "canonicalDomain"
9765
9784
  }
9766
9785
  },
9767
9786
  "excludedRequestDomains": {
@@ -9770,7 +9789,7 @@
9770
9789
  "description": "The rule will not match network requests when the domains matches one from the list of 'excludedRequestDomains'. If the list is empty or omitted, no domains are excluded. This takes precedence over 'requestDomains'.",
9771
9790
  "items": {
9772
9791
  "type": "string",
9773
- "description": "TODO: describe domain format."
9792
+ "format": "canonicalDomain"
9774
9793
  }
9775
9794
  },
9776
9795
  "resourceTypes": {
@@ -9786,7 +9805,6 @@
9786
9805
  "type": "array",
9787
9806
  "optional": true,
9788
9807
  "description": "List of resource types which the rule won't match. Cannot be specified if 'resourceTypes' is specified. If neither of them is specified, all resource types except 'main_frame' are matched.",
9789
- "minItems": 1,
9790
9808
  "items": {
9791
9809
  "$ref": "ResourceType"
9792
9810
  }
@@ -9804,7 +9822,6 @@
9804
9822
  "type": "array",
9805
9823
  "optional": true,
9806
9824
  "description": "List of request methods which the rule won't match. Cannot be specified if 'requestMethods' is specified. If neither of them is specified, all request methods are matched.",
9807
- "minItems": 1,
9808
9825
  "items": {
9809
9826
  "type": "string"
9810
9827
  }
@@ -9869,6 +9886,7 @@
9869
9886
  },
9870
9887
  "url": {
9871
9888
  "type": "string",
9889
+ "format": "url",
9872
9890
  "optional": true,
9873
9891
  "description": "The redirect url. Redirects to JavaScript urls are not allowed."
9874
9892
  },
@@ -9880,51 +9898,59 @@
9880
9898
  }
9881
9899
  },
9882
9900
  "requestHeaders": {
9883
- "type": "object",
9901
+ "type": "array",
9884
9902
  "optional": true,
9885
9903
  "description": "The request headers to modify for the request. Only valid when type is 'modifyHeaders'.",
9886
- "properties": {
9887
- "header": {
9888
- "type": "string",
9889
- "description": "The name of the request header to be modified."
9890
- },
9891
- "operation": {
9892
- "type": "string",
9893
- "description": "The operation to be performed on a header. The 'append' operation is not supported for request headers.",
9894
- "enum": [
9895
- "set",
9896
- "remove"
9897
- ]
9898
- },
9899
- "value": {
9900
- "type": "string",
9901
- "optional": true,
9902
- "description": "The new value for the header. Must be specified for the 'set' operation."
9904
+ "minItems": 1,
9905
+ "items": {
9906
+ "type": "object",
9907
+ "properties": {
9908
+ "header": {
9909
+ "type": "string",
9910
+ "description": "The name of the request header to be modified."
9911
+ },
9912
+ "operation": {
9913
+ "type": "string",
9914
+ "description": "The operation to be performed on a header. The 'append' operation is not supported for request headers.",
9915
+ "enum": [
9916
+ "set",
9917
+ "remove"
9918
+ ]
9919
+ },
9920
+ "value": {
9921
+ "type": "string",
9922
+ "optional": true,
9923
+ "description": "The new value for the header. Must be specified for the 'set' operation."
9924
+ }
9903
9925
  }
9904
9926
  }
9905
9927
  },
9906
9928
  "responseHeaders": {
9907
- "type": "object",
9929
+ "type": "array",
9908
9930
  "optional": true,
9909
9931
  "description": "The response headers to modify for the request. Only valid when type is 'modifyHeaders'.",
9910
- "properties": {
9911
- "header": {
9912
- "type": "string",
9913
- "description": "The name of the response header to be modified."
9914
- },
9915
- "operation": {
9916
- "type": "string",
9917
- "description": "The operation to be performed on a header.",
9918
- "enum": [
9919
- "append",
9920
- "set",
9921
- "remove"
9922
- ]
9923
- },
9924
- "value": {
9925
- "type": "string",
9926
- "optional": true,
9927
- "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
9932
+ "minItems": 1,
9933
+ "items": {
9934
+ "type": "object",
9935
+ "properties": {
9936
+ "header": {
9937
+ "type": "string",
9938
+ "description": "The name of the response header to be modified."
9939
+ },
9940
+ "operation": {
9941
+ "type": "string",
9942
+ "description": "The operation to be performed on a header.",
9943
+ "enum": [
9944
+ "append",
9945
+ "set",
9946
+ "remove"
9947
+ ]
9948
+ },
9949
+ "value": {
9950
+ "type": "string",
9951
+ "optional": true,
9952
+ "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
9953
+ }
9928
9954
  }
9929
9955
  }
9930
9956
  }
@@ -10031,6 +10057,18 @@
10031
10057
  }
10032
10058
  }
10033
10059
  },
10060
+ {
10061
+ "name": "options",
10062
+ "type": "object",
10063
+ "optional": true,
10064
+ "properties": {
10065
+ "includeOtherExtensions": {
10066
+ "type": "boolean",
10067
+ "description": "Whether to account for rules from other installed extensions during rule evaluation.",
10068
+ "optional": true
10069
+ }
10070
+ }
10071
+ },
10034
10072
  {
10035
10073
  "name": "callback",
10036
10074
  "type": "function",
@@ -13047,7 +13085,8 @@
13047
13085
  "applications": {
13048
13086
  "$ref": "BrowserSpecificSettings",
13049
13087
  "description": "The applications property is deprecated, please use 'browser_specific_settings'",
13050
- "optional": true
13088
+ "optional": true,
13089
+ "max_manifest_version": 2
13051
13090
  },
13052
13091
  "browser_specific_settings": {
13053
13092
  "$ref": "BrowserSpecificSettings",
@@ -13076,7 +13115,8 @@
13076
13115
  },
13077
13116
  "version": {
13078
13117
  "type": "string",
13079
- "optional": false
13118
+ "optional": false,
13119
+ "format": "versionString"
13080
13120
  },
13081
13121
  "homepage_url": {
13082
13122
  "type": "string",