webext-schema 5.3.1 → 5.3.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.
@@ -112,7 +112,7 @@
112
112
  },
113
113
  {
114
114
  "name": "tab",
115
- "$ref": "tags.Tab",
115
+ "$ref": "tabs.Tab",
116
116
  "optional": true,
117
117
  "description": "Details of the $(ref:tabs.Tab) where the command was activated."
118
118
  }
@@ -357,13 +357,23 @@
357
357
  "matchAboutBlank": {
358
358
  "type": "boolean",
359
359
  "optional": true,
360
- "description": "If matchAboutBlank is true, then the code is also injected in about:blank and about:srcdoc frames if your extension has access to its parent document. Code cannot be inserted in top-level about:-frames. By default it is <code>false</code>."
360
+ "description": "If matchAboutBlank is true, then the code is also injected in about:blank and about:srcdoc frames if your extension has access to its parent document. Ignored if matchOriginAsFallback is specified. By default it is <code>false</code>."
361
+ },
362
+ "matchOriginAsFallback": {
363
+ "type": "boolean",
364
+ "optional": true,
365
+ "description": "If matchOriginAsFallback is true, then the code is also injected in about:, data:, blob: when their origin matches the pattern in 'matches', even if the actual document origin is opaque (due to the use of CSP sandbox or iframe sandbox). Match patterns in 'matches' must specify a wildcard path glob. By default it is <code>false</code>."
361
366
  },
362
367
  "runAt": {
363
368
  "$ref": "extensionTypes.RunAt",
364
369
  "optional": true,
365
370
  "description": "The soonest that the JavaScript or CSS will be injected into the tab. Defaults to \"document_idle\"."
366
371
  },
