webext-schema 3.0.0 → 3.0.3
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/modules/browser.js +29 -31
- package/modules/common.js +1 -1
- package/modules/schema.js +12 -15
- package/modules/update.js +1 -3
- package/package.json +5 -5
- package/schemas/beta/webext.json +27 -13
- package/schemas/central/webext.json +24 -9
- package/schemas/mail/mailext.json +223 -11
- package/schemas/release/webext.json +48 -188
package/modules/browser.js
CHANGED
|
@@ -74,8 +74,7 @@ export const getCloseTabsByDoubleClickValue = async () => {
|
|
|
74
74
|
});
|
|
75
75
|
let userValue;
|
|
76
76
|
if (isGranted) {
|
|
77
|
-
const { browserSettings } = browser;
|
|
78
|
-
const { closeTabsByDoubleClick } = browserSettings;
|
|
77
|
+
const { browserSettings: { closeTabsByDoubleClick } } = browser;
|
|
79
78
|
userValue = await closeTabsByDoubleClick.get({});
|
|
80
79
|
}
|
|
81
80
|
return userValue || null;
|
|
@@ -92,8 +91,7 @@ export const setContextMenuOnMouseup = async () => {
|
|
|
92
91
|
});
|
|
93
92
|
let res;
|
|
94
93
|
if (isGranted) {
|
|
95
|
-
const { browserSettings } = browser;
|
|
96
|
-
const { contextMenuShowEvent } = browserSettings;
|
|
94
|
+
const { browserSettings: { contextMenuShowEvent } } = browser;
|
|
97
95
|
const { levelOfControl, value } = await contextMenuShowEvent.get({});
|
|
98
96
|
if (value === 'mouseup') {
|
|
99
97
|
res = true;
|
|
@@ -117,8 +115,7 @@ export const clearContextMenuOnMouseup = async () => {
|
|
|
117
115
|
});
|
|
118
116
|
let res;
|
|
119
117
|
if (isGranted) {
|
|
120
|
-
const { browserSettings } = browser;
|
|
121
|
-
const { contextMenuShowEvent } = browserSettings;
|
|
118
|
+
const { browserSettings: { contextMenuShowEvent } } = browser;
|
|
122
119
|
res = await contextMenuShowEvent.clear({});
|
|
123
120
|
}
|
|
124
121
|
return !!res;
|
|
@@ -135,8 +132,7 @@ export const getNewTabPositionValue = async () => {
|
|
|
135
132
|
});
|
|
136
133
|
let res;
|
|
137
134
|
if (isGranted) {
|
|
138
|
-
const { browserSettings } = browser;
|
|
139
|
-
const { newTabPosition } = browserSettings;
|
|
135
|
+
const { browserSettings: { newTabPosition } } = browser;
|
|
140
136
|
res = await newTabPosition.get({});
|
|
141
137
|
}
|
|
142
138
|
return res || null;
|
|
@@ -255,9 +251,8 @@ export const getEnabledTheme = async () => {
|
|
|
255
251
|
try {
|
|
256
252
|
const arr = await management.getAll();
|
|
257
253
|
if (Array.isArray(arr) && arr.length) {
|
|
258
|
-
res =
|
|
259
|
-
info
|
|
260
|
-
);
|
|
254
|
+
res =
|
|
255
|
+
arr.filter(info => info?.type === 'theme' && info?.enabled && info);
|
|
261
256
|
}
|
|
262
257
|
} catch (e) {
|
|
263
258
|
logErr(e);
|
|
@@ -303,7 +298,7 @@ export const getExternalExtensions = async () => {
|
|
|
303
298
|
const arr = await management.getAll();
|
|
304
299
|
if (Array.isArray(arr) && arr.length) {
|
|
305
300
|
res =
|
|
306
|
-
arr.filter(info => info
|
|
301
|
+
arr.filter(info => info?.type === 'extension' && info);
|
|
307
302
|
}
|
|
308
303
|
} catch (e) {
|
|
309
304
|
logErr(e);
|
|
@@ -429,21 +424,29 @@ export const getOs = async () => {
|
|
|
429
424
|
/**
|
|
430
425
|
* make a connection
|
|
431
426
|
*
|
|
432
|
-
* @param {string} [
|
|
433
|
-
* @param {object} [info] - info
|
|
427
|
+
* @param {number|string} [id] - tab ID / extension ID / host name
|
|
428
|
+
* @param {object|boolean} [info] - connection info / connect to native app
|
|
434
429
|
* @returns {object} - runtime.Port
|
|
435
430
|
*/
|
|
436
|
-
export const makeConnection = async (
|
|
431
|
+
export const makeConnection = async (id, info) => {
|
|
437
432
|
let port;
|
|
438
|
-
if (
|
|
433
|
+
if (Number.isInteger(id)) {
|
|
439
434
|
if (isObjectNotEmpty(info)) {
|
|
440
|
-
port = await
|
|
435
|
+
port = await tabs.connect(id, info);
|
|
436
|
+
} else {
|
|
437
|
+
port = await tabs.connect(id);
|
|
438
|
+
}
|
|
439
|
+
} else if (isString(id)) {
|
|
440
|
+
if (info && getType(info) === 'Boolean') {
|
|
441
|
+
port = await runtime.connectNative(id);
|
|
442
|
+
} else if (isObjectNotEmpty(info)) {
|
|
443
|
+
port = await runtime.connect(id, info);
|
|
441
444
|
} else {
|
|
442
|
-
port = await runtime.connect(
|
|
445
|
+
port = await runtime.connect(id);
|
|
443
446
|
}
|
|
444
|
-
} else if (isObjectNotEmpty(
|
|
445
|
-
port = await runtime.connect(
|
|
446
|
-
} else if (!
|
|
447
|
+
} else if (isObjectNotEmpty(id)) {
|
|
448
|
+
port = await runtime.connect(id);
|
|
449
|
+
} else if (!id && isObjectNotEmpty(info)) {
|
|
447
450
|
port = await runtime.connect(info);
|
|
448
451
|
} else {
|
|
449
452
|
port = await runtime.connect();
|
|
@@ -454,7 +457,7 @@ export const makeConnection = async (extId, info) => {
|
|
|
454
457
|
/**
|
|
455
458
|
* send message
|
|
456
459
|
*
|
|
457
|
-
* @param {number|string} id -
|
|
460
|
+
* @param {number|string} id - tab ID / extension ID
|
|
458
461
|
* @param {*} msg - message
|
|
459
462
|
* @param {object} opt - options
|
|
460
463
|
* @returns {?Function} - tabs.sendMessage() | runtime.sendMessage()
|
|
@@ -733,17 +736,12 @@ export const queryTabs = async opt => {
|
|
|
733
736
|
export const execScriptToTab = async (tabId, opt = {}) => {
|
|
734
737
|
let res;
|
|
735
738
|
try {
|
|
736
|
-
const isGranted = await isPermissionGranted({
|
|
737
|
-
permissions: ['activeTab']
|
|
738
|
-
});
|
|
739
739
|
if (Number.isInteger(tabId)) {
|
|
740
740
|
res = await tabs.executeScript(tabId, opt);
|
|
741
|
-
} else if (
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
res = await tabs.executeScript(opt);
|
|
746
|
-
}
|
|
741
|
+
} else if (isObjectNotEmpty(tabId)) {
|
|
742
|
+
res = await tabs.executeScript(tabId);
|
|
743
|
+
} else if (isObjectNotEmpty(opt)) {
|
|
744
|
+
res = await tabs.executeScript(opt);
|
|
747
745
|
} else {
|
|
748
746
|
res = null;
|
|
749
747
|
}
|
package/modules/common.js
CHANGED
package/modules/schema.js
CHANGED
|
@@ -94,8 +94,7 @@ export class Schema {
|
|
|
94
94
|
} else if (this._browser[$import]) {
|
|
95
95
|
importValue = this._browser[$import];
|
|
96
96
|
} else {
|
|
97
|
-
importValue =
|
|
98
|
-
this._browser[namespace] && this._browser[namespace][$import];
|
|
97
|
+
importValue = this._browser[namespace]?.[$import];
|
|
99
98
|
}
|
|
100
99
|
Object.assign(target, importValue);
|
|
101
100
|
}
|
|
@@ -122,8 +121,7 @@ export class Schema {
|
|
|
122
121
|
} else if (this._browser[$ref]) {
|
|
123
122
|
refValue = this._browser[$ref];
|
|
124
123
|
} else {
|
|
125
|
-
refValue =
|
|
126
|
-
this._browser[namespace] && this._browser[namespace][$ref];
|
|
124
|
+
refValue = this._browser[namespace]?.[$ref];
|
|
127
125
|
}
|
|
128
126
|
Object.assign(target, refValue);
|
|
129
127
|
}
|
|
@@ -149,7 +147,7 @@ export class Schema {
|
|
|
149
147
|
for (const item of events) {
|
|
150
148
|
const { name, type, unsupported } = item;
|
|
151
149
|
if (!unsupported && name && type === 'function') {
|
|
152
|
-
target[name]
|
|
150
|
+
target[name] ??= {};
|
|
153
151
|
target[name].addListener = this._sandbox.stub();
|
|
154
152
|
target[name].hasListener = this._sandbox.stub();
|
|
155
153
|
target[name].removeListener = this._sandbox.stub();
|
|
@@ -210,7 +208,7 @@ export class Schema {
|
|
|
210
208
|
target[key] = this._sandbox.stub();
|
|
211
209
|
} else if (type === 'object' || $ref ||
|
|
212
210
|
Object.prototype.hasOwnProperty.call(item, 'properties')) {
|
|
213
|
-
target[key]
|
|
211
|
+
target[key] ??= {};
|
|
214
212
|
properties && this._mockProperties(
|
|
215
213
|
target[key], properties, `${namespace}.${key}`
|
|
216
214
|
);
|
|
@@ -247,7 +245,7 @@ export class Schema {
|
|
|
247
245
|
$import &&
|
|
248
246
|
this._importMap.set(`${namespace}.${id}`, { $import, namespace });
|
|
249
247
|
if (type === 'object' || $import || events || functions || properties) {
|
|
250
|
-
target[id]
|
|
248
|
+
target[id] ??= {};
|
|
251
249
|
events && this._mockEvents(target[id], events);
|
|
252
250
|
functions && this._mockFunctions(target[id], functions);
|
|
253
251
|
properties &&
|
|
@@ -287,7 +285,7 @@ export class Schema {
|
|
|
287
285
|
if (!isString(name)) {
|
|
288
286
|
throw new TypeError(`Expected String but got ${getType(name)}.`);
|
|
289
287
|
}
|
|
290
|
-
const schemas = this._schema
|
|
288
|
+
const schemas = this._schema ?? this._parseSchemaContent();
|
|
291
289
|
const items = Object.entries(schemas);
|
|
292
290
|
const label = decamelize(name.replace(/\.json$/, ''));
|
|
293
291
|
let schema;
|
|
@@ -306,7 +304,7 @@ export class Schema {
|
|
|
306
304
|
* @returns {object} - schemas
|
|
307
305
|
*/
|
|
308
306
|
getAll() {
|
|
309
|
-
const schemas = this._schema
|
|
307
|
+
const schemas = this._schema ?? this._parseSchemaContent();
|
|
310
308
|
return schemas;
|
|
311
309
|
}
|
|
312
310
|
|
|
@@ -316,7 +314,7 @@ export class Schema {
|
|
|
316
314
|
* @returns {Array} - file list
|
|
317
315
|
*/
|
|
318
316
|
list() {
|
|
319
|
-
const schemas = this._schema
|
|
317
|
+
const schemas = this._schema ?? this._parseSchemaContent();
|
|
320
318
|
const items = Object.keys(schemas);
|
|
321
319
|
const arr = [];
|
|
322
320
|
for (const item of items) {
|
|
@@ -331,7 +329,7 @@ export class Schema {
|
|
|
331
329
|
* @returns {object} - stubbed browser api
|
|
332
330
|
*/
|
|
333
331
|
mock() {
|
|
334
|
-
const schemas = this._schema
|
|
332
|
+
const schemas = this._schema ?? this._parseSchemaContent();
|
|
335
333
|
const schemaItems = Object.entries(schemas);
|
|
336
334
|
const aliasKeys = ['action', 'menus'];
|
|
337
335
|
this._browser = {
|
|
@@ -354,13 +352,12 @@ export class Schema {
|
|
|
354
352
|
let ns;
|
|
355
353
|
if (namespace.includes('.')) {
|
|
356
354
|
const [itemNamespace, itemSubNamespace] = namespace.split('.');
|
|
357
|
-
this._browser[itemNamespace]
|
|
358
|
-
this._browser[itemNamespace][itemSubNamespace]
|
|
359
|
-
this._browser[itemNamespace][itemSubNamespace] || {};
|
|
355
|
+
this._browser[itemNamespace] ??= {};
|
|
356
|
+
this._browser[itemNamespace][itemSubNamespace] ??= {};
|
|
360
357
|
mapKey.push(itemNamespace, itemSubNamespace);
|
|
361
358
|
ns = this._browser[itemNamespace][itemSubNamespace];
|
|
362
359
|
} else {
|
|
363
|
-
this._browser[namespace]
|
|
360
|
+
this._browser[namespace] ??= {};
|
|
364
361
|
mapKey.push(namespace);
|
|
365
362
|
ns = this._browser[namespace];
|
|
366
363
|
}
|
package/modules/update.js
CHANGED
|
@@ -168,9 +168,7 @@ export const getMailExtSchemaData = async baseUrl => {
|
|
|
168
168
|
];
|
|
169
169
|
const func = [];
|
|
170
170
|
for (const item of items) {
|
|
171
|
-
|
|
172
|
-
func.push(getSchemaData(item, schemaUrl));
|
|
173
|
-
}
|
|
171
|
+
!excludeFile.includes(item) && func.push(getSchemaData(item, schemaUrl));
|
|
174
172
|
}
|
|
175
173
|
return Promise.all(func);
|
|
176
174
|
};
|
package/package.json
CHANGED
|
@@ -29,24 +29,24 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"camelize": "^1.0.0",
|
|
32
|
-
"commander": "^9.
|
|
32
|
+
"commander": "^9.3.0",
|
|
33
33
|
"decamelize": "^6.0.0",
|
|
34
34
|
"json5": "^2.2.1",
|
|
35
35
|
"node-fetch": "^3.2.4",
|
|
36
36
|
"sinon": "^14.0.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"c8": "^7.11.
|
|
39
|
+
"c8": "^7.11.3",
|
|
40
40
|
"chai": "^4.3.6",
|
|
41
|
-
"eslint": "^8.
|
|
41
|
+
"eslint": "^8.16.0",
|
|
42
42
|
"eslint-config-standard": "^17.0.0",
|
|
43
43
|
"eslint-plugin-import": "^2.26.0",
|
|
44
|
-
"eslint-plugin-jsdoc": "^39.2
|
|
44
|
+
"eslint-plugin-jsdoc": "^39.3.2",
|
|
45
45
|
"eslint-plugin-node": "^11.1.0",
|
|
46
46
|
"eslint-plugin-promise": "^6.0.0",
|
|
47
47
|
"mocha": "^10.0.0",
|
|
48
48
|
"nock": "^13.2.4",
|
|
49
49
|
"npm-run-all": "^4.1.5"
|
|
50
50
|
},
|
|
51
|
-
"version": "3.0.
|
|
51
|
+
"version": "3.0.3"
|
|
52
52
|
}
|
package/schemas/beta/webext.json
CHANGED
|
@@ -3066,7 +3066,7 @@
|
|
|
3066
3066
|
"namespace": "manifest",
|
|
3067
3067
|
"types": [
|
|
3068
3068
|
{
|
|
3069
|
-
"$extend": "
|
|
3069
|
+
"$extend": "PermissionPrivileged",
|
|
3070
3070
|
"choices": [
|
|
3071
3071
|
{
|
|
3072
3072
|
"type": "string",
|
|
@@ -6430,7 +6430,7 @@
|
|
|
6430
6430
|
"namespace": "manifest",
|
|
6431
6431
|
"types": [
|
|
6432
6432
|
{
|
|
6433
|
-
"$extend": "
|
|
6433
|
+
"$extend": "PermissionPrivileged",
|
|
6434
6434
|
"choices": [
|
|
6435
6435
|
{
|
|
6436
6436
|
"type": "string",
|
|
@@ -7275,7 +7275,7 @@
|
|
|
7275
7275
|
"namespace": "manifest",
|
|
7276
7276
|
"types": [
|
|
7277
7277
|
{
|
|
7278
|
-
"$extend": "
|
|
7278
|
+
"$extend": "PermissionPrivileged",
|
|
7279
7279
|
"choices": [
|
|
7280
7280
|
{
|
|
7281
7281
|
"type": "string",
|
|
@@ -10910,7 +10910,8 @@
|
|
|
10910
10910
|
"additionalProperties": {
|
|
10911
10911
|
"$ref": "experiments.ExperimentAPI"
|
|
10912
10912
|
},
|
|
10913
|
-
"optional": true
|
|
10913
|
+
"optional": true,
|
|
10914
|
+
"privileged": true
|
|
10914
10915
|
}
|
|
10915
10916
|
}
|
|
10916
10917
|
}
|
|
@@ -11761,7 +11762,8 @@
|
|
|
11761
11762
|
"items": {
|
|
11762
11763
|
"type": "string"
|
|
11763
11764
|
},
|
|
11764
|
-
"optional": true
|
|
11765
|
+
"optional": true,
|
|
11766
|
+
"privileged": true
|
|
11765
11767
|
}
|
|
11766
11768
|
}
|
|
11767
11769
|
}
|
|
@@ -13089,17 +13091,30 @@
|
|
|
13089
13091
|
}
|
|
13090
13092
|
]
|
|
13091
13093
|
},
|
|
13094
|
+
{
|
|
13095
|
+
"id": "PermissionPrivileged",
|
|
13096
|
+
"choices": [
|
|
13097
|
+
{
|
|
13098
|
+
"type": "string",
|
|
13099
|
+
"enum": [
|
|
13100
|
+
"mozillaAddons"
|
|
13101
|
+
]
|
|
13102
|
+
}
|
|
13103
|
+
]
|
|
13104
|
+
},
|
|
13092
13105
|
{
|
|
13093
13106
|
"id": "PermissionNoPrompt",
|
|
13094
13107
|
"choices": [
|
|
13095
13108
|
{
|
|
13096
|
-
"$ref": "
|
|
13109
|
+
"$ref": "OptionalPermissionNoPrompt"
|
|
13110
|
+
},
|
|
13111
|
+
{
|
|
13112
|
+
"$ref": "PermissionPrivileged"
|
|
13097
13113
|
},
|
|
13098
13114
|
{
|
|
13099
13115
|
"type": "string",
|
|
13100
13116
|
"enum": [
|
|
13101
13117
|
"alarms",
|
|
13102
|
-
"mozillaAddons",
|
|
13103
13118
|
"storage",
|
|
13104
13119
|
"unlimitedStorage"
|
|
13105
13120
|
]
|
|
@@ -13443,7 +13458,7 @@
|
|
|
13443
13458
|
"namespace": "manifest",
|
|
13444
13459
|
"types": [
|
|
13445
13460
|
{
|
|
13446
|
-
"$extend": "
|
|
13461
|
+
"$extend": "PermissionPrivileged",
|
|
13447
13462
|
"choices": [
|
|
13448
13463
|
{
|
|
13449
13464
|
"type": "string",
|
|
@@ -14865,7 +14880,8 @@
|
|
|
14865
14880
|
"type": "boolean",
|
|
14866
14881
|
"optional": true,
|
|
14867
14882
|
"default": false,
|
|
14868
|
-
"description": "Whether to create all cookies as nonPersistent (i.e., session) cookies."
|
|
14883
|
+
"description": "Whether to create all cookies as nonPersistent (i.e., session) cookies.",
|
|
14884
|
+
"deprecated": "This property has no effect anymore and its value is always <code>false<code>."
|
|
14869
14885
|
}
|
|
14870
14886
|
}
|
|
14871
14887
|
}
|
|
@@ -15720,8 +15736,7 @@
|
|
|
15720
15736
|
"type": "string",
|
|
15721
15737
|
"enum": [
|
|
15722
15738
|
"scripting"
|
|
15723
|
-
]
|
|
15724
|
-
"min_manifest_version": 3
|
|
15739
|
+
]
|
|
15725
15740
|
}
|
|
15726
15741
|
]
|
|
15727
15742
|
}
|
|
@@ -15733,7 +15748,6 @@
|
|
|
15733
15748
|
"permissions": [
|
|
15734
15749
|
"scripting"
|
|
15735
15750
|
],
|
|
15736
|
-
"min_manifest_version": 3,
|
|
15737
15751
|
"types": [
|
|
15738
15752
|
{
|
|
15739
15753
|
"id": "ScriptInjection",
|
|
@@ -16635,7 +16649,7 @@
|
|
|
16635
16649
|
}
|
|
16636
16650
|
},
|
|
16637
16651
|
{
|
|
16638
|
-
"$extend": "
|
|
16652
|
+
"$extend": "PermissionPrivileged",
|
|
16639
16653
|
"choices": [
|
|
16640
16654
|
{
|
|
16641
16655
|
"type": "string",
|
|
@@ -3066,7 +3066,7 @@
|
|
|
3066
3066
|
"namespace": "manifest",
|
|
3067
3067
|
"types": [
|
|
3068
3068
|
{
|
|
3069
|
-
"$extend": "
|
|
3069
|
+
"$extend": "PermissionPrivileged",
|
|
3070
3070
|
"choices": [
|
|
3071
3071
|
{
|
|
3072
3072
|
"type": "string",
|
|
@@ -6430,7 +6430,7 @@
|
|
|
6430
6430
|
"namespace": "manifest",
|
|
6431
6431
|
"types": [
|
|
6432
6432
|
{
|
|
6433
|
-
"$extend": "
|
|
6433
|
+
"$extend": "PermissionPrivileged",
|
|
6434
6434
|
"choices": [
|
|
6435
6435
|
{
|
|
6436
6436
|
"type": "string",
|
|
@@ -7275,7 +7275,7 @@
|
|
|
7275
7275
|
"namespace": "manifest",
|
|
7276
7276
|
"types": [
|
|
7277
7277
|
{
|
|
7278
|
-
"$extend": "
|
|
7278
|
+
"$extend": "PermissionPrivileged",
|
|
7279
7279
|
"choices": [
|
|
7280
7280
|
{
|
|
7281
7281
|
"type": "string",
|
|
@@ -10910,7 +10910,8 @@
|
|
|
10910
10910
|
"additionalProperties": {
|
|
10911
10911
|
"$ref": "experiments.ExperimentAPI"
|
|
10912
10912
|
},
|
|
10913
|
-
"optional": true
|
|
10913
|
+
"optional": true,
|
|
10914
|
+
"privileged": true
|
|
10914
10915
|
}
|
|
10915
10916
|
}
|
|
10916
10917
|
}
|
|
@@ -11761,7 +11762,8 @@
|
|
|
11761
11762
|
"items": {
|
|
11762
11763
|
"type": "string"
|
|
11763
11764
|
},
|
|
11764
|
-
"optional": true
|
|
11765
|
+
"optional": true,
|
|
11766
|
+
"privileged": true
|
|
11765
11767
|
}
|
|
11766
11768
|
}
|
|
11767
11769
|
}
|
|
@@ -13089,17 +13091,30 @@
|
|
|
13089
13091
|
}
|
|
13090
13092
|
]
|
|
13091
13093
|
},
|
|
13094
|
+
{
|
|
13095
|
+
"id": "PermissionPrivileged",
|
|
13096
|
+
"choices": [
|
|
13097
|
+
{
|
|
13098
|
+
"type": "string",
|
|
13099
|
+
"enum": [
|
|
13100
|
+
"mozillaAddons"
|
|
13101
|
+
]
|
|
13102
|
+
}
|
|
13103
|
+
]
|
|
13104
|
+
},
|
|
13092
13105
|
{
|
|
13093
13106
|
"id": "PermissionNoPrompt",
|
|
13094
13107
|
"choices": [
|
|
13095
13108
|
{
|
|
13096
|
-
"$ref": "
|
|
13109
|
+
"$ref": "OptionalPermissionNoPrompt"
|
|
13110
|
+
},
|
|
13111
|
+
{
|
|
13112
|
+
"$ref": "PermissionPrivileged"
|
|
13097
13113
|
},
|
|
13098
13114
|
{
|
|
13099
13115
|
"type": "string",
|
|
13100
13116
|
"enum": [
|
|
13101
13117
|
"alarms",
|
|
13102
|
-
"mozillaAddons",
|
|
13103
13118
|
"storage",
|
|
13104
13119
|
"unlimitedStorage"
|
|
13105
13120
|
]
|
|
@@ -13443,7 +13458,7 @@
|
|
|
13443
13458
|
"namespace": "manifest",
|
|
13444
13459
|
"types": [
|
|
13445
13460
|
{
|
|
13446
|
-
"$extend": "
|
|
13461
|
+
"$extend": "PermissionPrivileged",
|
|
13447
13462
|
"choices": [
|
|
13448
13463
|
{
|
|
13449
13464
|
"type": "string",
|
|
@@ -16634,7 +16649,7 @@
|
|
|
16634
16649
|
}
|
|
16635
16650
|
},
|
|
16636
16651
|
{
|
|
16637
|
-
"$extend": "
|
|
16652
|
+
"$extend": "PermissionPrivileged",
|
|
16638
16653
|
"choices": [
|
|
16639
16654
|
{
|
|
16640
16655
|
"type": "string",
|
|
@@ -403,7 +403,8 @@
|
|
|
403
403
|
"additionalProperties": {
|
|
404
404
|
"$ref": "experiments.ExperimentAPI"
|
|
405
405
|
},
|
|
406
|
-
"optional": true
|
|
406
|
+
"optional": true,
|
|
407
|
+
"privileged": true
|
|
407
408
|
}
|
|
408
409
|
}
|
|
409
410
|
}
|
|
@@ -774,7 +775,8 @@
|
|
|
774
775
|
"items": {
|
|
775
776
|
"type": "string"
|
|
776
777
|
},
|
|
777
|
-
"optional": true
|
|
778
|
+
"optional": true,
|
|
779
|
+
"privileged": true
|
|
778
780
|
}
|
|
779
781
|
}
|
|
780
782
|
}
|
|
@@ -5267,6 +5269,7 @@
|
|
|
5267
5269
|
"type": "string",
|
|
5268
5270
|
"enum": [
|
|
5269
5271
|
"compose",
|
|
5272
|
+
"compose.save",
|
|
5270
5273
|
"compose.send"
|
|
5271
5274
|
]
|
|
5272
5275
|
}
|
|
@@ -5462,7 +5465,7 @@
|
|
|
5462
5465
|
"html",
|
|
5463
5466
|
"both"
|
|
5464
5467
|
],
|
|
5465
|
-
"description": "Defines the mime format of the
|
|
5468
|
+
"description": "Defines the mime format of the sent message (ignored on plain text messages). Defaults to ``auto``, which will send html messages as plain text, if they do not include any formatting, and as ``both`` otherwise (a multipart/mixed message).",
|
|
5466
5469
|
"optional": true
|
|
5467
5470
|
},
|
|
5468
5471
|
"customHeaders": {
|
|
@@ -5571,6 +5574,14 @@
|
|
|
5571
5574
|
"type": "string"
|
|
5572
5575
|
}
|
|
5573
5576
|
}
|
|
5577
|
+
},
|
|
5578
|
+
{
|
|
5579
|
+
"id": "ComposeDictionaries",
|
|
5580
|
+
"type": "object",
|
|
5581
|
+
"additionalProperties": {
|
|
5582
|
+
"type": "boolean"
|
|
5583
|
+
},
|
|
5584
|
+
"description": "Object with language identifiers of all installed dictionaries as keys (for example ``en-US``) and a boolean value, indicating whether that dictionary is enabled for spellchecking or not."
|
|
5574
5585
|
}
|
|
5575
5586
|
],
|
|
5576
5587
|
"events": [
|
|
@@ -5676,6 +5687,21 @@
|
|
|
5676
5687
|
"$ref": "ComposeState"
|
|
5677
5688
|
}
|
|
5678
5689
|
]
|
|
5690
|
+
},
|
|
5691
|
+
{
|
|
5692
|
+
"name": "onActiveDictionariesChanged",
|
|
5693
|
+
"type": "function",
|
|
5694
|
+
"description": "Fired when one or more dictionaries have been activated or deactivated.",
|
|
5695
|
+
"parameters": [
|
|
5696
|
+
{
|
|
5697
|
+
"name": "tab",
|
|
5698
|
+
"$ref": "tabs.Tab"
|
|
5699
|
+
},
|
|
5700
|
+
{
|
|
5701
|
+
"name": "dictionaries",
|
|
5702
|
+
"$ref": "ComposeDictionaries"
|
|
5703
|
+
}
|
|
5704
|
+
]
|
|
5679
5705
|
}
|
|
5680
5706
|
],
|
|
5681
5707
|
"functions": [
|
|
@@ -5835,6 +5861,55 @@
|
|
|
5835
5861
|
}
|
|
5836
5862
|
]
|
|
5837
5863
|
},
|
|
5864
|
+
{
|
|
5865
|
+
"name": "getActiveDictionaries",
|
|
5866
|
+
"type": "function",
|
|
5867
|
+
"async": "callback",
|
|
5868
|
+
"description": "Returns a :ref:`ComposeDictionaries` object, listing all installed dictionaries, including the information whether they are currently enabled or not.",
|
|
5869
|
+
"permissions": [
|
|
5870
|
+
"compose"
|
|
5871
|
+
],
|
|
5872
|
+
"parameters": [
|
|
5873
|
+
{
|
|
5874
|
+
"type": "integer",
|
|
5875
|
+
"name": "tabId",
|
|
5876
|
+
"minimum": 0
|
|
5877
|
+
},
|
|
5878
|
+
{
|
|
5879
|
+
"type": "function",
|
|
5880
|
+
"name": "callback",
|
|
5881
|
+
"optional": true,
|
|
5882
|
+
"parameters": [
|
|
5883
|
+
{
|
|
5884
|
+
"$ref": "ComposeDictionaries"
|
|
5885
|
+
}
|
|
5886
|
+
]
|
|
5887
|
+
}
|
|
5888
|
+
]
|
|
5889
|
+
},
|
|
5890
|
+
{
|
|
5891
|
+
"name": "setActiveDictionaries",
|
|
5892
|
+
"type": "function",
|
|
5893
|
+
"async": true,
|
|
5894
|
+
"description": "Updates the active dictionaries. Throws if the ``activeDictionaries`` array contains unknown or invalid language identifiers.",
|
|
5895
|
+
"permissions": [
|
|
5896
|
+
"compose"
|
|
5897
|
+
],
|
|
5898
|
+
"parameters": [
|
|
5899
|
+
{
|
|
5900
|
+
"type": "integer",
|
|
5901
|
+
"name": "tabId",
|
|
5902
|
+
"minimum": 0
|
|
5903
|
+
},
|
|
5904
|
+
{
|
|
5905
|
+
"type": "array",
|
|
5906
|
+
"items": {
|
|
5907
|
+
"type": "string"
|
|
5908
|
+
},
|
|
5909
|
+
"name": "activeDictionaries"
|
|
5910
|
+
}
|
|
5911
|
+
]
|
|
5912
|
+
},
|
|
5838
5913
|
{
|
|
5839
5914
|
"name": "listAttachments",
|
|
5840
5915
|
"type": "function",
|
|
@@ -5982,7 +6057,7 @@
|
|
|
5982
6057
|
"compose.send"
|
|
5983
6058
|
],
|
|
5984
6059
|
"type": "function",
|
|
5985
|
-
"description": "Sends the message currently being composed.",
|
|
6060
|
+
"description": "Sends the message currently being composed. If the send mode is not specified or set to ``default``, the message will be send directly if the user is online and placed in the users outbox otherwise. The returned Promise fulfills once the message has been successfully sent or placed in the user's outbox. Throws when the send process has been aborted by the user, by an :ref:`onBeforeSend` event or if there has been an error while sending the message to the outgoing mail server.",
|
|
5986
6061
|
"async": "callback",
|
|
5987
6062
|
"parameters": [
|
|
5988
6063
|
{
|
|
@@ -6007,12 +6082,90 @@
|
|
|
6007
6082
|
{
|
|
6008
6083
|
"type": "function",
|
|
6009
6084
|
"name": "callback",
|
|
6010
|
-
"description": "Returns false if the current state of the message composer prevented sending the message.",
|
|
6011
6085
|
"optional": true,
|
|
6012
6086
|
"parameters": [
|
|
6013
6087
|
{
|
|
6014
6088
|
"name": "return",
|
|
6015
|
-
"type": "
|
|
6089
|
+
"type": "object",
|
|
6090
|
+
"properties": {
|
|
6091
|
+
"mode": {
|
|
6092
|
+
"type": "string",
|
|
6093
|
+
"description": "The used send mode.",
|
|
6094
|
+
"enum": [
|
|
6095
|
+
"sendNow",
|
|
6096
|
+
"sendLater"
|
|
6097
|
+
]
|
|
6098
|
+
},
|
|
6099
|
+
"headerMessageId": {
|
|
6100
|
+
"type": "string",
|
|
6101
|
+
"description": "The header messageId of the outgoing message. Only included for actually sent messages.",
|
|
6102
|
+
"optional": true
|
|
6103
|
+
},
|
|
6104
|
+
"messages": {
|
|
6105
|
+
"type": "array",
|
|
6106
|
+
"items": {
|
|
6107
|
+
"$ref": "messages.MessageHeader"
|
|
6108
|
+
},
|
|
6109
|
+
"description": "Copies of the sent message. The number of created copies depends on the applied file carbon copy configuration (fcc)."
|
|
6110
|
+
}
|
|
6111
|
+
}
|
|
6112
|
+
}
|
|
6113
|
+
]
|
|
6114
|
+
}
|
|
6115
|
+
]
|
|
6116
|
+
},
|
|
6117
|
+
{
|
|
6118
|
+
"name": "saveMessage",
|
|
6119
|
+
"permissions": [
|
|
6120
|
+
"compose.save"
|
|
6121
|
+
],
|
|
6122
|
+
"type": "function",
|
|
6123
|
+
"description": "Saves the message currently being composed as a draft or as a template. If the save mode is not specified, the message will be saved as a draft. The returned Promise fulfills once the message has been successfully saved.",
|
|
6124
|
+
"async": "callback",
|
|
6125
|
+
"parameters": [
|
|
6126
|
+
{
|
|
6127
|
+
"name": "tabId",
|
|
6128
|
+
"type": "integer"
|
|
6129
|
+
},
|
|
6130
|
+
{
|
|
6131
|
+
"name": "options",
|
|
6132
|
+
"type": "object",
|
|
6133
|
+
"optional": true,
|
|
6134
|
+
"properties": {
|
|
6135
|
+
"mode": {
|
|
6136
|
+
"type": "string",
|
|
6137
|
+
"enum": [
|
|
6138
|
+
"draft",
|
|
6139
|
+
"template"
|
|
6140
|
+
]
|
|
6141
|
+
}
|
|
6142
|
+
}
|
|
6143
|
+
},
|
|
6144
|
+
{
|
|
6145
|
+
"type": "function",
|
|
6146
|
+
"name": "callback",
|
|
6147
|
+
"optional": true,
|
|
6148
|
+
"parameters": [
|
|
6149
|
+
{
|
|
6150
|
+
"name": "return",
|
|
6151
|
+
"type": "object",
|
|
6152
|
+
"properties": {
|
|
6153
|
+
"mode": {
|
|
6154
|
+
"type": "string",
|
|
6155
|
+
"description": "The used save mode.",
|
|
6156
|
+
"enum": [
|
|
6157
|
+
"draft",
|
|
6158
|
+
"template"
|
|
6159
|
+
]
|
|
6160
|
+
},
|
|
6161
|
+
"messages": {
|
|
6162
|
+
"type": "array",
|
|
6163
|
+
"items": {
|
|
6164
|
+
"$ref": "messages.MessageHeader"
|
|
6165
|
+
},
|
|
6166
|
+
"description": "The saved message(s). The number of saved messages depends on the applied file carbon copy configuration (fcc)."
|
|
6167
|
+
}
|
|
6168
|
+
}
|
|
6016
6169
|
}
|
|
6017
6170
|
]
|
|
6018
6171
|
}
|
|
@@ -8781,6 +8934,62 @@
|
|
|
8781
8934
|
]
|
|
8782
8935
|
}
|
|
8783
8936
|
]
|
|
8937
|
+
},
|
|
8938
|
+
{
|
|
8939
|
+
"name": "open",
|
|
8940
|
+
"type": "function",
|
|
8941
|
+
"description": "Opens a message in a new tab or in a new window.",
|
|
8942
|
+
"async": "callback",
|
|
8943
|
+
"parameters": [
|
|
8944
|
+
{
|
|
8945
|
+
"name": "openProperties",
|
|
8946
|
+
"type": "object",
|
|
8947
|
+
"description": "Settings for opening the message. Exactly one of messageId or headerMessageId must be specified.",
|
|
8948
|
+
"properties": {
|
|
8949
|
+
"messageId": {
|
|
8950
|
+
"type": "integer",
|
|
8951
|
+
"optional": true,
|
|
8952
|
+
"minimum": 1,
|
|
8953
|
+
"description": "The id of a message to be opened. Will throw, if the provided ``messageId`` is unknown or invalid."
|
|
8954
|
+
},
|
|
8955
|
+
"headerMessageId": {
|
|
8956
|
+
"type": "string",
|
|
8957
|
+
"optional": true,
|
|
8958
|
+
"description": "The headerMessageId of a message to be opened. Will throw, if the provided ``headerMessageId`` is unknown or invalid."
|
|
8959
|
+
},
|
|
8960
|
+
"location": {
|
|
8961
|
+
"type": "string",
|
|
8962
|
+
"enum": [
|
|
8963
|
+
"tab",
|
|
8964
|
+
"window"
|
|
8965
|
+
],
|
|
8966
|
+
"optional": true,
|
|
8967
|
+
"description": "Where to open the message. If not specified, the users preference is honoured."
|
|
8968
|
+
},
|
|
8969
|
+
"active": {
|
|
8970
|
+
"type": "boolean",
|
|
8971
|
+
"optional": true,
|
|
8972
|
+
"description": "Whether the new tab should become the active tab in the window. Only applicable to messages opened in tabs."
|
|
8973
|
+
},
|
|
8974
|
+
"windowId": {
|
|
8975
|
+
"type": "integer",
|
|
8976
|
+
"minimum": -2,
|
|
8977
|
+
"optional": true,
|
|
8978
|
+
"description": "The id of the window, where the new tab should be created. Defaults to the current window. Only applicable to messages opened in tabs."
|
|
8979
|
+
}
|
|
8980
|
+
}
|
|
8981
|
+
},
|
|
8982
|
+
{
|
|
8983
|
+
"type": "function",
|
|
8984
|
+
"name": "callback",
|
|
8985
|
+
"parameters": [
|
|
8986
|
+
{
|
|
8987
|
+
"name": "tab",
|
|
8988
|
+
"$ref": "tabs.Tab"
|
|
8989
|
+
}
|
|
8990
|
+
]
|
|
8991
|
+
}
|
|
8992
|
+
]
|
|
8784
8993
|
}
|
|
8785
8994
|
]
|
|
8786
8995
|
}
|
|
@@ -9402,7 +9611,8 @@
|
|
|
9402
9611
|
},
|
|
9403
9612
|
"folder": {
|
|
9404
9613
|
"$ref": "folders.MailFolder",
|
|
9405
|
-
"description": "The <permission>accountsRead</permission> permission is required for this property to be included."
|
|
9614
|
+
"description": "The <permission>accountsRead</permission> permission is required for this property to be included.",
|
|
9615
|
+
"optional": true
|
|
9406
9616
|
},
|
|
9407
9617
|
"headerMessageId": {
|
|
9408
9618
|
"type": "string",
|
|
@@ -10636,12 +10846,13 @@
|
|
|
10636
10846
|
{
|
|
10637
10847
|
"name": "create",
|
|
10638
10848
|
"type": "function",
|
|
10639
|
-
"description": "Creates a new tab.",
|
|
10849
|
+
"description": "Creates a new content tab. Use the :ref:`messageDisplay_api` to open messages.",
|
|
10640
10850
|
"async": "callback",
|
|
10641
10851
|
"parameters": [
|
|
10642
10852
|
{
|
|
10643
10853
|
"type": "object",
|
|
10644
10854
|
"name": "createProperties",
|
|
10855
|
+
"description": "Properties for the new tab. Defaults to an empty tab, if no ``url`` is provided.",
|
|
10645
10856
|
"properties": {
|
|
10646
10857
|
"windowId": {
|
|
10647
10858
|
"type": "integer",
|
|
@@ -10658,7 +10869,7 @@
|
|
|
10658
10869
|
"url": {
|
|
10659
10870
|
"type": "string",
|
|
10660
10871
|
"optional": true,
|
|
10661
|
-
"description": "The URL to navigate the tab to initially. Fully-qualified URLs must include a scheme (i.e. 'http://www.google.com', not 'www.google.com'). Relative URLs will be relative to the current page within the extension.
|
|
10872
|
+
"description": "The URL to navigate the tab to initially. Fully-qualified URLs must include a scheme (i.e. 'http://www.google.com', not 'www.google.com'). Relative URLs will be relative to the current page within the extension."
|
|
10662
10873
|
},
|
|
10663
10874
|
"active": {
|
|
10664
10875
|
"type": "boolean",
|
|
@@ -10831,16 +11042,17 @@
|
|
|
10831
11042
|
{
|
|
10832
11043
|
"type": "object",
|
|
10833
11044
|
"name": "updateProperties",
|
|
11045
|
+
"description": "Properties which should to be updated.",
|
|
10834
11046
|
"properties": {
|
|
10835
11047
|
"url": {
|
|
10836
11048
|
"type": "string",
|
|
10837
11049
|
"optional": true,
|
|
10838
|
-
"description": "A URL to navigate the tab to."
|
|
11050
|
+
"description": "A URL to navigate the tab to. Only applicable for ``content`` tabs and active ``mail`` tabs."
|
|
10839
11051
|
},
|
|
10840
11052
|
"active": {
|
|
10841
11053
|
"type": "boolean",
|
|
10842
11054
|
"optional": true,
|
|
10843
|
-
"description": "
|
|
11055
|
+
"description": "Set this to true, if the tab should be active. Does not affect whether the window is focused (see :ref:`windows.update`). Setting this to false has no effect."
|
|
10844
11056
|
}
|
|
10845
11057
|
}
|
|
10846
11058
|
},
|
|
@@ -2611,6 +2611,7 @@
|
|
|
2611
2611
|
},
|
|
2612
2612
|
"onclick": {
|
|
2613
2613
|
"type": "function",
|
|
2614
|
+
"max_manifest_version": 2,
|
|
2614
2615
|
"optional": true,
|
|
2615
2616
|
"description": "A function that will be called back when the menu item is clicked. Event pages cannot use this; instead, they should register a listener for $(ref:contextMenus.onClicked).",
|
|
2616
2617
|
"parameters": [
|
|
@@ -2766,6 +2767,7 @@
|
|
|
2766
2767
|
},
|
|
2767
2768
|
"onclick": {
|
|
2768
2769
|
"type": "function",
|
|
2770
|
+
"max_manifest_version": 2,
|
|
2769
2771
|
"optional": "omit-key-if-missing",
|
|
2770
2772
|
"parameters": [
|
|
2771
2773
|
{
|
|
@@ -4343,12 +4345,6 @@
|
|
|
4343
4345
|
"optional": true,
|
|
4344
4346
|
"description": "The ID of the tab that opened this tab, if any. This property is only present if the opener tab still exists."
|
|
4345
4347
|
},
|
|
4346
|
-
"selected": {
|
|
4347
|
-
"type": "boolean",
|
|
4348
|
-
"description": "Whether the tab is selected.",
|
|
4349
|
-
"deprecated": "Please use $(ref:tabs.Tab.highlighted).",
|
|
4350
|
-
"unsupported": true
|
|
4351
|
-
},
|
|
4352
4348
|
"highlighted": {
|
|
4353
4349
|
"type": "boolean",
|
|
4354
4350
|
"description": "Whether the tab is highlighted. Works as an alias of active"
|
|
@@ -4802,36 +4798,6 @@
|
|
|
4802
4798
|
"description": "A port that can be used to communicate with the content scripts running in the specified tab. The port's $(ref:runtime.Port) event is fired if the tab closes or does not exist. "
|
|
4803
4799
|
}
|
|
4804
4800
|
},
|
|
4805
|
-
{
|
|
4806
|
-
"name": "sendRequest",
|
|
4807
|
-
"deprecated": "Please use $(ref:runtime.sendMessage).",
|
|
4808
|
-
"unsupported": true,
|
|
4809
|
-
"type": "function",
|
|
4810
|
-
"description": "Sends a single request to the content script(s) in the specified tab, with an optional callback to run when a response is sent back. The $(ref:extension.onRequest) event is fired in each content script running in the specified tab for the current extension.",
|
|
4811
|
-
"parameters": [
|
|
4812
|
-
{
|
|
4813
|
-
"type": "integer",
|
|
4814
|
-
"name": "tabId",
|
|
4815
|
-
"minimum": 0
|
|
4816
|
-
},
|
|
4817
|
-
{
|
|
4818
|
-
"type": "any",
|
|
4819
|
-
"name": "request"
|
|
4820
|
-
},
|
|
4821
|
-
{
|
|
4822
|
-
"type": "function",
|
|
4823
|
-
"name": "responseCallback",
|
|
4824
|
-
"optional": true,
|
|
4825
|
-
"parameters": [
|
|
4826
|
-
{
|
|
4827
|
-
"name": "response",
|
|
4828
|
-
"type": "any",
|
|
4829
|
-
"description": "The JSON response object sent by the handler of the request. If an error occurs while connecting to the specified tab, the callback will be called with no arguments and $(ref:runtime.lastError) will be set to the error message."
|
|
4830
|
-
}
|
|
4831
|
-
]
|
|
4832
|
-
}
|
|
4833
|
-
]
|
|
4834
|
-
},
|
|
4835
4801
|
{
|
|
4836
4802
|
"name": "sendMessage",
|
|
4837
4803
|
"type": "function",
|
|
@@ -4874,63 +4840,6 @@
|
|
|
4874
4840
|
}
|
|
4875
4841
|
]
|
|
4876
4842
|
},
|
|
4877
|
-
{
|
|
4878
|
-
"name": "getSelected",
|
|
4879
|
-
"deprecated": "Please use $(ref:tabs.query) <code>{active: true}</code>.",
|
|
4880
|
-
"unsupported": true,
|
|
4881
|
-
"type": "function",
|
|
4882
|
-
"description": "Gets the tab that is selected in the specified window.",
|
|
4883
|
-
"async": "callback",
|
|
4884
|
-
"parameters": [
|
|
4885
|
-
{
|
|
4886
|
-
"type": "integer",
|
|
4887
|
-
"name": "windowId",
|
|
4888
|
-
"minimum": -2,
|
|
4889
|
-
"optional": true,
|
|
4890
|
-
"description": "Defaults to the $(topic:current-window)[current window]."
|
|
4891
|
-
},
|
|
4892
|
-
{
|
|
4893
|
-
"type": "function",
|
|
4894
|
-
"name": "callback",
|
|
4895
|
-
"parameters": [
|
|
4896
|
-
{
|
|
4897
|
-
"name": "tab",
|
|
4898
|
-
"$ref": "Tab"
|
|
4899
|
-
}
|
|
4900
|
-
]
|
|
4901
|
-
}
|
|
4902
|
-
]
|
|
4903
|
-
},
|
|
4904
|
-
{
|
|
4905
|
-
"name": "getAllInWindow",
|
|
4906
|
-
"deprecated": "Please use $(ref:tabs.query) <code>{windowId: windowId}</code>.",
|
|
4907
|
-
"unsupported": true,
|
|
4908
|
-
"type": "function",
|
|
4909
|
-
"description": "Gets details about all tabs in the specified window.",
|
|
4910
|
-
"async": "callback",
|
|
4911
|
-
"parameters": [
|
|
4912
|
-
{
|
|
4913
|
-
"type": "integer",
|
|
4914
|
-
"name": "windowId",
|
|
4915
|
-
"minimum": -2,
|
|
4916
|
-
"optional": true,
|
|
4917
|
-
"description": "Defaults to the $(topic:current-window)[current window]."
|
|
4918
|
-
},
|
|
4919
|
-
{
|
|
4920
|
-
"type": "function",
|
|
4921
|
-
"name": "callback",
|
|
4922
|
-
"parameters": [
|
|
4923
|
-
{
|
|
4924
|
-
"name": "tabs",
|
|
4925
|
-
"type": "array",
|
|
4926
|
-
"items": {
|
|
4927
|
-
"$ref": "Tab"
|
|
4928
|
-
}
|
|
4929
|
-
}
|
|
4930
|
-
]
|
|
4931
|
-
}
|
|
4932
|
-
]
|
|
4933
|
-
},
|
|
4934
4843
|
{
|
|
4935
4844
|
"name": "create",
|
|
4936
4845
|
"type": "function",
|
|
@@ -4963,13 +4872,6 @@
|
|
|
4963
4872
|
"optional": true,
|
|
4964
4873
|
"description": "Whether the tab should become the active tab in the window. Does not affect whether the window is focused (see $(ref:windows.update)). Defaults to <var>true</var>."
|
|
4965
4874
|
},
|
|
4966
|
-
"selected": {
|
|
4967
|
-
"deprecated": "Please use <em>active</em>.",
|
|
4968
|
-
"unsupported": true,
|
|
4969
|
-
"type": "boolean",
|
|
4970
|
-
"optional": true,
|
|
4971
|
-
"description": "Whether the tab should become the selected tab in the window. Defaults to <var>true</var>"
|
|
4972
|
-
},
|
|
4973
4875
|
"pinned": {
|
|
4974
4876
|
"type": "boolean",
|
|
4975
4877
|
"optional": true,
|
|
@@ -5319,13 +5221,6 @@
|
|
|
5319
5221
|
"optional": true,
|
|
5320
5222
|
"description": "Adds or removes the tab from the current selection."
|
|
5321
5223
|
},
|
|
5322
|
-
"selected": {
|
|
5323
|
-
"unsupported": true,
|
|
5324
|
-
"deprecated": "Please use <em>highlighted</em>.",
|
|
5325
|
-
"type": "boolean",
|
|
5326
|
-
"optional": true,
|
|
5327
|
-
"description": "Whether the tab should be selected."
|
|
5328
|
-
},
|
|
5329
5224
|
"pinned": {
|
|
5330
5225
|
"type": "boolean",
|
|
5331
5226
|
"optional": true,
|
|
@@ -5639,6 +5534,7 @@
|
|
|
5639
5534
|
{
|
|
5640
5535
|
"name": "executeScript",
|
|
5641
5536
|
"type": "function",
|
|
5537
|
+
"max_manifest_version": 2,
|
|
5642
5538
|
"description": "Injects JavaScript code into a page. For details, see the $(topic:content_scripts)[programmatic injection] section of the content scripts doc.",
|
|
5643
5539
|
"async": "callback",
|
|
5644
5540
|
"parameters": [
|
|
@@ -5676,6 +5572,7 @@
|
|
|
5676
5572
|
{
|
|
5677
5573
|
"name": "insertCSS",
|
|
5678
5574
|
"type": "function",
|
|
5575
|
+
"max_manifest_version": 2,
|
|
5679
5576
|
"description": "Injects CSS into a page. For details, see the $(topic:content_scripts)[programmatic injection] section of the content scripts doc.",
|
|
5680
5577
|
"async": "callback",
|
|
5681
5578
|
"parameters": [
|
|
@@ -5703,6 +5600,7 @@
|
|
|
5703
5600
|
{
|
|
5704
5601
|
"name": "removeCSS",
|
|
5705
5602
|
"type": "function",
|
|
5603
|
+
"max_manifest_version": 2,
|
|
5706
5604
|
"description": "Removes injected CSS from a page. For details, see the $(topic:content_scripts)[programmatic injection] section of the content scripts doc.",
|
|
5707
5605
|
"async": "callback",
|
|
5708
5606
|
"parameters": [
|
|
@@ -6170,58 +6068,6 @@
|
|
|
6170
6068
|
}
|
|
6171
6069
|
]
|
|
6172
6070
|
},
|
|
6173
|
-
{
|
|
6174
|
-
"name": "onSelectionChanged",
|
|
6175
|
-
"deprecated": "Please use $(ref:tabs.onActivated).",
|
|
6176
|
-
"unsupported": true,
|
|
6177
|
-
"type": "function",
|
|
6178
|
-
"description": "Fires when the selected tab in a window changes.",
|
|
6179
|
-
"parameters": [
|
|
6180
|
-
{
|
|
6181
|
-
"type": "integer",
|
|
6182
|
-
"name": "tabId",
|
|
6183
|
-
"minimum": 0,
|
|
6184
|
-
"description": "The ID of the tab that has become active."
|
|
6185
|
-
},
|
|
6186
|
-
{
|
|
6187
|
-
"type": "object",
|
|
6188
|
-
"name": "selectInfo",
|
|
6189
|
-
"properties": {
|
|
6190
|
-
"windowId": {
|
|
6191
|
-
"type": "integer",
|
|
6192
|
-
"minimum": 0,
|
|
6193
|
-
"description": "The ID of the window the selected tab changed inside of."
|
|
6194
|
-
}
|
|
6195
|
-
}
|
|
6196
|
-
}
|
|
6197
|
-
]
|
|
6198
|
-
},
|
|
6199
|
-
{
|
|
6200
|
-
"name": "onActiveChanged",
|
|
6201
|
-
"deprecated": "Please use $(ref:tabs.onActivated).",
|
|
6202
|
-
"unsupported": true,
|
|
6203
|
-
"type": "function",
|
|
6204
|
-
"description": "Fires when the selected tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to $(ref:tabs.onUpdated) events to be notified when a URL is set.",
|
|
6205
|
-
"parameters": [
|
|
6206
|
-
{
|
|
6207
|
-
"type": "integer",
|
|
6208
|
-
"name": "tabId",
|
|
6209
|
-
"minimum": 0,
|
|
6210
|
-
"description": "The ID of the tab that has become active."
|
|
6211
|
-
},
|
|
6212
|
-
{
|
|
6213
|
-
"type": "object",
|
|
6214
|
-
"name": "selectInfo",
|
|
6215
|
-
"properties": {
|
|
6216
|
-
"windowId": {
|
|
6217
|
-
"type": "integer",
|
|
6218
|
-
"minimum": 0,
|
|
6219
|
-
"description": "The ID of the window the selected tab changed inside of."
|
|
6220
|
-
}
|
|
6221
|
-
}
|
|
6222
|
-
}
|
|
6223
|
-
]
|
|
6224
|
-
},
|
|
6225
6071
|
{
|
|
6226
6072
|
"name": "onActivated",
|
|
6227
6073
|
"type": "function",
|
|
@@ -6251,34 +6097,6 @@
|
|
|
6251
6097
|
}
|
|
6252
6098
|
]
|
|
6253
6099
|
},
|
|
6254
|
-
{
|
|
6255
|
-
"name": "onHighlightChanged",
|
|
6256
|
-
"deprecated": "Please use $(ref:tabs.onHighlighted).",
|
|
6257
|
-
"unsupported": true,
|
|
6258
|
-
"type": "function",
|
|
6259
|
-
"description": "Fired when the highlighted or selected tabs in a window changes.",
|
|
6260
|
-
"parameters": [
|
|
6261
|
-
{
|
|
6262
|
-
"type": "object",
|
|
6263
|
-
"name": "selectInfo",
|
|
6264
|
-
"properties": {
|
|
6265
|
-
"windowId": {
|
|
6266
|
-
"type": "integer",
|
|
6267
|
-
"minimum": 0,
|
|
6268
|
-
"description": "The window whose tabs changed."
|
|
6269
|
-
},
|
|
6270
|
-
"tabIds": {
|
|
6271
|
-
"type": "array",
|
|
6272
|
-
"items": {
|
|
6273
|
-
"type": "integer",
|
|
6274
|
-
"minimum": 0
|
|
6275
|
-
},
|
|
6276
|
-
"description": "All highlighted tabs in the window."
|
|
6277
|
-
}
|
|
6278
|
-
}
|
|
6279
|
-
}
|
|
6280
|
-
]
|
|
6281
|
-
},
|
|
6282
6100
|
{
|
|
6283
6101
|
"name": "onHighlighted",
|
|
6284
6102
|
"type": "function",
|
|
@@ -8982,6 +8800,7 @@
|
|
|
8982
8800
|
"content_scripts.json": [
|
|
8983
8801
|
{
|
|
8984
8802
|
"namespace": "contentScripts",
|
|
8803
|
+
"max_manifest_version": 2,
|
|
8985
8804
|
"types": [
|
|
8986
8805
|
{
|
|
8987
8806
|
"id": "RegisteredContentScriptOptions",
|
|
@@ -11331,7 +11150,6 @@
|
|
|
11331
11150
|
{
|
|
11332
11151
|
"name": "getBackgroundPage",
|
|
11333
11152
|
"type": "function",
|
|
11334
|
-
"max_manifest_version": 2,
|
|
11335
11153
|
"description": "Returns the JavaScript 'window' object for the background page running inside the current extension. Returns null if the extension has no background page.",
|
|
11336
11154
|
"parameters": [],
|
|
11337
11155
|
"returns": {
|
|
@@ -15951,6 +15769,11 @@
|
|
|
15951
15769
|
"world": {
|
|
15952
15770
|
"$ref": "ExecutionWorld",
|
|
15953
15771
|
"optional": true
|
|
15772
|
+
},
|
|
15773
|
+
"injectImmediately": {
|
|
15774
|
+
"type": "boolean",
|
|
15775
|
+
"optional": true,
|
|
15776
|
+
"description": "Whether the injection should be triggered in the target as soon as possible (but not necessarily prior to page load)."
|
|
15954
15777
|
}
|
|
15955
15778
|
}
|
|
15956
15779
|
},
|
|
@@ -16479,6 +16302,23 @@
|
|
|
16479
16302
|
}
|
|
16480
16303
|
]
|
|
16481
16304
|
}
|
|
16305
|
+
],
|
|
16306
|
+
"events": [
|
|
16307
|
+
{
|
|
16308
|
+
"name": "onChanged",
|
|
16309
|
+
"type": "function",
|
|
16310
|
+
"description": "Fired when one or more items change.",
|
|
16311
|
+
"parameters": [
|
|
16312
|
+
{
|
|
16313
|
+
"name": "changes",
|
|
16314
|
+
"type": "object",
|
|
16315
|
+
"additionalProperties": {
|
|
16316
|
+
"$ref": "StorageChange"
|
|
16317
|
+
},
|
|
16318
|
+
"description": "Object mapping each key that changed to its corresponding $(ref:storage.StorageChange) for that item."
|
|
16319
|
+
}
|
|
16320
|
+
]
|
|
16321
|
+
}
|
|
16482
16322
|
]
|
|
16483
16323
|
},
|
|
16484
16324
|
{
|
|
@@ -16635,6 +16475,23 @@
|
|
|
16635
16475
|
}
|
|
16636
16476
|
]
|
|
16637
16477
|
}
|
|
16478
|
+
],
|
|
16479
|
+
"events": [
|
|
16480
|
+
{
|
|
16481
|
+
"name": "onChanged",
|
|
16482
|
+
"type": "function",
|
|
16483
|
+
"description": "Fired when one or more items change.",
|
|
16484
|
+
"parameters": [
|
|
16485
|
+
{
|
|
16486
|
+
"name": "changes",
|
|
16487
|
+
"type": "object",
|
|
16488
|
+
"additionalProperties": {
|
|
16489
|
+
"$ref": "StorageChange"
|
|
16490
|
+
},
|
|
16491
|
+
"description": "Object mapping each key that changed to its corresponding $(ref:storage.StorageChange) for that item."
|
|
16492
|
+
}
|
|
16493
|
+
]
|
|
16494
|
+
}
|
|
16638
16495
|
]
|
|
16639
16496
|
}
|
|
16640
16497
|
],
|
|
@@ -18210,6 +18067,7 @@
|
|
|
18210
18067
|
"properties": {
|
|
18211
18068
|
"user_scripts": {
|
|
18212
18069
|
"type": "object",
|
|
18070
|
+
"max_manifest_version": 2,
|
|
18213
18071
|
"optional": true,
|
|
18214
18072
|
"properties": {
|
|
18215
18073
|
"api_script": {
|
|
@@ -18227,6 +18085,7 @@
|
|
|
18227
18085
|
},
|
|
18228
18086
|
{
|
|
18229
18087
|
"namespace": "userScripts",
|
|
18088
|
+
"max_manifest_version": 2,
|
|
18230
18089
|
"permissions": [
|
|
18231
18090
|
"manifest:user_scripts"
|
|
18232
18091
|
],
|
|
@@ -18350,6 +18209,7 @@
|
|
|
18350
18209
|
"user_scripts_content.json": [
|
|
18351
18210
|
{
|
|
18352
18211
|
"namespace": "userScripts",
|
|
18212
|
+
"max_manifest_version": 2,
|
|
18353
18213
|
"permissions": [
|
|
18354
18214
|
"manifest:user_scripts"
|
|
18355
18215
|
],
|