webext-schema 5.1.14 → 5.1.16

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.
@@ -111,6 +111,31 @@
111
111
  "type": "string"
112
112
  }
113
113
  ]
114
+ },
115
+ {
116
+ "name": "onChanged",
117
+ "description": "Fired when a registered command's shortcut is changed.",
118
+ "type": "function",
119
+ "parameters": [
120
+ {
121
+ "type": "object",
122
+ "name": "changeInfo",
123
+ "properties": {
124
+ "name": {
125
+ "type": "string",
126
+ "description": "The name of the shortcut."
127
+ },
128
+ "newShortcut": {
129
+ "type": "string",
130
+ "description": "The new shortcut active for this command, or blank if not active."
131
+ },
132
+ "oldShortcut": {
133
+ "type": "string",
134
+ "description": "The old shortcut which is no longer active for this command, or blank if the shortcut was previously inactive."
135
+ }
136
+ }
137
+ }
138
+ ]
114
139
  }
115
140
  ],
116
141
  "functions": [
@@ -3067,7 +3092,8 @@
3067
3092
  {
3068
3093
  "type": "string",
3069
3094
  "enum": [
3070
- "addressBooks"
3095
+ "addressBooks",
3096
+ "sensitiveDataUpload"
3071
3097
  ]
3072
3098
  }
3073
3099
  ]