372
+ "world": {
373
+ "$ref": "extensionTypes.ExecutionWorld",
374
+ "optional": true,
375
+ "description": "The JavaScript world for a script to execute within. Defaults to \"ISOLATED\"."
376
+ },
367
377
  "cookieStoreId": {
368
378
  "choices": [
369
379
  {
@@ -3155,15 +3165,45 @@
3155
3165
  {
3156
3166
  "name": "list",
3157
3167
  "type": "function",
3168
+ "min_manifest_version": 3,
3169
+ "description": "Returns all mail accounts. They will be returned in the same order as used in Thunderbird's folder pane.",
3170
+ "async": "callback",
3171
+ "parameters": [
3172
+ {
3173
+ "name": "includeFolders",
3174
+ "optional": true,
3175
+ "default": false,
3176
+ "type": "boolean",
3177
+ "description": "Specifies whether the returned :ref:`accounts.MailAccount` objects should included their account's folders. Defaults to <value>false</value>."
3178
+ },
3179
+ {
3180
+ "type": "function",
3181
+ "name": "callback",
3182
+ "optional": true,
3183
+ "parameters": [
3184
+ {
3185
+ "type": "array",
3186
+ "items": {
3187
+ "$ref": "accounts.MailAccount"
3188
+ }
3189
+ }
3190
+ ]
3191
+ }
3192
+ ]
3193
+ },
3194
+ {
3195
+ "name": "list",
3196
+ "type": "function",
3197
+ "max_manifest_version": 2,
3158
3198
  "description": "Returns all mail accounts. They will be returned in the same order as used in Thunderbird's folder pane.",
3159
3199
  "async": "callback",
3160
3200
  "parameters": [
3161
3201
  {
3162
3202
  "name": "includeFolders",
3163
- "description": "Specifies whether the returned :ref:`accounts.MailAccount` objects should included their account's folders. Defaults to <value>true</value>.",
3164
3203
  "optional": true,
3165
3204
  "default": true,
3166
- "type": "boolean"
3205
+ "type": "boolean",
3206
+ "description": "Specifies whether the returned :ref:`accounts.MailAccount` objects should included their account's folders. Defaults to <value>true</value>."
3167
3207
  },
3168
3208
  {
3169
3209
  "type": "function",
@@ -3183,6 +3223,38 @@
3183
3223
  {
3184
3224
  "name": "get",
3185
3225
  "type": "function",
3226
+ "min_manifest_version": 3,
3227
+ "description": "Returns details of the requested account, or <value>null</value> if it doesn't exist.",
3228
+ "async": "callback",
3229
+ "parameters": [
3230
+ {
3231
+ "name": "accountId",
3232
+ "$ref": "MailAccountId"
3233
+ },
3234
+ {
3235
+ "name": "includeFolders",
3236
+ "optional": true,
3237
+ "default": false,
3238
+ "type": "boolean",
3239
+ "description": "Specifies whether the returned :ref:`accounts.MailAccount` object should included the account's folders. Defaults to <value>false</value>."
3240
+ },
3241
+ {
3242
+ "type": "function",
3243
+ "name": "callback",
3244
+ "optional": true,
3245
+ "parameters": [
3246
+ {
3247
+ "$ref": "accounts.MailAccount",
3248
+ "optional": true
3249
+ }
3250
+ ]
3251
+ }
3252
+ ]
3253
+ },
3254
+ {
3255
+ "name": "get",
3256
+ "type": "function",
3257
+ "max_manifest_version": 2,
3186
3258
  "description": "Returns details of the requested account, or <value>null</value> if it doesn't exist.",
3187
3259
  "async": "callback",
3188
3260
  "parameters": [
@@ -3192,10 +3264,10 @@
3192
3264
  },
3193
3265
  {
3194
3266
  "name": "includeFolders",
3195
- "description": "Specifies whether the returned :ref:`accounts.MailAccount` object should included the account's folders. Defaults to <value>true</value>.",
3196
3267
  "optional": true,
3197
3268
  "default": true,
3198
- "type": "boolean"
3269
+ "type": "boolean",
3270
+ "description": "Specifies whether the returned :ref:`accounts.MailAccount` object should included the account's folders. Defaults to <value>true</value>."
3199
3271
  },
3200
3272
  {
3201
3273
  "type": "function",
@@ -3711,25 +3783,25 @@
3711
3783
  "type": "boolean",
3712
3784
  "optional": true,
3713
3785
  "default": true,
3714
- "description": "Whether to include results from local address books. Defaults to true."
3786
+ "description": "Whether to include results from local address books. Defaults to <value>true</value>."
3715
3787
  },
3716
3788
  "includeRemote": {
3717
3789
  "type": "boolean",
3718
3790
  "optional": true,
3719
3791
  "default": true,
3720
- "description": "Whether to include results from remote address books. Defaults to true."
3792
+ "description": "Whether to include results from remote address books. Defaults to <value>true</value>."
3721
3793
  },
3722
3794
  "includeReadOnly": {
3723
3795
  "type": "boolean",
3724
3796
  "optional": true,
3725
3797
  "default": true,
3726
- "description": "Whether to include results from read-only address books. Defaults to true."
3798
+ "description": "Whether to include results from read-only address books. Defaults to <value>true</value>."
3727
3799
  },
3728
3800
  "includeReadWrite": {
3729
3801
  "type": "boolean",
3730
3802
  "optional": true,
3731
3803
  "default": true,
3732
- "description": "Whether to include results from read-write address books. Defaults to true."
3804
+ "description": "Whether to include results from read-write address books. Defaults to <value>true</value>."
3733
3805
  }
3734
3806
  }
3735
3807
  },
@@ -3762,7 +3834,12 @@
3762
3834
  "description": "Indicates if the object came from a remote address book."
3763
3835
  },
3764
3836
  "properties": {
3837
+ "max_manifest_version": 2,
3765
3838
  "$ref": "ContactProperties"
3839
+ },
3840
+ "vCard": {
3841
+ "min_manifest_version": 3,
3842
+ "type": "string"
3766
3843
  }
3767
3844
  }
3768
3845
  },
@@ -3982,6 +4059,7 @@
3982
4059
  {
3983
4060
  "name": "create",
3984
4061
  "type": "function",
4062
+ "max_manifest_version": 2,
3985
4063
  "async": "callback",
3986
4064
  "parameters": [
3987
4065
  {
@@ -4013,9 +4091,40 @@
4013
4091
  ],
4014
4092
  "description": "Adds a new contact to the address book with the id ``parentId``."
4015
4093
  },
4094
+ {
4095
+ "name": "create",
4096
+ "type": "function",
4097
+ "min_manifest_version": 3,
4098
+ "async": "callback",
4099
+ "parameters": [
4100
+ {
4101
+ "name": "parentId",
4102
+ "type": "string"
4103
+ },
4104
+ {
4105
+ "name": "vCard",
4106
+ "min_manifest_version": 3,
4107
+ "type": "string",
4108
+ "description": "The vCard for the new contact. If it includes an (optional) id and an existing contact has this id already, an exception is thrown."
4109
+ },
4110
+ {
4111
+ "type": "function",
4112
+ "name": "callback",
4113
+ "optional": true,
4114
+ "parameters": [
4115
+ {
4116
+ "type": "string",
4117
+ "description": "The ID of the new contact."
4118
+ }
4119
+ ]
4120
+ }
4121
+ ],
4122
+ "description": "Adds a new contact to the address book with the id ``parentId``."
4123
+ },
4016
4124
  {
4017
4125
  "name": "update",
4018
4126
  "type": "function",
4127
+ "max_manifest_version": 2,
4019
4128
  "async": true,
4020
4129
  "parameters": [
4021
4130
  {
@@ -4030,6 +4139,24 @@
4030
4139
  ],
4031
4140
  "description": "Updates a contact."
4032
4141
  },
4142
+ {
4143
+ "name": "update",
4144
+ "type": "function",
4145
+ "min_manifest_version": 3,
4146
+ "async": true,
4147
+ "parameters": [
4148
+ {
4149
+ "name": "id",
4150
+ "type": "string"
4151
+ },
4152
+ {
4153
+ "name": "vCard",
4154
+ "type": "string",
4155
+ "description": "The updated vCard for the contact."
4156
+ }
4157
+ ],
4158
+ "description": "Updates a contact."
4159
+ },
4033
4160
  {
4034
4161
  "name": "delete",
4035
4162
  "type": "function",
@@ -4058,6 +4185,7 @@
4058
4185
  {
4059
4186
  "name": "onUpdated",
4060
4187
  "type": "function",
4188
+ "max_manifest_version": 2,
4061
4189
  "description": "Fired when a contact is changed.",
4062
4190
  "parameters": [
4063
4191
  {
@@ -4070,6 +4198,22 @@
4070
4198
  }
4071
4199
  ]
4072
4200
  },
4201
+ {
4202
+ "name": "onUpdated",
4203
+ "type": "function",
4204
+ "min_manifest_version": 3,
4205
+ "description": "Fired when a contact is changed.",
4206
+ "parameters": [
4207
+ {
4208
+ "name": "node",
4209
+ "$ref": "ContactNode"
4210
+ },
4211
+ {
4212
+ "name": "oldVCard",
4213
+ "type": "string"
4214
+ }
4215
+ ]
4216
+ },
4073
4217
  {
4074
4218
  "name": "onDeleted",
4075
4219
  "type": "function",
@@ -4449,6 +4593,12 @@
4449
4593
  "description": "Enable browser styles. See the `MDN documentation on browser styles <|link-mdn-browser-styles|>`__ for more information.",
4450
4594
  "default": false
4451
4595
  },
4596
+ "default_area": {
4597
+ "type": "string",
4598
+ "optional": true,
4599
+ "description": "Defines the location the action button will appear. Deprecated and ignored. Replaced by ``allowed_spaces``",
4600
+ "deprecated": "Unsupported on Thunderbird."
4601
+ },
4452
4602
  "default_windows": {
4453
4603
  "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.",
4454
4604
  "type": "array",
@@ -4818,7 +4968,7 @@
4818
4968
  "type": "integer",
4819
4969
  "optional": true,
4820
4970
  "minimum": 0,
4821
- "description": "Specifies for which tab the label should be retrieved. If no tab is specified, the global label is retrieved."
4971
+ "description": "Specifies for which tab the label should be retrieved. If no tab is specified, the global value is retrieved."
4822
4972
  },
4823
4973
  "windowId": {
4824
4974
  "type": "integer",
@@ -5039,7 +5189,86 @@
5039
5189
  "type": "integer",
5040
5190
  "optional": true,
5041
5191
  "minimum": 0,
5042
- "description": "Specifies for which tab the badge text should be retrieved. If no tab is specified, the global label is retrieved."
5192
+ "description": "Specifies for which tab the badge text should be retrieved. If no tab is specified, the global value is retrieved."
5193
+ },
5194
+ "windowId": {
5195
+ "type": "integer",
5196
+ "optional": true,
5197
+ "minimum": -2,
5198
+ "unsupported": true,
5199
+ "description": "Will throw an error if used."
5200
+ }
5201
+ }
5202
+ },
5203
+ {
5204
+ "type": "function",
5205
+ "name": "callback",
5206
+ "optional": true,
5207
+ "parameters": [
5208
+ {
5209
+ "name": "result",
5210
+ "type": "string"
5211
+ }
5212
+ ]
5213
+ }
5214
+ ]
5215
+ },
5216
+ {
5217
+ "name": "setBadgeTextColor",
5218
+ "type": "function",
5219
+ "description": "Sets the text color for the badge.",
5220
+ "async": true,
5221
+ "parameters": [
5222
+ {
5223
+ "name": "details",
5224
+ "type": "object",
5225
+ "properties": {
5226
+ "color": {
5227
+ "choices": [
5228
+ {
5229
+ "type": "string"
5230
+ },
5231
+ {
5232
+ "$ref": "ColorArray"
5233
+ },
5234
+ {
5235
+ "type": "null"
5236
+ }
5237
+ ],
5238
+ "description": "The color to use as text color in the badge. Cleared by setting it to <value>null</value>."
5239
+ },
5240
+ "tabId": {
5241
+ "type": "integer",
5242
+ "optional": true,
5243
+ "minimum": 0,
5244
+ "description": "Sets the text color for the badge only for the given tab."
5245
+ },
5246
+ "windowId": {
5247
+ "type": "integer",
5248
+ "optional": true,
5249
+ "minimum": -2,
5250
+ "unsupported": true,
5251
+ "description": "Will throw an error if used."
5252
+ }
5253
+ }
5254
+ }
5255
+ ]
5256
+ },
5257
+ {
5258
+ "name": "getBadgeTextColor",
5259
+ "type": "function",
5260
+ "description": "Gets the text color of the badge.",
5261
+ "async": true,
5262
+ "parameters": [
5263
+ {
5264
+ "name": "details",
5265
+ "type": "object",
5266
+ "properties": {
5267
+ "tabId": {
5268
+ "type": "integer",
5269
+ "optional": true,
5270
+ "minimum": 0,
5271
+ "description": "Specifies for which tab the badge text color should be retrieved. If no tab is specified, the global value is retrieved."
5043
5272
  },
5044
5273
  "windowId": {
5045
5274
  "type": "integer",
@@ -5085,7 +5314,7 @@
5085
5314
  "type": "null"
5086
5315
  }
5087
5316
  ],
5088
- "description": "The color to use as background in the badge. Cleared by setting it to <value>null</value> or an empty string."
5317
+ "description": "The color to use as background in the badge. Cleared by setting it to <value>null</value>."
5089
5318
  },
5090
5319
  "tabId": {
5091
5320
  "type": "integer",
@@ -5124,7 +5353,7 @@
5124
5353
  "type": "integer",
5125
5354
  "optional": true,
5126
5355
  "minimum": 0,
5127
- "description": "Specifies for which tab the badge background color should be retrieved. If no tab is specified, the global label is retrieved."
5356
+ "description": "Specifies for which tab the badge background color should be retrieved. If no tab is specified, the global value is retrieved."
5128
5357
  },
5129
5358
  "windowId": {
5130
5359
  "type": "integer",
@@ -5355,14 +5584,14 @@
5355
5584
  "optional": true,
5356
5585
  "format": "url",
5357
5586
  "preprocess": "localize",
5358
- "deprecated": "Unsupported on Thunderbird at this time."
5587
+ "deprecated": "Unsupported on Thunderbird."
5359
5588
  },
5360
5589
  "image_url": {
5361
5590
  "type": "string",
5362
5591
  "optional": true,
5363
5592
  "format": "url",
5364
5593
  "preprocess": "localize",
5365
- "deprecated": "Unsupported on Thunderbird at this time."
5594
+ "deprecated": "Unsupported on Thunderbird."
5366
5595
  },
5367
5596
  "search_url_get_params": {
5368
5597
  "type": "string",
@@ -5392,13 +5621,13 @@
5392
5621
  "type": "string",
5393
5622
  "optional": true,
5394
5623
  "preprocess": "localize",
5395
- "deprecated": "Unsupported on Thunderbird at this time."
5624
+ "deprecated": "Unsupported on Thunderbird."
5396
5625
  },
5397
5626
  "image_url_post_params": {
5398
5627
  "type": "string",
5399
5628
  "optional": true,
5400
5629
  "preprocess": "localize",
5401
- "deprecated": "Unsupported on Thunderbird at this time."
5630
+ "deprecated": "Unsupported on Thunderbird."
5402
5631
  },
5403
5632
  "search_form": {
5404
5633
  "type": "string",
@@ -5415,7 +5644,7 @@
5415
5644
  "preprocess": "localize"
5416
5645
  },
5417
5646
  "optional": true,
5418
- "deprecated": "Unsupported on Thunderbird at this time."
5647
+ "deprecated": "Unsupported on Thunderbird."
5419
5648
  },
5420
5649
  "prepopulated_id": {
5421
5650
  "type": "integer",
@@ -6036,7 +6265,13 @@
6036
6265
  "properties": {
6037
6266
  "id": {
6038
6267
  "type": "string",
6039
- "description": "The ID of a contact or mailing list from the :doc:`contacts` and :doc:`mailingLists`."
6268
+ "max_manifest_version": 2,
6269
+ "description": "The ID of a contact or mailing list from the :doc:`contacts` or :doc:`mailingLists`."
6270
+ },
6271
+ "nodeId": {
6272
+ "type": "string",
6273
+ "min_manifest_version": 3,
6274
+ "description": "The ID of a contact or mailing list node from the :doc:`addressBook.contacts` or :doc:`addressBook.mailingLists`."
6040
6275
  },
6041
6276
  "type": {
6042
6277
  "type": "string",
@@ -6109,6 +6344,11 @@
6109
6344
  "description": "An additional fcc folder which can be selected while composing the message, an empty string if not used.",
6110
6345
  "optional": true
6111
6346
  },
6347
+ "attachPublicPGPKey": {
6348
+ "type": "boolean",
6349
+ "optional": true,
6350
+ "description": "Whether the public OpenPGP key of the sending identity should be attached to the message."
6351
+ },
6112
6352
  "attachVCard": {
6113
6353
  "type": "boolean",
6114
6354
  "optional": true,
@@ -6166,6 +6406,18 @@
6166
6406
  "optional": true,
6167
6407
  "description": "Let the sender know when the recipient's server received the message. Not supported by all servers."
6168
6408
  },
6409
+ "selectedEncryptionTechnology": {
6410
+ "choices": [
6411
+ {
6412
+ "$ref": "compose.EncryptionPropertiesSMIME"
6413
+ },
6414
+ {
6415
+ "$ref": "compose.EncryptionPropertiesOpenPGP"
6416
+ }
6417
+ ],
6418
+ "optional": true,
6419
+ "description": "The selected encryption technology (<value>OpenPGP</value> or <value>S/MIME</value>) which is to be used to sign and/or encrypt the message. If the sending identity does not support encryption at all, this will be <value>undefined</value>."
6420
+ },
6169
6421
  "followupTo": {
6170
6422
  "$ref": "ComposeRecipientList",
6171
6423
  "optional": true
@@ -6350,28 +6602,68 @@
6350
6602
  "type": "boolean"
6351
6603
  },
6352
6604
  "description": "A <em>dictionary object</em> with entries for all installed dictionaries, having a language identifier as <em>key</em> (for example <value>en-US</value>) and a boolean expression as <em>value</em>, indicating whether that dictionary is enabled for spellchecking or not."
6353
- }
6354
- ],
6355
- "events": [
6605
+ },
6356
6606
  {
6357
- "name": "onBeforeSend",
6358
- "type": "function",
6359
- "description": "Fired when a message is about to be sent from the compose window. This is a user input event handler. For asynchronous listeners some `restrictions <|link-user-input-restrictions|>`__ apply.",
6360
- "permissions": [
6361
- "compose"
6362
- ],
6363
- "parameters": [
6364
- {
6365
- "name": "tab",
6366
- "$ref": "tabs.Tab"
6607
+ "id": "EncryptionPropertiesOpenPGP",
6608
+ "type": "object",
6609
+ "properties": {
6610
+ "name": {
6611
+ "type": "string",
6612
+ "pattern": "^OpenPGP$"
6367
6613
  },
6368
- {
6369
- "name": "details",
6370
- "$ref": "ComposeDetails",
6371
- "description": "The current state of the compose window. This is functionally the same as calling the :ref:`compose.getComposeDetails` function."
6372
- }
6373
- ],
6374
- "returns": {
6614
+ "encryptBody": {
6615
+ "type": "boolean",
6616
+ "description": "Whether encryption of the message body using the OpenPGP technology is enabled. **Note:** If encryption is enabled, but the `preconditions <https://support.mozilla.org/en-US/kb/thunderbird-help-cannot-encrypt>`__ for sending an encrypted message are not met, the message cannot be sent."
6617
+ },
6618
+ "encryptSubject": {
6619
+ "type": "boolean",
6620
+ "description": "Whether encryption of the message subject using the OpenPGP technology is enabled (only supported if encryption of the body is enabled a well)."
6621
+ },
6622
+ "signMessage": {
6623
+ "type": "boolean",
6624
+ "description": "Whether the message will be signed using the OpenPGP technology."
6625
+ }
6626
+ }
6627
+ },
6628
+ {
6629
+ "id": "EncryptionPropertiesSMIME",
6630
+ "type": "object",
6631
+ "properties": {
6632
+ "name": {
6633
+ "type": "string",
6634
+ "pattern": "^S/MIME$"
6635
+ },
6636
+ "encryptBody": {
6637
+ "type": "boolean",
6638
+ "description": "Whether encryption of the message body using the S/MIME technology is enabled. **Note:** If encryption is enabled, but the `preconditions <https://support.mozilla.org/en-US/kb/thunderbird-help-cannot-encrypt>`__ for sending an encrypted message are not met, the message cannot be sent."
6639
+ },
6640
+ "signMessage": {
6641
+ "type": "boolean",
6642
+ "description": "Whether the message will be signed using the S/MIME technology"
6643
+ }
6644
+ }
6645
+ }
6646
+ ],
6647
+ "events": [
6648
+ {
6649
+ "name": "onBeforeSend",
6650
+ "type": "function",
6651
+ "description": "Fired when a message is about to be sent from the compose window. This is a user input event handler. For asynchronous listeners some `restrictions <|link-user-input-restrictions|>`__ apply.",
6652
+ "permissions": [
6653
+ "compose"
6654
+ ],
6655
+ "parameters": [
6656
+ {
6657
+ "name": "tab",
6658
+ "$ref": "tabs.Tab"
6659
+ },
6660
+ {
6661
+ "name": "details",
6662
+ "$ref": "ComposeDetails",
6663
+ "description": "The current state of the compose window. This is functionally the same as calling the :ref:`compose.getComposeDetails` function."
6664
+ }
6665
+ ],
6666
+ "returns": {
6375
6667
  "type": "object",
6376
6668
  "properties": {
6377
6669
  "cancel": {
@@ -6696,7 +6988,7 @@
6696
6988
  "name": "setComposeDetails",
6697
6989
  "type": "function",
6698
6990
  "async": true,
6699
- "description": "Updates the compose window. The properties of the given :ref:`compose.ComposeDetails` object will be used to overwrite the current values of the specified compose window, so only properties that are to be changed should be included.\n\nWhen updating any of the array properties (``customHeaders`` and most address fields), make sure to first get the current values to not accidentally remove all existing entries when setting the new value.\n\n**Note:** The compose format of an existing compose window cannot be changed. Since Thunderbird 98, setting conflicting values for ``details.body``, ``details.plainTextBody`` or ``details.isPlaintext`` no longer throws an exception, instead the compose window chooses the matching ``details.body`` or ``details.plainTextBody`` value and ignores the other.",
6991
+ "description": "Updates the compose window. The properties of the given :ref:`compose.ComposeDetails` object will be used to overwrite the current values of the specified compose window, so only properties that are to be changed should be included. Modified settings will be treated as user initiated, and turn off further automatic changes on these settings.\n\nWhen updating any of the array properties (``customHeaders`` and most address fields), make sure to first get the current values to not accidentally remove all existing entries when setting the new value.\n\n**Note:** The compose format of an existing compose window cannot be changed. Since Thunderbird 98, setting conflicting values for ``details.body``, ``details.plainTextBody`` or ``details.isPlaintext`` no longer throws an exception, instead the compose window chooses the matching ``details.body`` or ``details.plainTextBody`` value and ignores the other.",
6700
6992
  "permissions": [
6701
6993
  "compose"
6702
6994
  ],
@@ -7333,7 +7625,7 @@
7333
7625
  "type": "integer",
7334
7626
  "optional": true,
7335
7627
  "minimum": 0,
7336
- "description": "Specifies for which tab the label should be retrieved. If no tab is specified, the global label is retrieved."
7628
+ "description": "Specifies for which tab the label should be retrieved. If no tab is specified, the global value is retrieved."
7337
7629
  },
7338
7630
  "windowId": {
7339
7631
  "type": "integer",
@@ -7554,7 +7846,86 @@
7554
7846
  "type": "integer",
7555
7847
  "optional": true,
7556
7848
  "minimum": 0,
7557
- "description": "Specifies for which tab the badge text should be retrieved. If no tab is specified, the global label is retrieved."
7849
+ "description": "Specifies for which tab the badge text should be retrieved. If no tab is specified, the global value is retrieved."
7850
+ },
7851
+ "windowId": {
7852
+ "type": "integer",
7853
+ "optional": true,
7854
+ "minimum": -2,
7855
+ "unsupported": true,
7856
+ "description": "Will throw an error if used."
7857
+ }
7858
+ }
7859
+ },
7860
+ {
7861
+ "type": "function",
7862
+ "name": "callback",
7863
+ "optional": true,
7864
+ "parameters": [
7865
+ {
7866
+ "name": "result",
7867
+ "type": "string"
7868
+ }
7869
+ ]
7870
+ }
7871
+ ]
7872
+ },
7873
+ {
7874
+ "name": "setBadgeTextColor",
7875
+ "type": "function",
7876
+ "description": "Sets the text color for the badge.",
7877
+ "async": true,
7878
+ "parameters": [
7879
+ {
7880
+ "name": "details",
7881
+ "type": "object",
7882
+ "properties": {
7883
+ "color": {
7884
+ "choices": [
7885
+ {
7886
+ "type": "string"
7887
+ },
7888
+ {
7889
+ "$ref": "ColorArray"
7890
+ },
7891
+ {
7892
+ "type": "null"
7893
+ }
7894
+ ],
7895
+ "description": "The color to use as text color in the badge. Cleared by setting it to <value>null</value>."
7896
+ },
7897
+ "tabId": {
7898
+ "type": "integer",
7899
+ "optional": true,
7900
+ "minimum": 0,
7901
+ "description": "Sets the text color for the badge only for the given tab."
7902
+ },
7903
+ "windowId": {
7904
+ "type": "integer",
7905
+ "optional": true,
7906
+ "minimum": -2,
7907
+ "unsupported": true,
7908
+ "description": "Will throw an error if used."
7909
+ }
7910
+ }
7911
+ }
7912
+ ]
7913
+ },
7914
+ {
7915
+ "name": "getBadgeTextColor",
7916
+ "type": "function",
7917
+ "description": "Gets the text color of the badge.",
7918
+ "async": true,
7919
+ "parameters": [
7920
+ {
7921
+ "name": "details",
7922
+ "type": "object",
7923
+ "properties": {
7924
+ "tabId": {
7925
+ "type": "integer",
7926
+ "optional": true,
7927
+ "minimum": 0,
7928
+ "description": "Specifies for which tab the badge text color should be retrieved. If no tab is specified, the global value is retrieved."
7558
7929
  },
7559
7930
  "windowId": {
7560
7931
  "type": "integer",
@@ -7600,7 +7971,7 @@
7600
7971
  "type": "null"
7601
7972
  }
7602
7973
  ],
7603
- "description": "The color to use as background in the badge. Cleared by setting it to <value>null</value> or an empty string."
7974
+ "description": "The color to use as background in the badge. Cleared by setting it to <value>null</value>."
7604
7975
  },
7605
7976
  "tabId": {
7606
7977
  "type": "integer",
@@ -7639,7 +8010,7 @@
7639
8010
  "type": "integer",
7640
8011
  "optional": true,
7641
8012
  "minimum": 0,
7642
- "description": "Specifies for which tab the badge background color should be retrieved. If no tab is specified, the global label is retrieved."
8013
+ "description": "Specifies for which tab the badge background color should be retrieved. If no tab is specified, the global value is retrieved."
7643
8014
  },
7644
8015
  "windowId": {
7645
8016
  "type": "integer",
@@ -7818,16 +8189,17 @@
7818
8189
  "permissions": [
7819
8190
  "compose"
7820
8191
  ],
8192
+ "max_manifest_version": 2,
7821
8193
  "types": [
7822
8194
  {
7823
8195
  "id": "RegisteredComposeScriptOptions",
7824
8196
  "type": "object",
7825
- "description": "Details of a compose script registered programmatically",
8197
+ "description": "Details of a compose script registered programmatically.",
7826
8198
  "properties": {
7827
8199
  "css": {
7828
8200
  "type": "array",
7829
8201
  "optional": true,
7830
- "description": "The list of CSS files to inject",
8202
+ "description": "The list of CSS files to inject.",
7831
8203
  "items": {
7832
8204
  "$ref": "extensionTypes.ExtensionFileOrCode"
7833
8205
  }
@@ -7835,7 +8207,7 @@
7835
8207
  "js": {
7836
8208
  "type": "array",
7837
8209
  "optional": true,
7838
- "description": "The list of JavaScript files to inject",
8210
+ "description": "The list of JavaScript files to inject.",
7839
8211
  "items": {
7840
8212
  "$ref": "extensionTypes.ExtensionFileOrCode"
7841
8213
  }
@@ -7845,12 +8217,12 @@
7845
8217
  {
7846
8218
  "id": "RegisteredComposeScript",
7847
8219
  "type": "object",
7848
- "description": "An object that represents a compose script registered programmatically",
8220
+ "description": "An object that represents a compose script registered programmatically.",
7849
8221
  "functions": [
7850
8222
  {
7851
8223
  "name": "unregister",
7852
8224
  "type": "function",
7853
- "description": "Unregister a compose script registered programmatically",
8225
+ "description": "Unregister a compose script registered programmatically.",
7854
8226
  "async": true,
7855
8227
  "parameters": []
7856
8228
  }
@@ -7861,7 +8233,7 @@
7861
8233
  {
7862
8234
  "name": "register",
7863
8235
  "type": "function",
7864
- "description": "Register a compose script programmatically",
8236
+ "description": "Register a compose script programmatically. **Note:** Registered scripts will only be applied to newly opened message composer tabs. To apply the script to already open message composer tab, manually inject your script by calling :ref:`tabs.executeScript` for each of the open <value>messageCompose</value> tabs.",
7865
8237
  "async": true,
7866
8238
  "parameters": [
7867
8239
  {
@@ -7877,6 +8249,7 @@
7877
8249
  "permissions": [
7878
8250
  "messagesModify"
7879
8251
  ],
8252
+ "max_manifest_version": 2,
7880
8253
  "types": [
7881
8254
  {
7882
8255
  "id": "RegisteredMessageDisplayScriptOptions",
@@ -8397,19 +8770,80 @@
8397
8770
  {
8398
8771
  "name": "get",
8399
8772
  "type": "function",
8773
+ "min_manifest_version": 3,
8400
8774
  "description": "Returns the specified folder.",
8401
8775
  "async": "callback",
8402
8776
  "parameters": [
8403
8777
  {
8404
- "name": "folder",
8778
+ "name": "folderId",
8779
+ "$ref": "folders.MailFolderId"
8780
+ },
8781
+ {
8782
+ "name": "includeSubFolders",
8783
+ "optional": true,
8784
+ "type": "boolean",
8785
+ "default": false,
8786
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object should include all its nested subfolders. Defaults to <value>false</value>."
8787
+ },
8788
+ {
8789
+ "type": "function",
8790
+ "name": "callback",
8791
+ "optional": true,
8792
+ "parameters": [
8793
+ {
8794
+ "$ref": "folders.MailFolder"
8795
+ }
8796
+ ]
8797
+ }
8798
+ ]
8799
+ },
8800
+ {
8801
+ "name": "get",
8802
+ "type": "function",
8803
+ "max_manifest_version": 2,
8804
+ "description": "Returns the specified folder.",
8805
+ "async": "callback",
8806
+ "parameters": [
8807
+ {
8808
+ "name": "folderId",
8405
8809
  "$ref": "folders.MailFolderId"
8406
8810
  },
8407
8811
  {
8408
8812
  "name": "includeSubFolders",
8409
- "description": "Specifies whether the returned :ref:`folders.MailFolder` object should include all its nested subfolders . Defaults to <value>true</value>.",
8410
8813
  "optional": true,
8814
+ "type": "boolean",
8411
8815
  "default": true,
8412
- "type": "boolean"
8816
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object should include all its nested subfolders. Defaults to <value>true</value>."
8817
+ },
8818
+ {
8819
+ "type": "function",
8820
+ "name": "callback",
8821
+ "optional": true,
8822
+ "parameters": [
8823
+ {
8824
+ "$ref": "folders.MailFolder"
8825
+ }
8826
+ ]
8827
+ }
8828
+ ]
8829
+ },
8830
+ {
8831
+ "name": "create",
8832
+ "type": "function",
8833
+ "min_manifest_version": 3,
8834
+ "permissions": [
8835
+ "accountsFolders"
8836
+ ],
8837
+ "description": "Creates a new subfolder in the specified folder.",
8838
+ "async": "callback",
8839
+ "parameters": [
8840
+ {
8841
+ "name": "folderId",
8842
+ "$ref": "folders.MailFolderId"
8843
+ },
8844
+ {
8845
+ "name": "childName",
8846
+ "type": "string"
8413
8847
  },
8414
8848
  {
8415
8849
  "type": "function",
@@ -8426,10 +8860,11 @@
8426
8860
  {
8427
8861
  "name": "create",
8428
8862
  "type": "function",
8863
+ "max_manifest_version": 2,
8429
8864
  "permissions": [
8430
8865
  "accountsFolders"
8431
8866
  ],
8432
- "description": "Creates a new subfolder in the specified folder or at the root of the specified account.",
8867
+ "description": "Creates a new subfolder in the specified folder, or at the root of the specified account.",
8433
8868
  "async": "callback",
8434
8869
  "parameters": [
8435
8870
  {
@@ -8439,12 +8874,10 @@
8439
8874
  "$ref": "folders.MailFolderId"
8440
8875
  },
8441
8876
  {
8442
- "max_manifest_version": 2,
8443
8877
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.create() requires to specify a MailFolderId instead of a full MailFolder object.",
8444
8878
  "$ref": "folders.MailFolder"
8445
8879
  },
8446
8880
  {
8447
- "max_manifest_version": 2,
8448
8881
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.create() requires to specify the MailFolderId of the account's rootFolder, instead of a full MailAccount object.",
8449
8882
  "$ref": "accounts.MailAccount"
8450
8883
  }
@@ -8469,6 +8902,7 @@
8469
8902
  {
8470
8903
  "name": "rename",
8471
8904
  "type": "function",
8905
+ "max_manifest_version": 2,
8472
8906
  "permissions": [
8473
8907
  "accountsFolders"
8474
8908
  ],
@@ -8482,7 +8916,6 @@
8482
8916
  "$ref": "folders.MailFolderId"
8483
8917
  },
8484
8918
  {
8485
- "max_manifest_version": 2,
8486
8919
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.rename() requires to specify a MailFolderId instead of a full MailFolder object.",
8487
8920
  "$ref": "folders.MailFolder"
8488
8921
  }
@@ -8504,9 +8937,40 @@
8504
8937
  }
8505
8938
  ]
8506
8939
  },
8940
+ {
8941
+ "name": "rename",
8942
+ "type": "function",
8943
+ "min_manifest_version": 3,
8944
+ "permissions": [
8945
+ "accountsFolders"
8946
+ ],
8947
+ "description": "Renames a folder.",
8948
+ "async": "callback",
8949
+ "parameters": [
8950
+ {
8951
+ "name": "folderId",
8952
+ "$ref": "folders.MailFolderId"
8953
+ },
8954
+ {
8955
+ "name": "newName",
8956
+ "type": "string"
8957
+ },
8958
+ {
8959
+ "type": "function",
8960
+ "name": "callback",
8961
+ "optional": true,
8962
+ "parameters": [
8963
+ {
8964
+ "$ref": "folders.MailFolder"
8965
+ }
8966
+ ]
8967
+ }
8968
+ ]
8969
+ },
8507
8970
  {
8508
8971
  "name": "move",
8509
8972
  "type": "function",
8973
+ "max_manifest_version": 2,
8510
8974
  "permissions": [
8511
8975
  "accountsFolders"
8512
8976
  ],
@@ -8520,7 +8984,6 @@
8520
8984
  "$ref": "folders.MailFolderId"
8521
8985
  },
8522
8986
  {
8523
- "max_manifest_version": 2,
8524
8987
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.move() requires to specify a MailFolderId for its source parameter, instead of a full MailFolder object.",
8525
8988
  "$ref": "folders.MailFolder"
8526
8989
  }
@@ -8533,12 +8996,10 @@
8533
8996
  "$ref": "folders.MailFolderId"
8534
8997
  },
8535
8998
  {
8536
- "max_manifest_version": 2,
8537
8999
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.move() requires to specify a MailFolderId for its destination parameter, instead of a full MailFolder object.",
8538
9000
  "$ref": "folders.MailFolder"
8539
9001
  },
8540
9002
  {
8541
- "max_manifest_version": 2,
8542
9003
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.move() requires to specify the MailFolderId of the account's rootFolder for its destination parameter, instead of a full MailAccount object.",
8543
9004
  "$ref": "accounts.MailAccount"
8544
9005
  }
@@ -8556,9 +9017,40 @@
8556
9017
  }
8557
9018
  ]
8558
9019
  },
9020
+ {
9021
+ "name": "move",
9022
+ "type": "function",
9023
+ "min_manifest_version": 3,
9024
+ "permissions": [
9025
+ "accountsFolders"
9026
+ ],
9027
+ "description": "Moves the given source folder into the given destination folder. Throws if the destination already contains a folder with the name of the source folder.",
9028
+ "async": "callback",
9029
+ "parameters": [
9030
+ {
9031
+ "name": "sourceFolderId",
9032
+ "$ref": "folders.MailFolderId"
9033
+ },
9034
+ {
9035
+ "name": "destinationFolderId",
9036
+ "$ref": "folders.MailFolderId"
9037
+ },
9038
+ {
9039
+ "type": "function",
9040
+ "name": "callback",
9041
+ "optional": true,
9042
+ "parameters": [
9043
+ {
9044
+ "$ref": "folders.MailFolder"
9045
+ }
9046
+ ]
9047
+ }
9048
+ ]
9049
+ },
8559
9050
  {
8560
9051
  "name": "copy",
8561
9052
  "type": "function",
9053
+ "max_manifest_version": 2,
8562
9054
  "permissions": [
8563
9055
  "accountsFolders"
8564
9056
  ],
@@ -8572,7 +9064,6 @@
8572
9064
  "$ref": "folders.MailFolderId"
8573
9065
  },
8574
9066
  {
8575
- "max_manifest_version": 2,
8576
9067
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.copy() requires to specify a MailFolderId for its source parameter, instead of a full MailFolder object.",
8577
9068
  "$ref": "folders.MailFolder"
8578
9069
  }
@@ -8585,12 +9076,10 @@
8585
9076
  "$ref": "folders.MailFolderId"
8586
9077
  },
8587
9078
  {
8588
- "max_manifest_version": 2,
8589
9079
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.copy() requires to specify a MailFolderId for its destination parameter, instead of a full MailFolder object.",
8590
9080
  "$ref": "folders.MailFolder"
8591
9081
  },
8592
9082
  {
8593
- "max_manifest_version": 2,
8594
9083
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.copy() requires to specify the MailFolderId of the account's rootFolder for its destination parameter, instead of a full MailAccount object.",
8595
9084
  "$ref": "accounts.MailAccount"
8596
9085
  }
@@ -8608,6 +9097,36 @@
8608
9097
  }
8609
9098
  ]
8610
9099
  },
9100
+ {
9101
+ "name": "copy",
9102
+ "type": "function",
9103
+ "min_manifest_version": 3,
9104
+ "permissions": [
9105
+ "accountsFolders"
9106
+ ],
9107
+ "description": "Copies the given source folder into the given destination folder. Throws if the destination already contains a folder with the name of the source folder.",
9108
+ "async": "callback",
9109
+ "parameters": [
9110
+ {
9111
+ "name": "sourceFolderId",
9112
+ "$ref": "folders.MailFolderId"
9113
+ },
9114
+ {
9115
+ "name": "destinationFolderId",
9116
+ "$ref": "folders.MailFolderId"
9117
+ },
9118
+ {
9119
+ "type": "function",
9120
+ "name": "callback",
9121
+ "optional": true,
9122
+ "parameters": [
9123
+ {
9124
+ "$ref": "folders.MailFolder"
9125
+ }
9126
+ ]
9127
+ }
9128
+ ]
9129
+ },
8611
9130
  {
8612
9131
  "name": "delete",
8613
9132
  "permissions": [
@@ -8615,6 +9134,7 @@
8615
9134
  "messagesDelete"
8616
9135
  ],
8617
9136
  "type": "function",
9137
+ "max_manifest_version": 2,
8618
9138
  "description": "Deletes a folder.",
8619
9139
  "async": true,
8620
9140
  "parameters": [
@@ -8625,7 +9145,6 @@
8625
9145
  "$ref": "folders.MailFolderId"
8626
9146
  },
8627
9147
  {
8628
- "max_manifest_version": 2,
8629
9148
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.delete() requires to specify a MailFolderId instead of a full MailFolder object.",
8630
9149
  "$ref": "folders.MailFolder"
8631
9150
  }
@@ -8633,12 +9152,30 @@
8633
9152
  }
8634
9153
  ]
8635
9154
  },
9155
+ {
9156
+ "name": "delete",
9157
+ "permissions": [
9158
+ "accountsFolders",
9159
+ "messagesDelete"
9160
+ ],
9161
+ "type": "function",
9162
+ "min_manifest_version": 3,
9163
+ "description": "Deletes a folder.",
9164
+ "async": true,
9165
+ "parameters": [
9166
+ {
9167
+ "name": "folderId",
9168
+ "$ref": "folders.MailFolderId"
9169
+ }
9170
+ ]
9171
+ },
8636
9172
  {
8637
9173
  "name": "update",
8638
9174
  "permissions": [
8639
9175
  "accountsFolders"
8640
9176
  ],
8641
9177
  "type": "function",
9178
+ "max_manifest_version": 2,
8642
9179
  "description": "Updates properties of a folder.",
8643
9180
  "async": true,
8644
9181
  "parameters": [
@@ -8649,7 +9186,6 @@
8649
9186
  "$ref": "folders.MailFolderId"
8650
9187
  },
8651
9188
  {
8652
- "max_manifest_version": 2,
8653
9189
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.update() requires to specify a MailFolderId instead of a full MailFolder object.",
8654
9190
  "$ref": "folders.MailFolder"
8655
9191
  }
@@ -8669,9 +9205,38 @@
8669
9205
  }
8670
9206
  ]
8671
9207
  },
9208
+ {
9209
+ "name": "update",
9210
+ "permissions": [
9211
+ "accountsFolders"
9212
+ ],
9213
+ "type": "function",
9214
+ "min_manifest_version": 3,
9215
+ "description": "Updates properties of a folder.",
9216
+ "async": true,
9217
+ "parameters": [
9218
+ {
9219
+ "name": "folderId",
9220
+ "$ref": "folders.MailFolderId"
9221
+ },
9222
+ {
9223
+ "name": "updateProperties",
9224
+ "type": "object",
9225
+ "description": "The properties to update.",
9226
+ "properties": {
9227
+ "isFavorite": {
9228
+ "type": "boolean",
9229
+ "optional": true,
9230
+ "description": "Sets or clears the favorite status."
9231
+ }
9232
+ }
9233
+ }
9234
+ ]
9235
+ },
8672
9236
  {
8673
9237
  "name": "getFolderInfo",
8674
9238
  "type": "function",
9239
+ "max_manifest_version": 2,
8675
9240
  "description": "Get additional information about a folder.",
8676
9241
  "async": "callback",
8677
9242
  "parameters": [
@@ -8682,7 +9247,6 @@
8682
9247
  "$ref": "folders.MailFolderId"
8683
9248
  },
8684
9249
  {
8685
- "max_manifest_version": 2,
8686
9250
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getFolderInfo() requires to specify a MailFolderId instead of a full MailFolder object.",
8687
9251
  "$ref": "folders.MailFolder"
8688
9252
  }
@@ -8700,9 +9264,33 @@
8700
9264
  }
8701
9265
  ]
8702
9266
  },
9267
+ {
9268
+ "name": "getFolderInfo",
9269
+ "type": "function",
9270
+ "min_manifest_version": 3,
9271
+ "description": "Get additional information about a folder.",
9272
+ "async": "callback",
9273
+ "parameters": [
9274
+ {
9275
+ "name": "folderId",
9276
+ "$ref": "folders.MailFolderId"
9277
+ },
9278
+ {
9279
+ "type": "function",
9280
+ "name": "callback",
9281
+ "optional": true,
9282
+ "parameters": [
9283
+ {
9284
+ "$ref": "folders.MailFolderInfo"
9285
+ }
9286
+ ]
9287
+ }
9288
+ ]
9289
+ },
8703
9290
  {
8704
9291
  "name": "getFolderCapabilities",
8705
9292
  "type": "function",
9293
+ "max_manifest_version": 2,
8706
9294
  "description": "Get capability information about a folder.",
8707
9295
  "async": "callback",
8708
9296
  "parameters": [
@@ -8713,7 +9301,6 @@
8713
9301
  "$ref": "folders.MailFolderId"
8714
9302
  },
8715
9303
  {
8716
- "max_manifest_version": 2,
8717
9304
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getFolderCapabilities() requires to specify a MailFolderId instead of a full MailFolder object.",
8718
9305
  "$ref": "folders.MailFolder"
8719
9306
  }
@@ -8731,9 +9318,33 @@
8731
9318
  }
8732
9319
  ]
8733
9320
  },
9321
+ {
9322
+ "name": "getFolderCapabilities",
9323
+ "type": "function",
9324
+ "min_manifest_version": 3,
9325
+ "description": "Get capability information about a folder.",
9326
+ "async": "callback",
9327
+ "parameters": [
9328
+ {
9329
+ "name": "folderId",
9330
+ "$ref": "folders.MailFolderId"
9331
+ },
9332
+ {
9333
+ "type": "function",
9334
+ "name": "callback",
9335
+ "optional": true,
9336
+ "parameters": [
9337
+ {
9338
+ "$ref": "folders.MailFolderCapabilities"
9339
+ }
9340
+ ]
9341
+ }
9342
+ ]
9343
+ },
8734
9344
  {
8735
9345
  "name": "getParentFolders",
8736
9346
  "type": "function",
9347
+ "max_manifest_version": 2,
8737
9348
  "description": "Get all parent folders as a flat ordered array. The first array entry is the direct parent.",
8738
9349
  "async": "callback",
8739
9350
  "parameters": [
@@ -8744,7 +9355,6 @@
8744
9355
  "$ref": "folders.MailFolderId"
8745
9356
  },
8746
9357
  {
8747
- "max_manifest_version": 2,
8748
9358
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getParentFolders() requires to specify a MailFolderId instead of a full MailFolder object.",
8749
9359
  "$ref": "folders.MailFolder"
8750
9360
  }
@@ -8752,7 +9362,40 @@
8752
9362
  },
8753
9363
  {
8754
9364
  "name": "includeSubFolders",
8755
- "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each parent folder should include its nested subfolders . Defaults to <value>false</value>.",
9365
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each parent folder should include its nested subfolders. Defaults to <value>false</value>.",
9366
+ "optional": true,
9367
+ "default": false,
9368
+ "type": "boolean"
9369
+ },
9370
+ {
9371
+ "type": "function",
9372
+ "name": "callback",
9373
+ "optional": true,
9374
+ "parameters": [
9375
+ {
9376
+ "type": "array",
9377
+ "items": {
9378
+ "$ref": "folders.MailFolder"
9379
+ }
9380
+ }
9381
+ ]
9382
+ }
9383
+ ]
9384
+ },
9385
+ {
9386
+ "name": "getParentFolders",
9387
+ "type": "function",
9388
+ "min_manifest_version": 3,
9389
+ "description": "Get all parent folders as a flat ordered array. The first array entry is the direct parent.",
9390
+ "async": "callback",
9391
+ "parameters": [
9392
+ {
9393
+ "name": "folderId",
9394
+ "$ref": "folders.MailFolderId"
9395
+ },
9396
+ {
9397
+ "name": "includeSubFolders",
9398
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each parent folder should include its nested subfolders. Defaults to <value>false</value>.",
8756
9399
  "optional": true,
8757
9400
  "default": false,
8758
9401
  "type": "boolean"
@@ -8775,6 +9418,40 @@
8775
9418
  {
8776
9419
  "name": "getSubFolders",
8777
9420
  "type": "function",
9421
+ "min_manifest_version": 3,
9422
+ "description": "Get the subfolders of the specified folder.",
9423
+ "async": "callback",
9424
+ "parameters": [
9425
+ {
9426
+ "name": "folderId",
9427
+ "$ref": "folders.MailFolderId"
9428
+ },
9429
+ {
9430
+ "name": "includeSubFolders",
9431
+ "optional": true,
9432
+ "type": "boolean",
9433
+ "default": false,
9434
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each direct subfolder should also include all its nested subfolders. Defaults to <value>false</value>."
9435
+ },
9436
+ {
9437
+ "type": "function",
9438
+ "name": "callback",
9439
+ "optional": true,
9440
+ "parameters": [
9441
+ {
9442
+ "type": "array",
9443
+ "items": {
9444
+ "$ref": "folders.MailFolder"
9445
+ }
9446
+ }
9447
+ ]
9448
+ }
9449
+ ]
9450
+ },
9451
+ {
9452
+ "name": "getSubFolders",
9453
+ "type": "function",
9454
+ "max_manifest_version": 2,
8778
9455
  "description": "Get the subfolders of the specified folder or account.",
8779
9456
  "async": "callback",
8780
9457
  "parameters": [
@@ -8785,12 +9462,10 @@
8785
9462
  "$ref": "folders.MailFolderId"
8786
9463
  },
8787
9464
  {
8788
- "max_manifest_version": 2,
8789
9465
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getSubFolders() requires to specify a MailFolderId instead of a full MailFolder object.",
8790
9466
  "$ref": "folders.MailFolder"
8791
9467
  },
8792
9468
  {
8793
- "max_manifest_version": 2,
8794
9469
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.getSubFolders() requires to specify the MailFolderId of the account's rootFolder, instead of a full MailAccount object.",
8795
9470
  "$ref": "accounts.MailAccount"
8796
9471
  }
@@ -8798,10 +9473,10 @@
8798
9473
  },
8799
9474
  {
8800
9475
  "name": "includeSubFolders",
8801
- "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each direct subfolder should also include all its nested subfolders . Defaults to <value>true</value>.",
8802
9476
  "optional": true,
9477
+ "type": "boolean",
8803
9478
  "default": true,
8804
- "type": "boolean"
9479
+ "description": "Specifies whether the returned :ref:`folders.MailFolder` object for each direct subfolder should also include all its nested subfolders. Defaults to <value>true</value>."
8805
9480
  },
8806
9481
  {
8807
9482
  "type": "function",
@@ -8884,6 +9559,7 @@
8884
9559
  "accountsFolders"
8885
9560
  ],
8886
9561
  "type": "function",
9562
+ "max_manifest_version": 2,
8887
9563
  "description": "Marks all messages in a folder as read.",
8888
9564
  "async": false,
8889
9565
  "parameters": [
@@ -8894,13 +9570,28 @@
8894
9570
  "$ref": "folders.MailFolderId"
8895
9571
  },
8896
9572
  {
8897
- "max_manifest_version": 2,
8898
9573
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: folders.markAsRead() requires to specify a MailFolderId instead of a full MailFolder object.",
8899
9574
  "$ref": "folders.MailFolder"
8900
9575
  }
8901
9576
  ]
8902
9577
  }
8903
9578
  ]
9579
+ },
9580
+ {
9581
+ "name": "markAsRead",
9582
+ "permissions": [
9583
+ "accountsFolders"
9584
+ ],
9585
+ "type": "function",
9586
+ "min_manifest_version": 3,
9587
+ "description": "Marks all messages in a folder as read.",
9588
+ "async": false,
9589
+ "parameters": [
9590
+ {
9591
+ "name": "folderId",
9592
+ "$ref": "folders.MailFolderId"
9593
+ }
9594
+ ]
8904
9595
  }
8905
9596
  ],
