webext-schema 5.1.8 → 5.1.10
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.
- package/README.md +13 -13
- package/package.json +8 -8
- package/schemas/beta/webext.json +106 -3
- package/schemas/central/webext.json +65 -1
- package/schemas/release/webext.json +85 -16
package/README.md
CHANGED
|
@@ -9,13 +9,13 @@ Stubbed browser API is also available.
|
|
|
9
9
|
|
|
10
10
|
## Install
|
|
11
11
|
|
|
12
|
-
```
|
|
12
|
+
```console
|
|
13
13
|
npm i webext-schema
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## Usage
|
|
17
17
|
|
|
18
|
-
```
|
|
18
|
+
```javascript
|
|
19
19
|
import { Schema } from 'webext-schema';
|
|
20
20
|
|
|
21
21
|
const schema = new Schema();
|
|
@@ -28,7 +28,7 @@ const schema = new Schema();
|
|
|
28
28
|
|
|
29
29
|
Both arguments are optional.
|
|
30
30
|
|
|
31
|
-
```
|
|
31
|
+
```javascript
|
|
32
32
|
const schema = new Schema("central", {
|
|
33
33
|
useFakeTimers: true,
|
|
34
34
|
useFakeServer: true,
|
|
@@ -40,13 +40,13 @@ const schema = new Schema("central", {
|
|
|
40
40
|
"central", "beta", "release", "esr" for WebExtensions, and "mail" for MailExtensions are available.
|
|
41
41
|
Channel defaults to "beta".
|
|
42
42
|
|
|
43
|
-
```
|
|
43
|
+
```javascript
|
|
44
44
|
const schema = new Schema("central");
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Also, you can set it afterwards.
|
|
48
48
|
|
|
49
|
-
```
|
|
49
|
+
```javascript
|
|
50
50
|
const schema = new Schema();
|
|
51
51
|
schema.channel = "central";
|
|
52
52
|
```
|
|
@@ -59,12 +59,12 @@ schema.channel = "central";
|
|
|
59
59
|
Get the schema for the specific API.
|
|
60
60
|
Argument can be either an API name or a file name.
|
|
61
61
|
|
|
62
|
-
```
|
|
62
|
+
```javascript
|
|
63
63
|
const schema = new Schema().get("browserAction");
|
|
64
64
|
// [{namespace: "browserAction", events: [...], ...}]
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
```
|
|
67
|
+
```javascript
|
|
68
68
|
const schema = new Schema().get("browser_action.json");
|
|
69
69
|
// [{namespace: "browserAction", events: [...], ...}]
|
|
70
70
|
```
|
|
@@ -76,7 +76,7 @@ const schema = new Schema().get("browser_action.json");
|
|
|
76
76
|
Get all schemas as a single object.
|
|
77
77
|
Note that the key of the object is the file name and the value is the schema.
|
|
78
78
|
|
|
79
|
-
```
|
|
79
|
+
```javascript
|
|
80
80
|
const schema = new Schema().getAll();
|
|
81
81
|
// {"alarms.json": [{...}], "bookmarks.json": [{...}], ...}
|
|
82
82
|
```
|
|
@@ -87,7 +87,7 @@ const schema = new Schema().getAll();
|
|
|
87
87
|
|
|
88
88
|
Get the list of schema files.
|
|
89
89
|
|
|
90
|
-
```
|
|
90
|
+
```javascript
|
|
91
91
|
const list = new Schema().list();
|
|
92
92
|
// ["alarms.json", "bookmarks.json", ...]
|
|
93
93
|
```
|
|
@@ -105,18 +105,18 @@ Creates stubbed browser API.
|
|
|
105
105
|
|
|
106
106
|
See [Sinon.JS](https://sinonjs.org/) for details of sinon.sandbox.
|
|
107
107
|
|
|
108
|
-
```
|
|
108
|
+
```javascript
|
|
109
109
|
const browser = new Schema().mock();
|
|
110
110
|
|
|
111
111
|
// example of mocking runtime.connect()
|
|
112
|
-
const mockConnect = browser.runtime.connect.callsFake(({name}) => {
|
|
112
|
+
const mockConnect = browser.runtime.connect.callsFake(({ name }) => {
|
|
113
113
|
const port = Object.assign({}, browser.runtime.Port);
|
|
114
114
|
port.name = name;
|
|
115
115
|
return port;
|
|
116
116
|
});
|
|
117
117
|
|
|
118
|
-
const port1 = mockConnect({name: "foo"});
|
|
119
|
-
const port2 = mockConnect({name: "bar"});
|
|
118
|
+
const port1 = mockConnect({ name: "foo" });
|
|
119
|
+
const port2 = mockConnect({ name: "bar" });
|
|
120
120
|
assert.strictEqual(port1.name, "foo");
|
|
121
121
|
assert.isFunction(port1.onDisconnect.addListener);
|
|
122
122
|
assert.strictEqual(port2.name, "bar");
|
package/package.json
CHANGED
|
@@ -13,30 +13,30 @@
|
|
|
13
13
|
"main": "index.js",
|
|
14
14
|
"types": "types/index.d.ts",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@types/firefox-webext-browser": "^
|
|
17
|
-
"@types/node": "^18.
|
|
16
|
+
"@types/firefox-webext-browser": "^111.0.0",
|
|
17
|
+
"@types/node": "^18.15.2",
|
|
18
18
|
"@types/sinon": "^10.0.13",
|
|
19
19
|
"camelize": "^1.0.1",
|
|
20
20
|
"commander": "^10.0.0",
|
|
21
21
|
"decamelize": "^6.0.0",
|
|
22
22
|
"json5": "^2.2.3",
|
|
23
|
-
"sinon": "^15.0.
|
|
23
|
+
"sinon": "^15.0.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"c8": "^7.13.0",
|
|
27
27
|
"chai": "^4.3.7",
|
|
28
|
-
"eslint": "^8.
|
|
28
|
+
"eslint": "^8.36.0",
|
|
29
29
|
"eslint-config-standard": "^17.0.0",
|
|
30
30
|
"eslint-plugin-import": "^2.27.5",
|
|
31
|
-
"eslint-plugin-jsdoc": "^40.0.
|
|
31
|
+
"eslint-plugin-jsdoc": "^40.0.1",
|
|
32
32
|
"eslint-plugin-node": "^11.1.0",
|
|
33
33
|
"eslint-plugin-promise": "^6.1.1",
|
|
34
34
|
"eslint-plugin-regexp": "^1.12.0",
|
|
35
|
-
"eslint-plugin-unicorn": "^
|
|
35
|
+
"eslint-plugin-unicorn": "^46.0.0",
|
|
36
36
|
"mocha": "^10.2.0",
|
|
37
37
|
"npm-run-all": "^4.1.5",
|
|
38
38
|
"typescript": "^4.9.5",
|
|
39
|
-
"undici": "^5.
|
|
39
|
+
"undici": "^5.21.0"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "npm run tsc && npm run lint && npm run test",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"update-mail": "node index update --channel=mail -i",
|
|
57
57
|
"update-release": "node index update --channel=release -i"
|
|
58
58
|
},
|
|
59
|
-
"version": "5.1.
|
|
59
|
+
"version": "5.1.10"
|
|
60
60
|
}
|
package/schemas/beta/webext.json
CHANGED
|
@@ -9721,13 +9721,24 @@
|
|
|
9721
9721
|
}
|
|
9722
9722
|
]
|
|
9723
9723
|
},
|
|
9724
|
+
{
|
|
9725
|
+
"$extend": "OptionalPermission",
|
|
9726
|
+
"choices": [
|
|
9727
|
+
{
|
|
9728
|
+
"type": "string",
|
|
9729
|
+
"enum": [
|
|
9730
|
+
"declarativeNetRequestFeedback"
|
|
9731
|
+
],
|
|
9732
|
+
"min_manifest_version": 3
|
|
9733
|
+
}
|
|
9734
|
+
]
|
|
9735
|
+
},
|
|
9724
9736
|
{
|
|
9725
9737
|
"$extend": "PermissionNoPrompt",
|
|
9726
9738
|
"choices": [
|
|
9727
9739
|
{
|
|
9728
9740
|
"type": "string",
|
|
9729
9741
|
"enum": [
|
|
9730
|
-
"declarativeNetRequestFeedback",
|
|
9731
9742
|
"declarativeNetRequestWithHostAccess"
|
|
9732
9743
|
],
|
|
9733
9744
|
"min_manifest_version": 3
|
|
@@ -9811,6 +9822,15 @@
|
|
|
9811
9822
|
"other"
|
|
9812
9823
|
]
|
|
9813
9824
|
},
|
|
9825
|
+
{
|
|
9826
|
+
"id": "UnsupportedRegexReason",
|
|
9827
|
+
"type": "string",
|
|
9828
|
+
"description": "Describes the reason why a given regular expression isn't supported.",
|
|
9829
|
+
"enum": [
|
|
9830
|
+
"syntaxError",
|
|
9831
|
+
"memoryLimitExceeded"
|
|
9832
|
+
]
|
|
9833
|
+
},
|
|
9814
9834
|
{
|
|
9815
9835
|
"id": "MatchedRule",
|
|
9816
9836
|
"type": "object",
|
|
@@ -10093,7 +10113,7 @@
|
|
|
10093
10113
|
"regexSubstitution": {
|
|
10094
10114
|
"type": "string",
|
|
10095
10115
|
"optional": true,
|
|
10096
|
-
"description": "
|
|
10116
|
+
"description": "Substitution pattern for rules which specify a 'regexFilter'. The first match of regexFilter within the url will be replaced with this pattern. Within regexSubstitution, backslash-escaped digits (\\1 to \\9) can be used to insert the corresponding capture groups. \\0 refers to the entire matching text."
|
|
10097
10117
|
}
|
|
10098
10118
|
}
|
|
10099
10119
|
},
|
|
@@ -10349,6 +10369,57 @@
|
|
|
10349
10369
|
}
|
|
10350
10370
|
]
|
|
10351
10371
|
},
|
|
10372
|
+
{
|
|
10373
|
+
"name": "isRegexSupported",
|
|
10374
|
+
"type": "function",
|
|
10375
|
+
"description": "Checks if the given regular expression will be supported as a 'regexFilter' rule condition.",
|
|
10376
|
+
"async": "callback",
|
|
10377
|
+
"parameters": [
|
|
10378
|
+
{
|
|
10379
|
+
"name": "regexOptions",
|
|
10380
|
+
"type": "object",
|
|
10381
|
+
"properties": {
|
|
10382
|
+
"regex": {
|
|
10383
|
+
"type": "string",
|
|
10384
|
+
"description": "The regular expresson to check."
|
|
10385
|
+
},
|
|
10386
|
+
"isCaseSensitive": {
|
|
10387
|
+
"type": "boolean",
|
|
10388
|
+
"optional": true,
|
|
10389
|
+
"description": "Whether the 'regex' specified is case sensitive.",
|
|
10390
|
+
"default": false
|
|
10391
|
+
},
|
|
10392
|
+
"requireCapturing": {
|
|
10393
|
+
"type": "boolean",
|
|
10394
|
+
"optional": true,
|
|
10395
|
+
"description": "Whether the 'regex' specified requires capturing. Capturing is only required for redirect rules which specify a 'regexSubstition' action.",
|
|
10396
|
+
"default": false
|
|
10397
|
+
}
|
|
10398
|
+
}
|
|
10399
|
+
},
|
|
10400
|
+
{
|
|
10401
|
+
"name": "callback",
|
|
10402
|
+
"type": "function",
|
|
10403
|
+
"parameters": [
|
|
10404
|
+
{
|
|
10405
|
+
"name": "result",
|
|
10406
|
+
"type": "object",
|
|
10407
|
+
"properties": {
|
|
10408
|
+
"isSupported": {
|
|
10409
|
+
"type": "boolean",
|
|
10410
|
+
"description": "Whether the given regex is supported"
|
|
10411
|
+
},
|
|
10412
|
+
"reason": {
|
|
10413
|
+
"$ref": "UnsupportedRegexReason",
|
|
10414
|
+
"optional": true,
|
|
10415
|
+
"description": "Specifies the reason why the regular expression is not supported. Only provided if 'isSupported' is false."
|
|
10416
|
+
}
|
|
10417
|
+
}
|
|
10418
|
+
}
|
|
10419
|
+
]
|
|
10420
|
+
}
|
|
10421
|
+
]
|
|
10422
|
+
},
|
|
10352
10423
|
{
|
|
10353
10424
|
"name": "testMatchOutcome",
|
|
10354
10425
|
"type": "function",
|
|
@@ -10447,6 +10518,10 @@
|
|
|
10447
10518
|
"type": "number",
|
|
10448
10519
|
"description": "The maximum number of dynamic and session rules an extension can add. NOTE: in the Firefox we are enforcing this limit to the session and dynamic rules count separately, instead of enforcing it to the rules count for both combined as the Chrome implementation does."
|
|
10449
10520
|
},
|
|
10521
|
+
"MAX_NUMBER_OF_REGEX_RULES": {
|
|
10522
|
+
"type": "number",
|
|
10523
|
+
"description": "The maximum number of regular expression rules that an extension can add. This limit is evaluated separately for the set of session rules, dynamic rules and those specified in the rule_resources file."
|
|
10524
|
+
},
|
|
10450
10525
|
"SESSION_RULESET_ID": {
|
|
10451
10526
|
"type": "string",
|
|
10452
10527
|
"value": "_session",
|
|
@@ -12415,7 +12490,7 @@
|
|
|
12415
12490
|
"mainthreadio",
|
|
12416
12491
|
"fileio",
|
|
12417
12492
|
"fileioall",
|
|
12418
|
-
"
|
|
12493
|
+
"nomarkerstacks",
|
|
12419
12494
|
"screenshots",
|
|
12420
12495
|
"seqstyle",
|
|
12421
12496
|
"stackwalk",
|
|
@@ -13572,6 +13647,14 @@
|
|
|
13572
13647
|
"$ref": "ExtensionURL"
|
|
13573
13648
|
}
|
|
13574
13649
|
},
|
|
13650
|
+
"type": {
|
|
13651
|
+
"optional": true,
|
|
13652
|
+
"type": "string",
|
|
13653
|
+
"enum": [
|
|
13654
|
+
"module",
|
|
13655
|
+
"classic"
|
|
13656
|
+
]
|
|
13657
|
+
},
|
|
13575
13658
|
"persistent": {
|
|
13576
13659
|
"optional": true,
|
|
13577
13660
|
"type": "boolean",
|
|
@@ -20148,6 +20231,26 @@
|
|
|
20148
20231
|
},
|
|
20149
20232
|
"description": "list of reasons that cause the request to be considered weak, if state is \"weak\"",
|
|
20150
20233
|
"optional": true
|
|
20234
|
+
},
|
|
20235
|
+
"usedEch": {
|
|
20236
|
+
"type": "boolean",
|
|
20237
|
+
"description": "True if the TLS connection used Encrypted Client Hello.",
|
|
20238
|
+
"optional": true
|
|
20239
|
+
},
|
|
20240
|
+
"usedDelegatedCredentials": {
|
|
20241
|
+
"type": "boolean",
|
|
20242
|
+
"description": "True if the TLS connection used Delegated Credentials.",
|
|
20243
|
+
"optional": true
|
|
20244
|
+
},
|
|
20245
|
+
"usedOcsp": {
|
|
20246
|
+
"type": "boolean",
|
|
20247
|
+
"description": "True if the TLS connection made OCSP requests.",
|
|
20248
|
+
"optional": true
|
|
20249
|
+
},
|
|
20250
|
+
"usedPrivateDns": {
|
|
20251
|
+
"type": "boolean",
|
|
20252
|
+
"description": "True if the TLS connection used a privacy-preserving DNS transport like DNS-over-HTTPS.",
|
|
20253
|
+
"optional": true
|
|
20151
20254
|
}
|
|
20152
20255
|
}
|
|
20153
20256
|
},
|
|
@@ -9822,6 +9822,15 @@
|
|
|
9822
9822
|
"other"
|
|
9823
9823
|
]
|
|
9824
9824
|
},
|
|
9825
|
+
{
|
|
9826
|
+
"id": "UnsupportedRegexReason",
|
|
9827
|
+
"type": "string",
|
|
9828
|
+
"description": "Describes the reason why a given regular expression isn't supported.",
|
|
9829
|
+
"enum": [
|
|
9830
|
+
"syntaxError",
|
|
9831
|
+
"memoryLimitExceeded"
|
|
9832
|
+
]
|
|
9833
|
+
},
|
|
9825
9834
|
{
|
|
9826
9835
|
"id": "MatchedRule",
|
|
9827
9836
|
"type": "object",
|
|
@@ -10104,7 +10113,7 @@
|
|
|
10104
10113
|
"regexSubstitution": {
|
|
10105
10114
|
"type": "string",
|
|
10106
10115
|
"optional": true,
|
|
10107
|
-
"description": "
|
|
10116
|
+
"description": "Substitution pattern for rules which specify a 'regexFilter'. The first match of regexFilter within the url will be replaced with this pattern. Within regexSubstitution, backslash-escaped digits (\\1 to \\9) can be used to insert the corresponding capture groups. \\0 refers to the entire matching text."
|
|
10108
10117
|
}
|
|
10109
10118
|
}
|
|
10110
10119
|
},
|
|
@@ -10360,6 +10369,57 @@
|
|
|
10360
10369
|
}
|
|
10361
10370
|
]
|
|
10362
10371
|
},
|
|
10372
|
+
{
|
|
10373
|
+
"name": "isRegexSupported",
|
|
10374
|
+
"type": "function",
|
|
10375
|
+
"description": "Checks if the given regular expression will be supported as a 'regexFilter' rule condition.",
|
|
10376
|
+
"async": "callback",
|
|
10377
|
+
"parameters": [
|
|
10378
|
+
{
|
|
10379
|
+
"name": "regexOptions",
|
|
10380
|
+
"type": "object",
|
|
10381
|
+
"properties": {
|
|
10382
|
+
"regex": {
|
|
10383
|
+
"type": "string",
|
|
10384
|
+
"description": "The regular expresson to check."
|
|
10385
|
+
},
|
|
10386
|
+
"isCaseSensitive": {
|
|
10387
|
+
"type": "boolean",
|
|
10388
|
+
"optional": true,
|
|
10389
|
+
"description": "Whether the 'regex' specified is case sensitive.",
|
|
10390
|
+
"default": false
|
|
10391
|
+
},
|
|
10392
|
+
"requireCapturing": {
|
|
10393
|
+
"type": "boolean",
|
|
10394
|
+
"optional": true,
|
|
10395
|
+
"description": "Whether the 'regex' specified requires capturing. Capturing is only required for redirect rules which specify a 'regexSubstition' action.",
|
|
10396
|
+
"default": false
|
|
10397
|
+
}
|
|
10398
|
+
}
|
|
10399
|
+
},
|
|
10400
|
+
{
|
|
10401
|
+
"name": "callback",
|
|
10402
|
+
"type": "function",
|
|
10403
|
+
"parameters": [
|
|
10404
|
+
{
|
|
10405
|
+
"name": "result",
|
|
10406
|
+
"type": "object",
|
|
10407
|
+
"properties": {
|
|
10408
|
+
"isSupported": {
|
|
10409
|
+
"type": "boolean",
|
|
10410
|
+
"description": "Whether the given regex is supported"
|
|
10411
|
+
},
|
|
10412
|
+
"reason": {
|
|
10413
|
+
"$ref": "UnsupportedRegexReason",
|
|
10414
|
+
"optional": true,
|
|
10415
|
+
"description": "Specifies the reason why the regular expression is not supported. Only provided if 'isSupported' is false."
|
|
10416
|
+
}
|
|
10417
|
+
}
|
|
10418
|
+
}
|
|
10419
|
+
]
|
|
10420
|
+
}
|
|
10421
|
+
]
|
|
10422
|
+
},
|
|
10363
10423
|
{
|
|
10364
10424
|
"name": "testMatchOutcome",
|
|
10365
10425
|
"type": "function",
|
|
@@ -10458,6 +10518,10 @@
|
|
|
10458
10518
|
"type": "number",
|
|
10459
10519
|
"description": "The maximum number of dynamic and session rules an extension can add. NOTE: in the Firefox we are enforcing this limit to the session and dynamic rules count separately, instead of enforcing it to the rules count for both combined as the Chrome implementation does."
|
|
10460
10520
|
},
|
|
10521
|
+
"MAX_NUMBER_OF_REGEX_RULES": {
|
|
10522
|
+
"type": "number",
|
|
10523
|
+
"description": "The maximum number of regular expression rules that an extension can add. This limit is evaluated separately for the set of session rules, dynamic rules and those specified in the rule_resources file."
|
|
10524
|
+
},
|
|
10461
10525
|
"SESSION_RULESET_ID": {
|
|
10462
10526
|
"type": "string",
|
|
10463
10527
|
"value": "_session",
|
|
@@ -1898,6 +1898,11 @@
|
|
|
1898
1898
|
"description": "Find only ranges with case sensitive match.",
|
|
1899
1899
|
"optional": true
|
|
1900
1900
|
},
|
|
1901
|
+
"matchDiacritics": {
|
|
1902
|
+
"type": "boolean",
|
|
1903
|
+
"description": "Find only ranges with diacritic sensitive match.",
|
|
1904
|
+
"optional": true
|
|
1905
|
+
},
|
|
1901
1906
|
"entireWord": {
|
|
1902
1907
|
"type": "boolean",
|
|
1903
1908
|
"description": "Find only ranges that match entire word.",
|
|
@@ -3577,6 +3582,16 @@
|
|
|
3577
3582
|
"format": "url"
|
|
3578
3583
|
}
|
|
3579
3584
|
}
|
|
3585
|
+
},
|
|
3586
|
+
{
|
|
3587
|
+
"id": "Disposition",
|
|
3588
|
+
"type": "string",
|
|
3589
|
+
"description": "Location where search results should be displayed.",
|
|
3590
|
+
"enum": [
|
|
3591
|
+
"CURRENT_TAB",
|
|
3592
|
+
"NEW_TAB",
|
|
3593
|
+
"NEW_WINDOW"
|
|
3594
|
+
]
|
|
3580
3595
|
}
|
|
3581
3596
|
],
|
|
3582
3597
|
"functions": [
|
|
@@ -3606,12 +3621,51 @@
|
|
|
3606
3621
|
"optional": true,
|
|
3607
3622
|
"description": "Search engine to use. Uses the default if not specified."
|
|
3608
3623
|
},
|
|
3624
|
+
"disposition": {
|
|
3625
|
+
"$ref": "Disposition",
|
|
3626
|
+
"optional": true,
|
|
3627
|
+
"description": "Location where search results should be displayed. NEW_TAB is the default."
|
|
3628
|
+
},
|
|
3629
|
+
"tabId": {
|
|
3630
|
+
"type": "integer",
|
|
3631
|
+
"optional": true,
|
|
3632
|
+
"description": "The ID of the tab for the search results. If not specified, a new tab is created, unless disposition is set. tabId cannot be used with disposition."
|
|
3633
|
+
}
|
|
3634
|
+
}
|
|
3635
|
+
}
|
|
3636
|
+
]
|
|
3637
|
+
},
|
|
3638
|
+
{
|
|
3639
|
+
"name": "query",
|
|
3640
|
+
"type": "function",
|
|
3641
|
+
"async": "callback",
|
|
3642
|
+
"description": "Use the chrome.search API to search via the default provider.",
|
|
3643
|
+
"parameters": [
|
|
3644
|
+
{
|
|
3645
|
+
"type": "object",
|
|
3646
|
+
"name": "queryInfo",
|
|
3647
|
+
"properties": {
|
|
3648
|
+
"text": {
|
|
3649
|
+
"type": "string",
|
|
3650
|
+
"description": "String to query with the default search provider."
|
|
3651
|
+
},
|
|
3652
|
+
"disposition": {
|
|
3653
|
+
"$ref": "Disposition",
|
|
3654
|
+
"optional": true,
|
|
3655
|
+
"description": "Location where search results should be displayed. CURRENT_TAB is the default."
|
|
3656
|
+
},
|
|
3609
3657
|
"tabId": {
|
|
3610
3658
|
"type": "integer",
|
|
3611
3659
|
"optional": true,
|
|
3612
|
-
"description": "
|
|
3660
|
+
"description": "Location where search results should be displayed. tabId cannot be used with disposition."
|
|
3613
3661
|
}
|
|
3614
3662
|
}
|
|
3663
|
+
},
|
|
3664
|
+
{
|
|
3665
|
+
"type": "function",
|
|
3666
|
+
"name": "callback",
|
|
3667
|
+
"optional": true,
|
|
3668
|
+
"parameters": []
|
|
3615
3669
|
}
|
|
3616
3670
|
]
|
|
3617
3671
|
}
|
|
@@ -9898,7 +9952,7 @@
|
|
|
9898
9952
|
"isUrlFilterCaseSensitive": {
|
|
9899
9953
|
"type": "boolean",
|
|
9900
9954
|
"optional": true,
|
|
9901
|
-
"description": "Whether 'urlFilter' or 'regexFilter' is case-sensitive.
|
|
9955
|
+
"description": "Whether 'urlFilter' or 'regexFilter' is case-sensitive."
|
|
9902
9956
|
},
|
|
9903
9957
|
"initiatorDomains": {
|
|
9904
9958
|
"type": "array",
|
|
@@ -10370,7 +10424,35 @@
|
|
|
10370
10424
|
}
|
|
10371
10425
|
]
|
|
10372
10426
|
}
|
|
10373
|
-
]
|
|
10427
|
+
],
|
|
10428
|
+
"properties": {
|
|
10429
|
+
"DYNAMIC_RULESET_ID": {
|
|
10430
|
+
"type": "string",
|
|
10431
|
+
"value": "_dynamic",
|
|
10432
|
+
"description": "Ruleset ID for the dynamic rules added by the extension."
|
|
10433
|
+
},
|
|
10434
|
+
"GUARANTEED_MINIMUM_STATIC_RULES": {
|
|
10435
|
+
"type": "number",
|
|
10436
|
+
"description": "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."
|
|
10437
|
+
},
|
|
10438
|
+
"MAX_NUMBER_OF_STATIC_RULESETS": {
|
|
10439
|
+
"type": "number",
|
|
10440
|
+
"description": "The maximum number of static Rulesets an extension can specify as part of the rule_resources manifest key."
|
|
10441
|
+
},
|
|
10442
|
+
"MAX_NUMBER_OF_ENABLED_STATIC_RULESETS": {
|
|
10443
|
+
"type": "number",
|
|
10444
|
+
"description": "The maximum number of static Rulesets an extension can enable at any one time."
|
|
10445
|
+
},
|
|
10446
|
+
"MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES": {
|
|
10447
|
+
"type": "number",
|
|
10448
|
+
"description": "The maximum number of dynamic and session rules an extension can add. NOTE: in the Firefox we are enforcing this limit to the session and dynamic rules count separately, instead of enforcing it to the rules count for both combined as the Chrome implementation does."
|
|
10449
|
+
},
|
|
10450
|
+
"SESSION_RULESET_ID": {
|
|
10451
|
+
"type": "string",
|
|
10452
|
+
"value": "_session",
|
|
10453
|
+
"description": "Ruleset ID for the session-scoped rules added by the extension."
|
|
10454
|
+
}
|
|
10455
|
+
}
|
|
10374
10456
|
}
|
|
10375
10457
|
],
|
|
10376
10458
|
"dns.json": [
|
|
@@ -12339,7 +12421,6 @@
|
|
|
12339
12421
|
"stackwalk",
|
|
12340
12422
|
"jsallocations",
|
|
12341
12423
|
"nostacksampling",
|
|
12342
|
-
"preferencereads",
|
|
12343
12424
|
"nativeallocations",
|
|
12344
12425
|
"ipcmessages",
|
|
12345
12426
|
"audiocallbacktracing",
|
|
@@ -13690,12 +13771,6 @@
|
|
|
13690
13771
|
"description": "Represents a WebExtension language pack manifest.json file",
|
|
13691
13772
|
"$import": "ManifestBase",
|
|
13692
13773
|
"properties": {
|
|
13693
|
-
"homepage_url": {
|
|
13694
|
-
"type": "string",
|
|
13695
|
-
"format": "url",
|
|
13696
|
-
"optional": true,
|
|
13697
|
-
"preprocess": "localize"
|
|
13698
|
-
},
|
|
13699
13774
|
"langpack_id": {
|
|
13700
13775
|
"type": "string",
|
|
13701
13776
|
"pattern": "^[a-zA-Z][a-zA-Z-]+$"
|
|
@@ -13763,12 +13838,6 @@
|
|
|
13763
13838
|
"description": "Represents a WebExtension dictionary manifest.json file",
|
|
13764
13839
|
"$import": "ManifestBase",
|
|
13765
13840
|
"properties": {
|
|
13766
|
-
"homepage_url": {
|
|
13767
|
-
"type": "string",
|
|
13768
|
-
"format": "url",
|
|
13769
|
-
"optional": true,
|
|
13770
|
-
"preprocess": "localize"
|
|
13771
|
-
},
|
|
13772
13841
|
"dictionaries": {
|
|
13773
13842
|
"type": "object",
|
|
13774
13843
|
"patternProperties": {
|