@@ -4052,104 +4078,91 @@
4052
4078
  {
4053
4079
  "namespace": "manifest",
4054
4080
  "types": [
4055
- {
4056
- "id": "ActionManifest",
4057
- "type": "object",
4058
- "additionalProperties": {
4059
- "$ref": "UnrecognizedProperty"
4060
- },
4061
- "properties": {
4062
- "default_label": {
4063
- "type": "string",
4064
- "description": "The label of the action button, defaults to its title. Can be set to an empty string to not display any label. If the containing toolbar is configured to display text only, the title will be used as fallback.",
4065
- "optional": true,
4066
- "preprocess": "localize"
4067
- },
4068
- "default_title": {
4069
- "type": "string",
4070
- "description": "The title of the action button. This shows up in the tooltip and the label. Defaults to the add-on name.",
4071
- "optional": true,
4072
- "preprocess": "localize"
4073
- },
4074
- "default_icon": {
4075
- "$ref": "IconPath",
4076
- "description": "The paths to one or more icons for the action button.",
4077
- "optional": true
4078
- },
4079
- "theme_icons": {
4080
- "type": "array",
4081
- "optional": true,
4082
- "minItems": 1,
4083
- "items": {
4084
- "$ref": "ThemeIcons"
4085
- },
4086
- "description": "Specifies dark and light icons to be used with themes. The ``light`` icon is used on dark backgrounds and vice versa. **Note:** The default theme uses the ``default_icon`` for light backgrounds (if specified)."
4087
- },
4088
- "default_popup": {
4089
- "type": "string",
4090
- "format": "relativeUrl",
4091
- "optional": true,
4092
- "description": "The html document to be opened as a popup when the user clicks on the action button.",
4093
- "preprocess": "localize"
4094
- },
4095
- "browser_style": {
4096
- "type": "boolean",
4097
- "optional": true,
4098
- "description": "Enable browser styles. See the `MDN documentation on browser styles <|link-mdn-browser-styles|>`__ for more information.",
4099
- "default": false
4100
- },
4101
- "default_area": {
4102
- "description": "Defines the location the action button will appear. This will always behave like <value>maintoolbar</value>. The <value>tabstoolbar</value> area should no longer be used.",
4103
- "type": "string",
4104
- "enum": [
4105
- "maintoolbar",
4106
- "tabstoolbar"
4107
- ],
4108
- "optional": true
4109
- },
4110
- "default_windows": {
4111
- "description": "Defines the windows, the action button should appear in. Defaults to showing it only in the <value>normal</value> Thunderbird window, but can also be shown in the <value>messageDisplay</value> window.",
4112
- "type": "array",
4113
- "items": {
4114
- "type": "string",
4115
- "enum": [
4116
- "normal",
4117
- "messageDisplay"
4118
- ]
4119
- },
4120
- "default": [
4121
- "normal"
4122
- ],
4123
- "optional": true
4124
- },
4125
- "allowed_spaces": {
4126
- "description": "Defines the spaces, in which the action button can appear in the toolbar of the normal Thunderbird window. Defaults to only allowing the action in the <value>mail</value> space. The <value>default</value> space is for tabs that don't belong to any space. If this is an empty array, the action button is shown in all spaces.",
4127
- "type": "array",
4128
- "items": {
4129
- "type": "string",
4130
- "enum": [
4131
- "mail",
4132
- "addressbook",
4133
- "calendar",
4134
- "tasks",
4135
- "chat",
4136
- "settings",
4137
- "default"
4138
- ]
4139
- },
4140
- "default": [
4141
- "mail"
4142
- ],
4143
- "optional": true
4144
- }
4145
- }
4146
- },
4147
4081
  {
4148
4082
  "$extend": "WebExtensionManifest",
4149
4083
  "properties": {
4150
4084
  "action": {
4151
4085
  "min_manifest_version": 3,
4152
- "$ref": "ActionManifest",
4086
+ "type": "object",
4087
+ "additionalProperties": {
4088
+ "$ref": "UnrecognizedProperty"
4089
+ },
4090
+ "properties": {
4091
+ "default_label": {
4092
+ "type": "string",
4093
+ "description": "The label of the action button, defaults to its title. Can be set to an empty string to not display any label. If the containing toolbar is configured to display text only, the title will be used as fallback.",
4094
+ "optional": true,
4095
+ "preprocess": "localize"
4096
+ },
4097
+ "default_title": {
4098
+ "type": "string",
4099
+ "description": "The title of the action button. This shows up in the tooltip and the label. Defaults to the add-on name.",
4100
+ "optional": true,
4101
+ "preprocess": "localize"
4102
+ },
4103
+ "default_icon": {
4104
+ "$ref": "IconPath",
4105
+ "description": "The paths to one or more icons for the action button.",
4106
+ "optional": true
4107
+ },
4108
+ "theme_icons": {
4109
+ "type": "array",
4110
+ "optional": true,
4111
+ "minItems": 1,
4112
+ "items": {
4113
+ "$ref": "ThemeIcons"
4114
+ },
4115
+ "description": "Specifies dark and light icons to be used with themes. The ``light`` icon is used on dark backgrounds and vice versa. **Note:** The default theme uses the ``default_icon`` for light backgrounds (if specified)."
4116
+ },
4117
+ "default_popup": {
4118
+ "type": "string",
4119
+ "format": "relativeUrl",
4120
+ "optional": true,
4121
+ "description": "The html document to be opened as a popup when the user clicks on the action button.",
4122
+ "preprocess": "localize"
4123
+ },
4124
+ "browser_style": {
4125
+ "type": "boolean",
4126
+ "optional": true,
4127
+ "description": "Enable browser styles. See the `MDN documentation on browser styles <|link-mdn-browser-styles|>`__ for more information.",
4128
+ "default": false
4129
+ },
4130
+ "default_windows": {
4131
+ "description": "Defines the windows, the action button should appear in. Defaults to showing it only in the <value>normal</value> Thunderbird window, but can also be shown in the <value>messageDisplay</value> window.",
4132
+ "type": "array",
4133
+ "items": {
4134
+ "type": "string",
4135
+ "enum": [
4136
+ "normal",
4137
+ "messageDisplay"
4138
+ ]
4139
+ },
4140
+ "default": [
4141
+ "normal"
4142
+ ],
4143
+ "optional": true
4144
+ },
4145
+ "allowed_spaces": {
4146
+ "description": "Defines for which spaces the action button will be added to Thunderbird's unified toolbar. Defaults to only allowing the action in the <value>mail</value> space. The <value>default</value> space is for tabs that don't belong to any space. If this is an empty array, the action button is shown in all spaces.",
4147
+ "type": "array",
4148
+ "items": {
4149
+ "type": "string",
4150
+ "enum": [
4151
+ "mail",
4152
+ "addressbook",
4153
+ "calendar",
4154
+ "tasks",
4155
+ "chat",
4156
+ "settings",
4157
+ "default"
4158
+ ]
4159
+ },
4160
+ "default": [
4161
+ "mail"
4162
+ ],
4163
+ "optional": true
4164
+ }
4165
+ },
4153
4166
  "optional": true
4154
4167
  }
4155
4168
  }
@@ -4159,7 +4172,95 @@
4159
4172
  "properties": {
4160
4173
  "browser_action": {
4161
4174
  "max_manifest_version": 2,
4162
- "$ref": "ActionManifest",
4175
+ "type": "object",
4176
+ "additionalProperties": {
4177
+ "$ref": "UnrecognizedProperty"
4178
+ },
4179
+ "properties": {
4180
+ "default_label": {
4181
+ "type": "string",
4182
+ "description": "The label of the browserAction button, defaults to its title. Can be set to an empty string to not display any label. If the containing toolbar is configured to display text only, the title will be used as fallback.",
4183
+ "optional": true,
4184
+ "preprocess": "localize"
4185
+ },
4186
+ "default_title": {
4187
+ "type": "string",
4188
+ "description": "The title of the browserAction button. This shows up in the tooltip and the label. Defaults to the add-on name.",
4189
+ "optional": true,
4190
+ "preprocess": "localize"
4191
+ },
4192
+ "default_icon": {
4193
+ "$ref": "IconPath",
4194
+ "description": "The paths to one or more icons for the browserAction button.",
4195
+ "optional": true
4196
+ },
4197
+ "theme_icons": {
4198
+ "type": "array",
4199
+ "optional": true,
4200
+ "minItems": 1,
4201
+ "items": {
4202
+ "$ref": "ThemeIcons"
4203
+ },
4204
+ "description": "Specifies dark and light icons to be used with themes. The ``light`` icon is used on dark backgrounds and vice versa. **Note:** The default theme uses the ``default_icon`` for light backgrounds (if specified)."
4205
+ },
4206
+ "default_popup": {
4207
+ "type": "string",
4208
+ "format": "relativeUrl",
4209
+ "optional": true,
4210
+ "description": "The html document to be opened as a popup when the user clicks on the browserAction button.",
4211
+ "preprocess": "localize"
4212
+ },
4213
+ "browser_style": {
4214
+ "type": "boolean",
4215
+ "optional": true,
4216
+ "description": "Enable browser styles. See the `MDN documentation on browser styles <|link-mdn-browser-styles|>`__ for more information.",
4217
+ "default": false
4218
+ },
4219
+ "default_area": {
4220
+ "description": "Defines the location the browserAction button will appear. Deprecated and ignored. Replaced by ``allowed_spaces``",
4221
+ "type": "string",
4222
+ "enum": [
4223
+ "maintoolbar",
4224
+ "tabstoolbar"
4225
+ ],
4226
+ "optional": true
4227
+ },
4228
+ "default_windows": {
4229
+ "description": "Defines the windows, the browserAction button should appear in. Defaults to showing it only in the <value>normal</value> Thunderbird window, but can also be shown in the <value>messageDisplay</value> window.",
4230
+ "type": "array",
4231
+ "items": {
4232
+ "type": "string",
4233
+ "enum": [
4234
+ "normal",
4235
+ "messageDisplay"
4236
+ ]
4237
+ },
4238
+ "default": [
4239
+ "normal"
4240
+ ],
4241
+ "optional": true
4242
+ },
4243
+ "allowed_spaces": {
4244
+ "description": "Defines for which spaces the browserAction button will be added to Thunderbird's unified toolbar. Defaults to only allowing the browserAction in the <value>mail</value> space. The <value>default</value> space is for tabs that don't belong to any space. If this is an empty array, the browserAction button is shown in all spaces.",
4245
+ "type": "array",
4246
+ "items": {
4247
+ "type": "string",
4248
+ "enum": [
4249
+ "mail",
4250
+ "addressbook",
4251
+ "calendar",
4252
+ "tasks",
4253
+ "chat",
4254
+ "settings",
4255
+ "default"
4256
+ ]
4257
+ },
4258
+ "default": [
4259
+ "mail"
4260
+ ],
4261
+ "optional": true
4262
+ }
4263
+ },
4163
4264
  "optional": true
4164
4265
  }
4165
4266
  }
@@ -4168,7 +4269,7 @@
4168
4269
  },
4169
4270
  {
4170
4271
  "namespace": "action",
4171
- "description": "Use an action to put a button in the mail window toolbar. In addition to its icon, an action button can also have a tooltip, a badge, and a popup.",
4272
+ "description": "Use the action API to add a button to Thunderbird's unified toolbar. In addition to its icon, an action button can also have a tooltip, a badge, and a popup.",
4172
4273
  "permissions": [
4173
4274
  "manifest:action",
4174
4275
  "manifest:browser_action"
@@ -4827,6 +4928,7 @@
4827
4928
  },
4828
4929
  {
4829
4930
  "namespace": "browserAction",
4931
+ "description": "Use the browserAction API to add a button to Thunderbird's unified toolbar. In addition to its icon, a browserAction button can also have a tooltip, a badge, and a popup.",
4830
4932
  "permissions": [
4831
4933
  "manifest:action",
4832
4934
  "manifest:browser_action"
@@ -5691,17 +5793,16 @@
5691
5793
  "optional": true
5692
5794
  },
5693
5795
  "newsgroups": {
5796
+ "description": "A single newsgroup name or an array of newsgroup names.",
5694
5797
  "choices": [
5695
5798
  {
5696
- "type": "string",
5697
- "description": "A newsgroup name."
5799
+ "type": "string"
5698
5800
  },
5699
5801
  {
5700
5802
  "type": "array",
5701
5803
  "items": {
5702
5804
  "type": "string"
5703
- },
5704
- "description": "An array of newsgroup names."
5805
+ }
5705
5806
  }
5706
5807
  ],
5707
5808
  "optional": true
@@ -7164,7 +7265,7 @@
7164
7265
  {
7165
7266
  "name": "enable",
7166
7267
  "type": "function",
7167
- "description": "Enables the composeAction button for a tab. By default, a composeAction button is enabled.",
7268
+ "description": "Enables the composeAction button for a specific tab (if a ``tabId`` is provided), or for all tabs which do not have a custom enable state. Once the enable state of a tab has been updated individually, all further changes to its state have to be done individually as well. By default, a composeAction button is enabled.",
7168
7269
  "async": "callback",
7169
7270
  "parameters": [
7170
7271
  {
@@ -7185,7 +7286,7 @@
7185
7286
  {
7186
7287
  "name": "disable",
7187
7288
  "type": "function",
7188
- "description": "Disables the composeAction button for a tab.",
7289
+ "description": "Disables the composeAction button for a specific tab (if a ``tabId`` is provided), or for all tabs which do not have a custom enable state. Once the enable state of a tab has been updated individually, all further changes to its state have to be done individually as well.",
7189
7290
  "async": "callback",
7190
7291
  "parameters": [
7191
7292
  {
@@ -7303,7 +7404,8 @@
7303
7404
  {
7304
7405
  "type": "string",
7305
7406
  "enum": [
7306
- "messagesModify"
7407
+ "messagesModify",
7408
+ "sensitiveDataUpload"
7307
7409
  ]
7308
7410
  }
7309
7411
  ]
@@ -8266,6 +8368,8 @@
8266
8368
  {
8267
8369
  "type": "object",
8268
8370
  "name": "queryInfo",
8371
+ "optional": true,
8372
+ "default": {},
8269
8373
  "properties": {
8270
8374
  "active": {
8271
8375
  "type": "boolean",
@@ -8366,7 +8470,7 @@
8366
8470
  "properties": {
8367
8471
  "displayedFolder": {
8368
8472
  "$ref": "folders.MailFolder",
8369
- "description": "Sets the folder displayed in the tab. The extension must have the <permission>accountsRead</permission> permission to do this.",
8473
+ "description": "Sets the folder displayed in the tab. The extension must have the <permission>accountsRead</permission> permission to do this. The previous message selection in the given folder will be restored.",
8370
8474
  "optional": true
8371
8475
  },
8372
8476
  "sortType": {
@@ -8631,7 +8735,7 @@
8631
8735
  "permissions": [
8632
8736
  "menus"
8633
8737
  ],
8634
- "description": "The menus API allows to add items to Thunderbirds menus. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages.",
8738
+ "description": "The menus API allows to add items to Thunderbird's menus. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages.",
8635
8739
  "properties": {
8636
8740
  "ACTION_MENU_TOP_LEVEL_LIMIT": {
8637
8741
  "value": 6,
@@ -9103,9 +9207,19 @@
9103
9207
  "description": "Whether this context menu item is enabled or disabled. Defaults to true."
9104
9208
  },
9105
9209
  "command": {
9106
- "type": "string",
9107
9210
  "optional": true,
9108
- "description": "Specifies a command to issue for the context click. Currently supports internal commands <value>_execute_action</value>, <value>_execute_compose_action</value> and <value>_execute_message_display_action</value>."
9211
+ "choices": [
9212
+ {
9213
+ "type": "string",
9214
+ "max_manifest_version": 2,
9215
+ "description": "Specifies a command to issue for the context click. Currently supports internal commands <value>_execute_browser_action</value>, <value>_execute_compose_action</value> and <value>_execute_message_display_action</value>."
9216
+ },
9217
+ {
9218
+ "type": "string",
9219
+ "min_manifest_version": 3,
9220
+ "description": "Specifies a command to issue for the context click. Currently supports internal commands <value>_execute_action</value>, <value>_execute_compose_action</value> and <value>_execute_message_display_action</value>."
9221
+ }
9222
+ ]
9109
9223
  }
9110
9224
  }
9111
9225
  },
@@ -9511,8 +9625,15 @@
9511
9625
  {
9512
9626
  "name": "openProperties",
9513
9627
  "type": "object",
9514
- "description": "Settings for opening the message. Exactly one of messageId or headerMessageId must be specified.",
9628
+ "description": "Settings for opening the message. Exactly one of messageId, headerMessageId or file must be specified.",
9515
9629
  "properties": {
9630
+ "file": {
9631
+ "type": "object",
9632
+ "optional": true,
9633
+ "isInstanceOf": "File",
9634
+ "additionalProperties": true,
9635
+ "description": "The DOM file object of a message to be opened."
9636
+ },
9516
9637
  "messageId": {
9517
9638
  "type": "integer",
9518
9639
  "optional": true,
@@ -10154,7 +10275,7 @@
10154
10275
  {
10155
10276
  "name": "enable",
10156
10277
  "type": "function",
10157
- "description": "Enables the messageDisplayAction button for a tab. By default, a messageDisplayAction button is enabled.",
10278
+ "description": "Enables the messageDisplayAction button for a specific tab (if a ``tabId`` is provided), or for all tabs which do not have a custom enable state. Once the enable state of a tab has been updated individually, all further changes to its state have to be done individually as well. By default, a messageDisplayAction button is enabled.",
10158
10279
  "async": "callback",
10159
10280
  "parameters": [
10160
10281
  {
@@ -10175,7 +10296,7 @@
10175
10296
  {
10176
10297
  "name": "disable",
10177
10298
  "type": "function",
10178
- "description": "Disables the messageDisplayAction button for a tab.",
10299
+ "description": "Disables the messageDisplayAction button for a specific tab (if a ``tabId`` is provided), or for all tabs which do not have a custom enable state. Once the enable state of a tab has been updated individually, all further changes to its state have to be done individually as well.",
10179
10300
  "async": "callback",
10180
10301
  "parameters": [
10181
10302
  {
@@ -10297,7 +10418,8 @@
10297
10418
  "messagesImport",
10298
10419
  "messagesMove",
10299
10420
  "messagesRead",
10300
- "messagesTags"
10421
+ "messagesTags",
10422
+ "sensitiveDataUpload"
10301
10423
  ]
10302
10424
  }
10303
10425
  ]
@@ -10833,6 +10955,28 @@
10833
10955
  }
10834
10956
  ]
10835
10957
  },
10958
+ {
10959
+ "name": "openAttachment",
10960
+ "type": "function",
10961
+ "description": "Opens the specified attachment",
10962
+ "async": true,
10963
+ "parameters": [
10964
+ {
10965
+ "name": "messageId",
10966
+ "type": "integer"
10967
+ },
10968
+ {
10969
+ "name": "partName",
10970
+ "type": "string",
10971
+ "pattern": "^\\d+(\\.\\d+)*$"
10972
+ },
10973
+ {
10974
+ "name": "tabId",
10975
+ "type": "integer",
10976
+ "description": "The ID of the tab associated with the message opening."
10977
+ }
10978
+ ]
10979
+ },
10836
10980
  {
10837
10981
  "name": "query",
10838
10982
  "type": "function",
@@ -10842,6 +10986,8 @@
10842
10986
  {
10843
10987
  "type": "object",
10844
10988
  "name": "queryInfo",
10989
+ "optional": true,
10990
+ "default": {},
10845
10991
  "properties": {
10846
10992
  "attachment": {
10847
10993
  "type": "boolean",
@@ -11192,12 +11338,12 @@
11192
11338
  ]
11193
11339
  }
11194
11340
  ],
11195
- "spacesToolbar.json": [
11341
+ "spaces.json": [
11196
11342
  {
11197
- "namespace": "spacesToolbar",
11343
+ "namespace": "spaces",
11198
11344
  "types": [
11199
11345
  {
11200
- "id": "ButtonProperties",
11346
+ "id": "SpaceButtonProperties",
11201
11347
  "type": "object",
11202
11348
  "properties": {
11203
11349
  "badgeBackgroundColor": {
@@ -11215,7 +11361,7 @@
11215
11361
  "badgeText": {
11216
11362
  "type": "string",
11217
11363
  "optional": true,
11218
- "description": "Sets the badge text for the spaces toolbar button. The badge is displayed on top of the icon. Any number of characters can be set, but only about four can fit in the space. Removed when set to an empty string."
11364
+ "description": "Sets the badge text for the button in the spaces toolbar. The badge is displayed on top of the icon. Any number of characters can be set, but only about four can fit in the space. Removed when set to an empty string."
11219
11365
  },
11220
11366
  "defaultIcons": {
11221
11367
  "choices": [
@@ -11235,17 +11381,12 @@
11235
11381
  "items": {
11236
11382
  "$ref": "manifest.ThemeIcons"
11237
11383
  },
11238
- "description": "Specifies dark and light icons for the spaces toolbar button to be used with themes: The ``light`` icons will be used on dark backgrounds and vice versa. At least the set for <em>16px</em> icons should be specified. The set for <em>32px</em> icons will be used on screens with a very high pixel density, if specified."
11384
+ "description": "Specifies dark and light icons for the button in the spaces toolbar to be used with themes: The ``light`` icons will be used on dark backgrounds and vice versa. At least the set for <em>16px</em> icons should be specified. The set for <em>32px</em> icons will be used on screens with a very high pixel density, if specified."
11239
11385
  },
11240
11386
  "title": {
11241
11387
  "type": "string",
11242
11388
  "optional": true,
11243
- "description": "The title for the spaces toolbar button, used in the tooltip of the button and as the displayed name in the overflow menu. Defaults to the name of the extension, if set to an empty string."
11244
- },
11245
- "url": {
11246
- "type": "string",
11247
- "optional": true,
11248
- "description": "The page url, loaded into a tab when the button is clicked. Supported are <value>https://</value> and <value>http://</value> links, as well as links to WebExtension pages."
11389
+ "description": "The title for the button in the spaces toolbar, used in the tooltip of the button and as the displayed name in the overflow menu. Defaults to the name of the extension, if set to an empty string."
11249
11390
  }
11250
11391
  }
11251
11392
  },
@@ -11260,16 +11401,312 @@
11260
11401
  },
11261
11402
  "minItems": 4,
11262
11403
  "maxItems": 4
11263
- }
11264
- ],
11265
- "functions": [
11404
+ },
11266
11405
  {
11267
- "name": "addButton",
11268
- "type": "function",
11269
- "description": "Adds a new button to the spaces toolbar. Throws an exception, if the used ``id`` is not unique within the extension.",
11270
- "async": true,
11271
- "parameters": [
11272
- {
11406
+ "id": "Space",
11407
+ "type": "object",
11408
+ "properties": {
11409
+ "id": {
11410
+ "type": "integer",
11411
+ "description": "The id of the space.",
11412
+ "minimum": 1
11413
+ },
11414
+ "name": {
11415
+ "type": "string",
11416
+ "pattern": "^[a-zA-Z0-9_]+$",
11417
+ "description": "The name of the space. Names are unique for a single extension, but different extensions may use the same name."
11418
+ },
11419
+ "isBuiltIn": {
11420
+ "type": "boolean",
11421
+ "description": "Whether this space is one of the default Thunderbird spaces, or an extension space."
11422
+ },
11423
+ "isSelfOwned": {
11424
+ "type": "boolean",
11425
+ "description": "Whether this space was created by this extension."
11426
+ },
11427
+ "extensionId": {
11428
+ "type": "string",
11429
+ "optional": true,
11430
+ "description": "The id of the extension which owns the space. The <permission>management</permission> permission is required to include this property."
11431
+ }
11432
+ }
11433
+ }
11434
+ ],
11435
+ "functions": [
11436
+ {
11437
+ "name": "create",
11438
+ "type": "function",
11439
+ "description": "Creates a new space and adds its button to the spaces toolbar.",
11440
+ "async": "callback",
11441
+ "parameters": [
11442
+ {
11443
+ "name": "name",
11444
+ "type": "string",
11445
+ "pattern": "^[a-zA-Z0-9_]+$",
11446
+ "description": "The name to assign to this space. May only contain alphanumeric characters and underscores. Must be unique for this extension."
11447
+ },
11448
+ {
11449
+ "name": "defaultUrl",
11450
+ "type": "string",
11451
+ "description": "The default space url, loaded into a tab when the button in the spaces toolbar is clicked. Supported are <value>https://</value> and <value>http://</value> links, as well as links to WebExtension pages."
11452
+ },
11453
+ {
11454
+ "name": "buttonProperties",
11455
+ "description": "Properties of the button for the new space.",
11456
+ "$ref": "spaces.SpaceButtonProperties",
11457
+ "optional": true,
11458
+ "default": {}
11459
+ },
11460
+ {
11461
+ "type": "function",
11462
+ "name": "callback",
11463
+ "optional": true,
11464
+ "parameters": [
11465
+ {
11466
+ "name": "space",
11467
+ "$ref": "spaces.Space"
11468
+ }
11469
+ ]
11470
+ }
11471
+ ]
11472
+ },
11473
+ {
11474
+ "name": "get",
11475
+ "type": "function",
11476
+ "description": "Retrieves details about the specified space.",
11477
+ "async": "callback",
11478
+ "parameters": [
11479
+ {
11480
+ "name": "spaceId",
11481
+ "type": "integer",
11482
+ "description": "The id of the space.",
11483
+ "minimum": 1
11484
+ },
11485
+ {
11486
+ "type": "function",
11487
+ "name": "callback",
11488
+ "optional": true,
11489
+ "parameters": [
11490
+ {
11491
+ "name": "space",
11492
+ "$ref": "spaces.Space"
11493
+ }
11494
+ ]
11495
+ }
11496
+ ]
11497
+ },
11498
+ {
11499
+ "name": "query",
11500
+ "type": "function",
11501
+ "description": "Gets all spaces that have the specified properties, or all spaces if no properties are specified.",
11502
+ "async": "callback",
11503
+ "parameters": [
11504
+ {
11505
+ "type": "object",
11506
+ "name": "queryInfo",
11507
+ "optional": true,
11508
+ "default": {},
11509
+ "properties": {
11510
+ "id": {
11511
+ "type": "integer",
11512
+ "description": "The id of the space.",
11513
+ "optional": true,
11514
+ "minimum": 1
11515
+ },
11516
+ "name": {
11517
+ "type": "string",
11518
+ "pattern": "^[a-zA-Z0-9_]+$",
11519
+ "optional": true,
11520
+ "description": "The name of the spaces (names are not unique)."
11521
+ },
11522
+ "isBuiltIn": {
11523
+ "type": "boolean",
11524
+ "optional": true,
11525
+ "description": "Spaces should be default Thunderbird spaces."
11526
+ },
11527
+ "isSelfOwned": {
11528
+ "type": "boolean",
11529
+ "optional": true,
11530
+ "description": "Spaces should have been created by this extension."
11531
+ },
11532
+ "extensionId": {
11533
+ "type": "string",
11534
+ "optional": true,
11535
+ "description": "Id of the extension which should own the spaces. The <permission>management</permission> permission is required to be able to match against extension ids."
11536
+ }
11537
+ }
11538
+ },
11539
+ {
11540
+ "type": "function",
11541
+ "name": "callback",
11542
+ "parameters": [
11543
+ {
11544
+ "name": "result",
11545
+ "type": "array",
11546
+ "items": {
11547
+ "$ref": "spaces.Space"
11548
+ }
11549
+ }
11550
+ ]
11551
+ }
11552
+ ]
11553
+ },
11554
+ {
11555
+ "name": "remove",
11556
+ "type": "function",
11557
+ "description": "Removes the specified space, closes all its tabs and removes its button from the spaces toolbar. Throws an exception if the requested space does not exist or was not created by this extension.",
11558
+ "async": true,
11559
+ "parameters": [
11560
+ {
11561
+ "name": "spaceId",
11562
+ "type": "integer",
11563
+ "description": "The id of the space.",
11564
+ "minimum": 1
11565
+ }
11566
+ ]
11567
+ },
11568
+ {
11569
+ "name": "update",
11570
+ "type": "function",
11571
+ "description": "Updates the specified space. Throws an exception if the requested space does not exist or was not created by this extension.",
11572
+ "async": true,
11573
+ "parameters": [
11574
+ {
11575
+ "name": "spaceId",
11576
+ "type": "integer",
11577
+ "description": "The id of the space.",
11578
+ "minimum": 1
11579
+ },
11580
+ {
11581
+ "name": "defaultUrl",
11582
+ "type": "string",
11583
+ "description": "The default space url, loaded into a tab when the button in the spaces toolbar is clicked. Supported are <value>https://</value> and <value>http://</value> links, as well as links to WebExtension pages.",
11584
+ "optional": true
11585
+ },
11586
+ {
11587
+ "name": "buttonProperties",
11588
+ "description": "Only specified button properties will be updated.",
11589
+ "$ref": "spaces.SpaceButtonProperties",
11590
+ "optional": true
11591
+ }
11592
+ ]
11593
+ },
11594
+ {
11595
+ "name": "open",
11596
+ "type": "function",
11597
+ "description": "Opens or switches to the specified space. Throws an exception if the requested space does not exist or was not created by this extension.",
11598
+ "async": "callback",
11599
+ "parameters": [
11600
+ {
11601
+ "name": "spaceId",
11602
+ "type": "integer",
11603
+ "description": "The id of the space.",
11604
+ "minimum": 1
11605
+ },
11606
+ {
11607
+ "name": "windowId",
11608
+ "type": "integer",
11609
+ "minimum": -2,
11610
+ "optional": true,
11611
+ "description": "The id of the normal window, where the space should be opened. Defaults to the most recent normal window."
11612
+ },
11613
+ {
11614
+ "type": "function",
11615
+ "name": "callback",
11616
+ "optional": true,
11617
+ "parameters": [
11618
+ {
11619
+ "name": "tab",
11620
+ "$ref": "tabs.Tab",
11621
+ "optional": true,
11622
+ "description": "Details about the opened or activated space tab."
11623
+ }
11624
+ ]
11625
+ }
11626
+ ]
11627
+ }
11628
+ ]
11629
+ }
11630
+ ],
11631
+ "spacesToolbar.json": [
11632
+ {
11633
+ "namespace": "spacesToolbar",
11634
+ "max_manifest_version": 2,
11635
+ "types": [
11636
+ {
11637
+ "id": "ButtonProperties",
11638
+ "type": "object",
11639
+ "properties": {
11640
+ "badgeBackgroundColor": {
11641
+ "choices": [
11642
+ {
11643
+ "type": "string"
11644
+ },
11645
+ {
11646
+ "$ref": "ColorArray"
11647
+ }
11648
+ ],
11649
+ "optional": true,
11650
+ "description": "Sets the background color of the badge. Can be specified as an array of four integers in the range [0,255] that make up the RGBA color of the badge. For example, opaque red is <value>[255, 0, 0, 255]</value>. Can also be a string with an HTML color name (<value>red</value>) or a HEX color value (<value>#FF0000</value> or <value>#F00</value>). Reset when set to an empty string."
11651
+ },
11652
+ "badgeText": {
11653
+ "type": "string",
11654
+ "optional": true,
11655
+ "description": "Sets the badge text for the spaces toolbar button. The badge is displayed on top of the icon. Any number of characters can be set, but only about four can fit in the space. Removed when set to an empty string."
11656
+ },
11657
+ "defaultIcons": {
11658
+ "choices": [
11659
+ {
11660
+ "type": "string"
11661
+ },
11662
+ {
11663
+ "$ref": "manifest.IconPath"
11664
+ }
11665
+ ],
11666
+ "optional": true,
11667
+ "description": "The paths to one or more icons for the button in the spaces toolbar. Defaults to the extension icon, if set to an empty string."
11668
+ },
11669
+ "themeIcons": {
11670
+ "type": "array",
11671
+ "optional": true,
11672
+ "items": {
11673
+ "$ref": "manifest.ThemeIcons"
11674
+ },
11675
+ "description": "Specifies dark and light icons for the spaces toolbar button to be used with themes: The ``light`` icons will be used on dark backgrounds and vice versa. At least the set for <em>16px</em> icons should be specified. The set for <em>32px</em> icons will be used on screens with a very high pixel density, if specified."
11676
+ },
11677
+ "title": {
11678
+ "type": "string",
11679
+ "optional": true,
11680
+ "description": "The title for the spaces toolbar button, used in the tooltip of the button and as the displayed name in the overflow menu. Defaults to the name of the extension, if set to an empty string."
11681
+ },
11682
+ "url": {
11683
+ "type": "string",
11684
+ "optional": true,
11685
+ "description": "The page url, loaded into a tab when the button is clicked. Supported are <value>https://</value> and <value>http://</value> links, as well as links to WebExtension pages."
11686
+ }
11687
+ }
11688
+ },
11689
+ {
11690
+ "id": "ColorArray",
11691
+ "description": "An array of four integers in the range [0,255] that make up the RGBA color. For example, opaque red is <value>[255, 0, 0, 255]</value>.",
11692
+ "type": "array",
11693
+ "items": {
11694
+ "type": "integer",
11695
+ "minimum": 0,
11696
+ "maximum": 255
11697
+ },
11698
+ "minItems": 4,
11699
+ "maxItems": 4
11700
+ }
11701
+ ],
11702
+ "functions": [
11703
+ {
11704
+ "name": "addButton",
11705
+ "type": "function",
11706
+ "description": "Adds a new button to the spaces toolbar. Throws an exception, if the used ``id`` is not unique within the extension.",
11707
+ "async": "callback",
11708
+ "parameters": [
11709
+ {
11273
11710
  "name": "id",
11274
11711
  "type": "string",
11275
11712
  "pattern": "^[a-zA-Z0-9_]+$",
@@ -11279,33 +11716,47 @@
11279
11716
  "name": "properties",
11280
11717
  "description": "Properties of the new button. The ``url`` is mandatory.",
11281
11718
  "$ref": "spacesToolbar.ButtonProperties"
11719
+ },
11720
+ {
11721
+ "type": "function",
11722
+ "name": "callback",
11723
+ "optional": true,
11724
+ "parameters": [
11725
+ {
11726
+ "name": "spaceId",
11727
+ "type": "integer",
11728
+ "description": "The id of the space belonging to the newly created button, as used by the tabs API.",
11729
+ "minimum": 1,
11730
+ "optional": true
11731
+ }
11732
+ ]
11282
11733
  }
11283
11734
  ]
11284
11735
  },
11285
11736
  {
11286
11737
  "name": "removeButton",
11287
11738
  "type": "function",
11288
- "description": "Removes the specified button from the spaces toolbar. Throws an exception if the requested spaces toolbar button does not exist. If the tab of this button is currently open, it will be closed.",
11739
+ "description": "Removes the specified button from the spaces toolbar. Throws an exception if the requested spaces toolbar button does not exist or was not created by this extension. If the tab of this button is currently open, it will be closed.",
11289
11740
  "async": true,
11290
11741
  "parameters": [
11291
11742
  {
11292
11743
  "name": "id",
11293
11744
  "type": "string",
11294
11745
  "pattern": "^[a-zA-Z0-9_]+$",
11295
- "description": "The id of the button which is to be removed. May only contain alphanumeric characters and underscores."
11746
+ "description": "The id of the spaces toolbar button, which is to be removed. May only contain alphanumeric characters and underscores."
11296
11747
  }
11297
11748
  ]
11298
11749
  },
11299
11750
  {
11300
11751
  "name": "updateButton",
11301
11752
  "type": "function",
11302
- "description": "Updates properties of the specified spaces toolbar button. Throws an exception if the requested spaces toolbar button does not exist.",
11753
+ "description": "Updates properties of the specified spaces toolbar button. Throws an exception if the requested spaces toolbar button does not exist or was not created by this extension.",
11303
11754
  "async": true,
11304
11755
  "parameters": [
11305
11756
  {
11306
11757
  "name": "id",
11307
11758
  "type": "string",
11308
- "description": "The id of the button which is to be updated. May only contain alphanumeric characters and underscores.",
11759
+ "description": "The id of the spaces toolbar button, which is to be updated. May only contain alphanumeric characters and underscores.",
11309
11760
  "pattern": "^[a-zA-Z0-9_]+$"
11310
11761
  },
11311
11762
  {
@@ -11314,6 +11765,40 @@
11314
11765
  "$ref": "spacesToolbar.ButtonProperties"
11315
11766
  }
11316
11767
  ]
11768
+ },
11769
+ {
11770
+ "name": "clickButton",
11771
+ "type": "function",
11772
+ "description": "Trigger a click on the specified spaces toolbar button. Throws an exception if the requested spaces toolbar button does not exist or was not created by this extension.",
11773
+ "async": "callback",
11774
+ "parameters": [
11775
+ {
11776
+ "name": "id",
11777
+ "type": "string",
11778
+ "description": "The id of the spaces toolbar button. May only contain alphanumeric characters and underscores.",
11779
+ "pattern": "^[a-zA-Z0-9_]+$"
11780
+ },
11781
+ {
11782
+ "name": "windowId",
11783
+ "type": "integer",
11784
+ "minimum": -2,
11785
+ "optional": true,
11786
+ "description": "The id of the normal window, where the spaces toolbar button should be clicked. Defaults to the most recent normal window."
11787
+ },
11788
+ {
11789
+ "type": "function",
11790
+ "name": "callback",
11791
+ "optional": true,
11792
+ "parameters": [
11793
+ {
11794
+ "name": "tab",
11795
+ "$ref": "tabs.Tab",
11796
+ "optional": true,
11797
+ "description": "Details about the opened or activated tab."
11798
+ }
11799
+ ]
11800
+ }
11801
+ ]
11317
11802
  }
11318
11803
  ]
11319
11804
  }
@@ -11425,6 +11910,11 @@
11425
11910
  "optional": true,
11426
11911
  "description": "The height of the tab in pixels."
11427
11912
  },
11913
+ "cookieStoreId": {
11914
+ "type": "string",
11915
+ "optional": true,
11916
+ "description": "The `CookieStore <|link-cookieStore|>`__ id used by the tab. Either a custom id created using the `contextualIdentities API <|link-contextualIdentity|>`__, or a built-in one: <value>firefox-default</value>, <value>firefox-container-1</value>, <value>firefox-container-2</value>, <value>firefox-container-3</value>, <value>firefox-container-4</value>, <value>firefox-container-5</value>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons."
11917
+ },
11428
11918
  "type": {
11429
11919
  "type": "string",
11430
11920
  "enum": [
@@ -11446,6 +11936,12 @@
11446
11936
  "type": "boolean",
11447
11937
  "optional": true,
11448
11938
  "description": "Whether the tab is a 3-pane tab."
11939
+ },
11940
+ "spaceId": {
11941
+ "type": "integer",
11942
+ "description": "The id of the space.",
11943
+ "minimum": 1,
11944
+ "optional": true
11449
11945
  }
11450
11946
  }
11451
11947
  },
@@ -11674,6 +12170,11 @@
11674
12170
  "optional": true,
11675
12171
  "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 <value>true</value>."
11676
12172
  },
12173
+ "cookieStoreId": {
12174
+ "type": "string",
12175
+ "optional": true,
12176
+ "description": "The `CookieStore <|link-cookieStore|>`__ id the new tab should use. Either a custom id created using the `contextualIdentities API <|link-contextualIdentity|>`__, or a built-in one: <value>firefox-default</value>, <value>firefox-container-1</value>, <value>firefox-container-2</value>, <value>firefox-container-3</value>, <value>firefox-container-4</value>, <value>firefox-container-5</value>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons."
12177
+ },
11677
12178
  "selected": {
11678
12179
  "deprecated": "Please use ``createProperties.active``.",
11679
12180
  "unsupported": true,
@@ -11734,12 +12235,20 @@
11734
12235
  {
11735
12236
  "type": "object",
11736
12237
  "name": "queryInfo",
12238
+ "optional": true,
12239
+ "default": {},
11737
12240
  "properties": {
11738
12241
  "mailTab": {
11739
12242
  "type": "boolean",
11740
12243
  "optional": true,
11741
12244
  "description": "Whether the tab is a Thunderbird 3-pane tab."
11742
12245
  },
12246
+ "spaceId": {
12247
+ "type": "integer",
12248
+ "description": "The id of the space the tabs should belong to.",
12249
+ "minimum": 1,
12250
+ "optional": true
12251
+ },
11743
12252
  "type": {
11744
12253
  "type": "string",
11745
12254
  "optional": true,
@@ -11806,6 +12315,21 @@
11806
12315
  "optional": true,
11807
12316
  "minimum": 0,
11808
12317
  "description": "The position of the tabs within their windows."
12318
+ },
12319
+ "cookieStoreId": {
12320
+ "choices": [
12321
+ {
12322
+ "type": "array",
12323
+ "items": {
12324
+ "type": "string"
12325
+ }
12326
+ },
12327
+ {
12328
+ "type": "string"
12329
+ }
12330
+ ],
12331
+ "optional": true,
12332
+ "description": "The `CookieStore <|link-cookieStore|>`__ id(s) used by the tabs. Either custom ids created using the `contextualIdentities API <|link-contextualIdentity|>`__, or built-in ones: <value>firefox-default</value>, <value>firefox-container-1</value>, <value>firefox-container-2</value>, <value>firefox-container-3</value>, <value>firefox-container-4</value>, <value>firefox-container-5</value>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons."
11809
12333
  }
11810
12334
  }
11811
12335
  },
@@ -11845,12 +12369,12 @@
11845
12369
  "url": {
11846
12370
  "type": "string",
11847
12371
  "optional": true,
11848
- "description": "A URL to navigate the tab to. Only applicable for <value>content</value> tabs and active <value>mail</value> tabs."
12372
+ "description": "A URL of a page to load. If the URL points to a content page (a web page, an extension page or a registered WebExtension protocol handler page), the tab will navigate to the requested page. All other URLs will be opened externally without changing the tab. Note: This function will throw an error, if a content page is loaded into a non-content tab (its type must be either <value>content</value> or <value>mail</value>)."
11849
12373
  },
11850
12374
  "active": {
11851
12375
  "type": "boolean",
11852
12376
  "optional": true,
11853
- "description": "Set this to <value>true</value>, if the tab should be active. Does not affect whether the window is focused (see :ref:`windows.update`). Setting this to <value>false</value> has no effect."
12377
+ "description": "Set this to <value>true</value>, if the tab should become active. Does not affect whether the window is focused (see :ref:`windows.update`). Setting this to <value>false</value> has no effect."
11854
12378
  }
11855
12379
  }
11856
12380
  },
@@ -11872,7 +12396,7 @@
11872
12396
  {
11873
12397
  "name": "move",
11874
12398
  "type": "function",
11875
- "description": "Moves one or more tabs to a new position within its window, or to a new window. Note that tabs can only be moved to and from windows of type <value>normal</value>.",
12399
+ "description": "Moves one or more tabs to a new position within its current window, or to a different window. Note that tabs can only be moved to and from windows of type <value>normal</value>.",
11876
12400
  "async": "callback",
11877
12401
  "parameters": [
11878
12402
  {
@@ -11905,7 +12429,7 @@
11905
12429
  "index": {
11906
12430
  "type": "integer",
11907
12431
  "minimum": -1,
11908
- "description": "The position to move the window to. <value>-1</value> will place the tab at the end of the window."
12432
+ "description": "The position to move the tab to. <value>-1</value> will place the tab at the end of the window."
11909
12433
  }
11910
12434
  }
11911
12435
  },
@@ -11917,17 +12441,10 @@
11917
12441
  {
11918
12442
  "name": "tabs",
11919
12443
  "description": "Details about the moved tabs.",
11920
- "choices": [
11921
- {
11922
- "$ref": "Tab"
11923
- },
11924
- {
11925
- "type": "array",
11926
- "items": {
11927
- "$ref": "Tab"
11928
- }
11929
- }
11930
- ]
12444
+ "type": "array",
12445
+ "items": {
12446
+ "$ref": "Tab"
12447
+ }
11931
12448
  }
11932
12449
  ]
11933
12450
  }
@@ -11936,7 +12453,7 @@
11936
12453
  {
11937
12454
  "name": "reload",
11938
12455
  "type": "function",
11939
- "description": "Reload a tab.",
12456
+ "description": "Reload a tab. Only applicable for tabs which display a content page.",
11940
12457
  "async": "callback",
11941
12458
  "parameters": [
11942
12459
  {
@@ -12614,6 +13131,11 @@
12614
13131
  "optional": true,
12615
13132
  "description": "Allow scripts running inside the window to close the window by calling <code>window.close()</code>."
12616
13133
  },
13134
+ "cookieStoreId": {
13135
+ "type": "string",
13136
+ "optional": true,
13137
+ "description": "The CookieStoreId to use for all tabs that were created when the window is opened."
13138
+ },
12617
13139
  "titlePreface": {
12618
13140
  "type": "string",
12619
13141
  "optional": true,