8906
9597
  "events": [
@@ -9027,6 +9718,20 @@
9027
9718
  "accountsRead"
9028
9719
  ],
9029
9720
  "types": [
9721
+ {
9722
+ "id": "EncryptionCapabilities",
9723
+ "type": "object",
9724
+ "properties": {
9725
+ "canEncrypt": {
9726
+ "type": "boolean",
9727
+ "description": "Whether the encryption technology is configured to support message encryption."
9728
+ },
9729
+ "canSign": {
9730
+ "type": "boolean",
9731
+ "description": "Whether the encryption technology is configured to support message signing."
9732
+ }
9733
+ }
9734
+ },
9030
9735
  {
9031
9736
  "id": "MailIdentity",
9032
9737
  "type": "object",
@@ -9080,6 +9785,21 @@
9080
9785
  "type": "boolean",
9081
9786
  "optional": true,
9082
9787
  "description": "If the signature should be interpreted as plain text or as HTML."
9788
+ },
9789
+ "encryptionCapabilities": {
9790
+ "type": "object",
9791
+ "optional": true,
9792
+ "description": "The encryption capabilities of this identity. Read only.",
9793
+ "properties": {
9794
+ "OpenPGP": {
9795
+ "$ref": "identities.EncryptionCapabilities",
9796
+ "description": "The capabilities of this identity for the OpenPGP encryption technology."
9797
+ },
9798
+ "S/MIME": {
9799
+ "$ref": "identities.EncryptionCapabilities",
9800
+ "description": "The capabilities of this identity for the S/MIME encryption technology."
9801
+ }
9802
+ }
9083
9803
  }
9084
9804
  }
9085
9805
  }
@@ -9326,6 +10046,11 @@
9326
10046
  "type": "object",
9327
10047
  "properties": {
9328
10048
  "id": {
10049
+ "max_manifest_version": 2,
10050
+ "type": "integer"
10051
+ },
10052
+ "tabId": {
10053
+ "min_manifest_version": 3,
9329
10054
  "type": "integer"
9330
10055
  },
9331
10056
  "windowId": {
@@ -9334,6 +10059,17 @@
9334
10059
  "active": {
9335
10060
  "type": "boolean"
9336
10061
  },
10062
+ "groupType": {
10063
+ "type": "string",
10064
+ "min_manifest_version": 3,
10065
+ "description": "Grouping type of the message list.",
10066
+ "optional": true,
10067
+ "enum": [
10068
+ "ungrouped",
10069
+ "groupedByThread",
10070
+ "groupedBySortType"
10071
+ ]
10072
+ },
9337
10073
  "sortType": {
9338
10074
  "type": "string",
9339
10075
  "description": "The primary sort column of the message list.",
@@ -9373,7 +10109,8 @@
9373
10109
  },
9374
10110
  "viewType": {
9375
10111
  "type": "string",
9376
- "description": "Group mode of the message list.",
10112
+ "max_manifest_version": 2,
10113
+ "description": "Grouping type of the message list.",
9377
10114
  "optional": true,
9378
10115
  "enum": [
9379
10116
  "ungrouped",
@@ -9425,6 +10162,17 @@
9425
10162
  "id": "MailTabProperties",
9426
10163
  "type": "object",
9427
10164
  "properties": {
10165
+ "groupType": {
10166
+ "type": "string",
10167
+ "min_manifest_version": 3,
10168
+ "description": "Grouping type of the message list.",
10169
+ "optional": true,
10170
+ "enum": [
10171
+ "ungrouped",
10172
+ "groupedByThread",
10173
+ "groupedBySortType"
10174
+ ]
10175
+ },
9428
10176
  "sortType": {
9429
10177
  "type": "string",
9430
10178
  "description": "Sorts the list of messages. ``sortOrder`` must also be given.",
@@ -9464,7 +10212,8 @@
9464
10212
  },
9465
10213
  "viewType": {
9466
10214
  "type": "string",
9467
- "description": "Sets the group mode of displayed messages.",
10215
+ "max_manifest_version": 2,
10216
+ "description": "Sets the grouping type of displayed messages.",
9468
10217
  "optional": true,
9469
10218
  "enum": [
9470
10219
  "ungrouped",
@@ -9603,7 +10352,7 @@
9603
10352
  {
9604
10353
  "type": "array",
9605
10354
  "items": {
9606
- "$ref": "MailTab"
10355
+ "$ref": "mailTabs.MailTab"
9607
10356
  }
9608
10357
  }
9609
10358
  ]
@@ -9613,13 +10362,13 @@
9613
10362
  {
9614
10363
  "name": "get",
9615
10364
  "type": "function",
9616
- "description": "Get the properties of a mail tab.",
10365
+ "description": "Get the :ref:`mailTabs.MailTab` properties of a mail tab.",
9617
10366
  "async": "callback",
9618
10367
  "parameters": [
9619
10368
  {
9620
10369
  "name": "tabId",
9621
10370
  "type": "integer",
9622
- "description": "ID of the requested mail tab. Throws if the requested tab is not a mail tab."
10371
+ "description": "ID of the requested mail tab. Throws if the requested <value>tabId</value> does not belong to a mail tab."
9623
10372
  },
9624
10373
  {
9625
10374
  "type": "function",
@@ -9627,7 +10376,7 @@
9627
10376
  "optional": true,
9628
10377
  "parameters": [
9629
10378
  {
9630
- "$ref": "MailTab"
10379
+ "$ref": "mailTabs.MailTab"
9631
10380
  }
9632
10381
  ]
9633
10382
  }
@@ -9636,7 +10385,8 @@
9636
10385
  {
9637
10386
  "name": "getCurrent",
9638
10387
  "type": "function",
9639
- "description": "Get the properties of the active mail tab, if the active tab is a mail tab. Returns <value>undefined</value> otherwise.",
10388
+ "max_manifest_version": 2,
10389
+ "description": "Get the :ref:`mailTabs.MailTab` properties of the active mail tab. Returns <value>undefined</value>, if the active tab is not a mail tab.",
9640
10390
  "async": "callback",
9641
10391
  "parameters": [
9642
10392
  {
@@ -9645,7 +10395,7 @@
9645
10395
  "optional": true,
9646
10396
  "parameters": [
9647
10397
  {
9648
- "$ref": "MailTab",
10398
+ "$ref": "mailTabs.MailTab",
9649
10399
  "optional": true,
9650
10400
  "description": "This may return undefined"
9651
10401
  }
@@ -9661,7 +10411,7 @@
9661
10411
  "parameters": [
9662
10412
  {
9663
10413
  "name": "createProperties",
9664
- "$ref": "MailTabProperties",
10414
+ "$ref": "mailTabs.MailTabProperties",
9665
10415
  "optional": true,
9666
10416
  "default": {}
9667
10417
  },
@@ -9672,7 +10422,7 @@
9672
10422
  "parameters": [
9673
10423
  {
9674
10424
  "name": "mailTab",
9675
- "$ref": "MailTab",
10425
+ "$ref": "mailTabs.MailTab",
9676
10426
  "description": "Details about the created mail tab. Will contain the ID of the new tab."
9677
10427
  }
9678
10428
  ]
@@ -9694,7 +10444,7 @@
9694
10444
  },
9695
10445
  {
9696
10446
  "name": "updateProperties",
9697
- "$ref": "MailTabProperties"
10447
+ "$ref": "mailTabs.MailTabProperties"
9698
10448
  },
9699
10449
  {
9700
10450
  "type": "function",
@@ -9703,7 +10453,7 @@
9703
10453
  "parameters": [
9704
10454
  {
9705
10455
  "name": "mailTab",
9706
- "$ref": "MailTab",
10456
+ "$ref": "mailTabs.MailTab",
9707
10457
  "description": "Details about the updated mail tab."
9708
10458
  }
9709
10459
  ]
@@ -9848,7 +10598,7 @@
9848
10598
  "optional": true
9849
10599
  },
9850
10600
  "text": {
9851
- "$ref": "QuickFilterTextDetail",
10601
+ "$ref": "mailTabs.QuickFilterTextDetail",
9852
10602
  "description": "Shows only messages matching the supplied text.",
9853
10603
  "optional": true
9854
10604
  }
@@ -10089,7 +10839,7 @@
10089
10839
  "selectedMessages": {
10090
10840
  "$ref": "messages.MessageList",
10091
10841
  "optional": true,
10092
- "description": "The selected messages, if the context menu was opened in the message list. The <permission>messagesRead</permission> permission is required."
10842
+ "description": "The selected message(s), if the context menu was opened in the message list. The <permission>messagesRead</permission> permission is required."
10093
10843
  },
10094
10844
  "displayedFolder": {
10095
10845
  "$ref": "folders.MailFolder",
@@ -10098,11 +10848,21 @@
10098
10848
  },
10099
10849
  "selectedFolder": {
10100
10850
  "$ref": "folders.MailFolder",
10851
+ "max_manifest_version": 2,
10101
10852
  "optional": true,
10102
10853
  "description": "The selected folder, if the context menu was opened in the folder pane. The <permission>accountsRead</permission> permission is required."
10103
10854
  },
10855
+ "selectedFolders": {
10856
+ "type": "array",
10857
+ "items": {
10858
+ "$ref": "folders.MailFolder"
10859
+ },
10860
+ "optional": true,
10861
+ "description": "The selected folder(s), if the context menu was opened in the folder pane. The <permission>accountsRead</permission> permission is required."
10862
+ },
10104
10863
  "selectedAccount": {
10105
10864
  "$ref": "accounts.MailAccount",
10865
+ "max_manifest_version": 2,
10106
10866
  "optional": true,
10107
10867
  "description": "The selected account, if the context menu was opened on an account entry in the folder pane. The <permission>accountsRead</permission> permission is required."
10108
10868
  },
@@ -10251,7 +11011,7 @@
10251
11011
  "selectedMessages": {
10252
11012
  "$ref": "messages.MessageList",
10253
11013
  "optional": true,
10254
- "description": "The selected messages, if the context menu was opened in the message list. The <permission>messagesRead</permission> permission is required."
11014
+ "description": "The selected message(s), if the context menu was opened in the message list. The <permission>messagesRead</permission> permission is required."
10255
11015
  },
10256
11016
  "displayedFolder": {
10257
11017
  "$ref": "folders.MailFolder",
@@ -10260,11 +11020,21 @@
10260
11020
  },
10261
11021
  "selectedFolder": {
10262
11022
  "$ref": "folders.MailFolder",
11023
+ "max_manifest_version": 2,
10263
11024
  "optional": true,
10264
11025
  "description": "The selected folder, if the context menu was opened in the folder pane. The <permission>accountsRead</permission> permission is required."
10265
11026
  },
11027
+ "selectedFolders": {
11028
+ "type": "array",
11029
+ "items": {
11030
+ "$ref": "folders.MailFolder"
11031
+ },
11032
+ "optional": true,
11033
+ "description": "The selected folder(s), if the context menu was opened in the folder pane. The <permission>accountsRead</permission> permission is required."
11034
+ },
10266
11035
  "selectedAccount": {
10267
11036
  "$ref": "accounts.MailAccount",
11037
+ "max_manifest_version": 2,
10268
11038
  "optional": true,
10269
11039
  "description": "The selected account, if the context menu was opened on an account entry in the folder pane. The <permission>accountsRead</permission> permission is required."
10270
11040
  },
@@ -10765,6 +11535,7 @@
10765
11535
  {
10766
11536
  "name": "onMessageDisplayed",
10767
11537
  "type": "function",
11538
+ "max_manifest_version": 2,
10768
11539
  "description": "Fired when a message is displayed, whether in a 3-pane tab, a message tab, or a message window.",
10769
11540
  "parameters": [
10770
11541
  {
@@ -10799,6 +11570,7 @@
10799
11570
  "functions": [
10800
11571
  {
10801
11572
  "name": "getDisplayedMessage",
11573
+ "max_manifest_version": 2,
10802
11574
  "type": "function",
10803
11575
  "description": "Gets the currently displayed message in the specified tab (even if the tab itself is currently not visible), or the currently active tab. It returns <value>null</value> if no messages are displayed, or if multiple messages are displayed.",
10804
11576
  "async": "callback",
@@ -11202,7 +11974,7 @@
11202
11974
  "type": "integer",
11203
11975
  "optional": true,
11204
11976
  "minimum": 0,
11205
- "description": "Specifies for which tab the label should be retrieved. If no tab is specified, the global label is retrieved."
11977
+ "description": "Specifies for which tab the label should be retrieved. If no tab is specified, the global value is retrieved."
11206
11978
  },
11207
11979
  "windowId": {
11208
11980
  "type": "integer",
@@ -11423,7 +12195,86 @@
11423
12195
  "type": "integer",
11424
12196
  "optional": true,
11425
12197
  "minimum": 0,
11426
- "description": "Specifies for which tab the badge text should be retrieved. If no tab is specified, the global label is retrieved."
12198
+ "description": "Specifies for which tab the badge text should be retrieved. If no tab is specified, the global value is retrieved."
12199
+ },
12200
+ "windowId": {
12201
+ "type": "integer",
12202
+ "optional": true,
12203
+ "minimum": -2,
12204
+ "unsupported": true,
12205
+ "description": "Will throw an error if used."
12206
+ }
12207
+ }
12208
+ },
12209
+ {
12210
+ "type": "function",
12211
+ "name": "callback",
12212
+ "optional": true,
12213
+ "parameters": [
12214
+ {
12215
+ "name": "result",
12216
+ "type": "string"
12217
+ }
12218
+ ]
12219
+ }
12220
+ ]
12221
+ },
12222
+ {
12223
+ "name": "setBadgeTextColor",
12224
+ "type": "function",
12225
+ "description": "Sets the text color for the badge.",
12226
+ "async": true,
12227
+ "parameters": [
12228
+ {
12229
+ "name": "details",
12230
+ "type": "object",
12231
+ "properties": {
12232
+ "color": {
12233
+ "choices": [
12234
+ {
12235
+ "type": "string"
12236
+ },
12237
+ {
12238
+ "$ref": "ColorArray"
12239
+ },
12240
+ {
12241
+ "type": "null"
12242
+ }
12243
+ ],
12244
+ "description": "The color to use as text color in the badge. Cleared by setting it to <value>null</value>."
12245
+ },
12246
+ "tabId": {
12247
+ "type": "integer",
12248
+ "optional": true,
12249
+ "minimum": 0,
12250
+ "description": "Sets the text color for the badge only for the given tab."
12251
+ },
12252
+ "windowId": {
12253
+ "type": "integer",
12254
+ "optional": true,
12255
+ "minimum": -2,
12256
+ "unsupported": true,
12257
+ "description": "Will throw an error if used."
12258
+ }
12259
+ }
12260
+ }
12261
+ ]
12262
+ },
12263
+ {
12264
+ "name": "getBadgeTextColor",
12265
+ "type": "function",
12266
+ "description": "Gets the text color of the badge.",
12267
+ "async": true,
12268
+ "parameters": [
12269
+ {
12270
+ "name": "details",
12271
+ "type": "object",
12272
+ "properties": {
12273
+ "tabId": {
12274
+ "type": "integer",
12275
+ "optional": true,
12276
+ "minimum": 0,
12277
+ "description": "Specifies for which tab the badge text color should be retrieved. If no tab is specified, the global value is retrieved."
11427
12278
  },
11428
12279
  "windowId": {
11429
12280
  "type": "integer",
@@ -11469,7 +12320,7 @@
11469
12320
  "type": "null"
11470
12321
  }
11471
12322
  ],
11472
- "description": "The color to use as background in the badge. Cleared by setting it to <value>null</value> or an empty string."
12323
+ "description": "The color to use as background in the badge. Cleared by setting it to <value>null</value>."
11473
12324
  },
11474
12325
  "tabId": {
11475
12326
  "type": "integer",
@@ -11508,7 +12359,7 @@
11508
12359
  "type": "integer",
11509
12360
  "optional": true,
11510
12361
  "minimum": 0,
11511
- "description": "Specifies for which tab the badge background color should be retrieved. If no tab is specified, the global label is retrieved."
12362
+ "description": "Specifies for which tab the badge background color should be retrieved. If no tab is specified, the global value is retrieved."
11512
12363
  },
11513
12364
  "windowId": {
11514
12365
  "type": "integer",
@@ -11916,7 +12767,7 @@
11916
12767
  {
11917
12768
  "id": "MessageAttachment",
11918
12769
  "type": "object",
11919
- "description": "Represents an attachment in a message.",
12770
+ "description": "Represents an attachment in a message. This includes all MIME parts with a <value>content-disposition</value> header set to <value>attachment</value>, but also related parts like inline images.",
11920
12771
  "properties": {
11921
12772
  "contentType": {
11922
12773
  "type": "string",
@@ -11934,6 +12785,11 @@
11934
12785
  "type": "integer",
11935
12786
  "description": "The size in bytes of this attachment."
11936
12787
  },
12788
+ "contentId": {
12789
+ "type": "string",
12790
+ "optional": true,
12791
+ "description": "The content-id of this part. Available for related parts, which are referenced from other places inside the same message (e.g. inline images)."
12792
+ },
11937
12793
  "message": {
11938
12794
  "$ref": "messages.MessageHeader",
11939
12795
  "optional": true,
@@ -12056,6 +12912,33 @@
12056
12912
  {
12057
12913
  "name": "list",
12058
12914
  "type": "function",
12915
+ "min_manifest_version": 3,
12916
+ "description": "Gets all messages in a folder.",
12917
+ "async": "callback",
12918
+ "permissions": [
12919
+ "accountsRead"
12920
+ ],
12921
+ "parameters": [
12922
+ {
12923
+ "name": "folderId",
12924
+ "$ref": "folders.MailFolderId"
12925
+ },
12926
+ {
12927
+ "type": "function",
12928
+ "name": "callback",
12929
+ "optional": true,
12930
+ "parameters": [
12931
+ {
12932
+ "$ref": "messages.MessageList"
12933
+ }
12934
+ ]
12935
+ }
12936
+ ]
12937
+ },
12938
+ {
12939
+ "name": "list",
12940
+ "type": "function",
12941
+ "max_manifest_version": 2,
12059
12942
  "description": "Gets all messages in a folder.",
12060
12943
  "async": "callback",
12061
12944
  "permissions": [
@@ -12069,7 +12952,6 @@
12069
12952
  "$ref": "folders.MailFolderId"
12070
12953
  },
12071
12954
  {
12072
- "max_manifest_version": 2,
12073
12955
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.list() requires to specify a MailFolderId instead of a full MailFolder object.",
12074
12956
  "$ref": "folders.MailFolder"
12075
12957
  }
@@ -12540,6 +13422,7 @@
12540
13422
  {
12541
13423
  "name": "move",
12542
13424
  "type": "function",
13425
+ "max_manifest_version": 2,
12543
13426
  "description": "Moves messages to a specified folder. If the messages cannot be removed from the source folder, they will be copied instead of moved. Moving external messages will throw an <em>ExtensionError</em>.",
12544
13427
  "async": true,
12545
13428
  "permissions": [
@@ -12562,7 +13445,6 @@
12562
13445
  "$ref": "folders.MailFolderId"
12563
13446
  },
12564
13447
  {
12565
- "max_manifest_version": 2,
12566
13448
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.move() requires to specify a MailFolderId instead of a full MailFolder object.",
12567
13449
  "$ref": "folders.MailFolder"
12568
13450
  }
@@ -12571,9 +13453,36 @@
12571
13453
  }
12572
13454
  ]
12573
13455
  },
13456
+ {
13457
+ "name": "move",
13458
+ "type": "function",
13459
+ "min_manifest_version": 3,
13460
+ "description": "Moves messages to a specified folder. If the messages cannot be removed from the source folder, they will be copied instead of moved. Moving external messages will throw an <em>ExtensionError</em>.",
13461
+ "async": true,
13462
+ "permissions": [
13463
+ "accountsRead",
13464
+ "messagesMove"
13465
+ ],
13466
+ "parameters": [
13467
+ {
13468
+ "name": "messageIds",
13469
+ "type": "array",
13470
+ "description": "The IDs of the messages to move.",
13471
+ "items": {
13472
+ "$ref": "messages.MessageId"
13473
+ }
13474
+ },
13475
+ {
13476
+ "name": "folderId",
13477
+ "$ref": "folders.MailFolderId",
13478
+ "description": "The folder to move the messages to."
13479
+ }
13480
+ ]
13481
+ },
12574
13482
  {
12575
13483
  "name": "copy",
12576
13484
  "type": "function",
13485
+ "max_manifest_version": 2,
12577
13486
  "description": "Copies messages to a specified folder.",
12578
13487
  "async": true,
12579
13488
  "permissions": [
@@ -12596,7 +13505,6 @@
12596
13505
  "$ref": "folders.MailFolderId"
12597
13506
  },
12598
13507
  {
12599
- "max_manifest_version": 2,
12600
13508
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.copy() requires to specify a MailFolderId instead of a full MailFolder object.",
12601
13509
  "$ref": "folders.MailFolder"
12602
13510
  }
@@ -12605,6 +13513,32 @@
12605
13513
  }
12606
13514
  ]
12607
13515
  },
13516
+ {
13517
+ "name": "copy",
13518
+ "type": "function",
13519
+ "min_manifest_version": 3,
13520
+ "description": "Copies messages to a specified folder.",
13521
+ "async": true,
13522
+ "permissions": [
13523
+ "accountsRead",
13524
+ "messagesMove"
13525
+ ],
13526
+ "parameters": [
13527
+ {
13528
+ "name": "messageIds",
13529
+ "type": "array",
13530
+ "description": "The IDs of the messages to copy.",
13531
+ "items": {
13532
+ "$ref": "messages.MessageId"
13533
+ }
13534
+ },
13535
+ {
13536
+ "name": "folderId",
13537
+ "$ref": "folders.MailFolderId",
13538
+ "description": "The folder to copy the messages to."
13539
+ }
13540
+ ]
13541
+ },
12608
13542
  {
12609
13543
  "name": "delete",
12610
13544
  "type": "function",
@@ -12633,6 +13567,7 @@
12633
13567
  {
12634
13568
  "name": "import",
12635
13569
  "type": "function",
13570
+ "max_manifest_version": 2,
12636
13571
  "description": "Imports a message into a local Thunderbird folder. To import a message into an IMAP folder, add it to a local folder first and then move it to the IMAP folder.",
12637
13572
  "async": "callback",
12638
13573
  "permissions": [
@@ -12653,7 +13588,6 @@
12653
13588
  "$ref": "folders.MailFolderId"
12654
13589
  },
12655
13590
  {
12656
- "max_manifest_version": 2,
12657
13591
  "deprecated": "Support deprecated since Thunderbird 121 and removed in Manifest V3: messages.import() requires to specify a MailFolderId instead of a full MailFolder object.",
12658
13592
  "$ref": "folders.MailFolder"
12659
13593
  }
@@ -12677,6 +13611,45 @@
12677
13611
  }
12678
13612
  ]
12679
13613
  },
13614
+ {
13615
+ "name": "import",
13616
+ "type": "function",
13617
+ "min_manifest_version": 3,
13618
+ "description": "Imports a message into a local Thunderbird folder. To import a message into an IMAP folder, add it to a local folder first and then move it to the IMAP folder.",
13619
+ "async": "callback",
13620
+ "permissions": [
13621
+ "accountsRead",
13622
+ "messagesImport"
13623
+ ],
13624
+ "parameters": [
13625
+ {
13626
+ "name": "file",
13627
+ "type": "object",
13628
+ "isInstanceOf": "File",
13629
+ "additionalProperties": true
13630
+ },
13631
+ {
13632
+ "name": "folderId",
13633
+ "$ref": "folders.MailFolderId",
13634
+ "description": "The folder to import the messages into."
13635
+ },
13636
+ {
13637
+ "name": "properties",
13638
+ "$ref": "messages.MessageProperties",
13639
+ "optional": true
13640
+ },
13641
+ {
13642
+ "type": "function",
13643
+ "name": "callback",
13644
+ "optional": true,
13645
+ "parameters": [
13646
+ {
13647
+ "$ref": "messages.MessageHeader"
13648
+ }
13649
+ ]
13650
+ }
13651
+ ]
13652
+ },
12680
13653
  {
12681
13654
  "name": "archive",
12682
13655
  "type": "function",
@@ -13054,7 +14027,7 @@
13054
14027
  "type": "string"
13055
14028
  },
13056
14029
  {
13057
- "$ref": "ColorArray"
14030
+ "$ref": "spaces.ColorArray"
13058
14031
  }
13059
14032
  ],
13060
14033
  "optional": true,
@@ -13102,7 +14075,7 @@
13102
14075
  "type": "string"
13103
14076
  },
13104
14077
  {
13105
- "$ref": "ColorArray"
14078
+ "$ref": "spaces.ColorArray"
13106
14079
  }
13107
14080
  ],
13108
14081
  "optional": "omit-key-if-missing",
@@ -13261,6 +14234,14 @@
13261
14234
  "properties": {
13262
14235
  "id": {
13263
14236
  "type": "integer",
14237
+ "max_manifest_version": 2,
14238
+ "description": "The id of the space.",
14239
+ "optional": true,
14240
+ "minimum": 1
14241
+ },
14242
+ "spaceId": {
14243
+ "type": "integer",
14244
+ "min_manifest_version": 3,
13264
14245
  "description": "The id of the space.",
13265
14246
  "optional": true,
13266
14247
  "minimum": 1
@@ -13583,8 +14564,7 @@
13583
14564
  {
13584
14565
  "type": "string",
13585
14566
  "enum": [
13586
- "tabs",
13587
- "tabHide"
14567
+ "tabs"
13588
14568
  ]
13589
14569
  }
13590
14570
  ]
@@ -14294,6 +15274,7 @@
14294
15274
  {
14295
15275
  "name": "executeScript",
14296
15276
  "type": "function",
15277
+ "max_manifest_version": 2,
14297
15278
  "description": "Injects JavaScript code into a page. For details, see the `programmatic injection <|link-content-scripts|>`__ section of the content scripts doc.",
14298
15279
  "async": "callback",
14299
15280
  "parameters": [
@@ -14331,6 +15312,7 @@
14331
15312
  {
14332
15313
  "name": "insertCSS",
14333
15314
  "type": "function",
15315
+ "max_manifest_version": 2,
14334
15316
  "description": "Injects CSS into a page. For details, see the `programmatic injection <|link-content-scripts|>`__ section of the content scripts doc.",
14335
15317
  "async": "callback",
14336
15318
  "parameters": [
@@ -14358,6 +15340,7 @@
14358
15340
  {
14359
15341
  "name": "removeCSS",
14360
15342
  "type": "function",
15343
+ "max_manifest_version": 2,
14361
15344
  "description": "Removes injected CSS from a page. For details, see the `programmatic injection <|link-content-scripts|>`__ section of the content scripts doc.",
14362
15345
  "async": "callback",
14363
15346
  "parameters": [
@@ -14615,6 +15598,41 @@
14615
15598
  }
14616
15599
  ],
14617
15600
  "functions": [
15601
+ {
15602
+ "name": "convertToPlainText",
15603
+ "type": "function",
15604
+ "description": "Converts the provided body to readable plain text, without tags and leading/trailing whitespace.",
15605
+ "async": "callback",
15606
+ "parameters": [
15607
+ {
15608
+ "name": "body",
15609
+ "type": "string",
15610
+ "description": "The to-be-converted body."
15611
+ },
15612
+ {
15613
+ "name": "options",
15614
+ "type": "object",
15615
+ "optional": true,
15616
+ "properties": {
15617
+ "flowed": {
15618
+ "type": "boolean",
15619
+ "optional": true,
15620
+ "description": "The converted plain text will be wrapped to lines not longer than 72 characters and use format flowed, as defined by RFC 2646."
15621
+ }
15622
+ }
15623
+ },
15624
+ {
15625
+ "type": "function",
15626
+ "name": "callback",
15627
+ "optional": true,
15628
+ "parameters": [
15629
+ {
15630
+ "type": "string"
15631
+ }
15632
+ ]
15633
+ }
15634
+ ]
15635
+ },
14618
15636
  {
14619
15637
  "name": "formatFileSize",
14620
15638
  "type": "function",