webext-schema 5.5.2 → 5.5.4

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.
@@ -209,6 +209,13 @@
209
209
  "description": "Called to return the registered commands."
210
210
  }
211
211
  ]
212
+ },
213
+ {
214
+ "name": "openShortcutSettings",
215
+ "type": "function",
216
+ "async": true,
217
+ "description": "Open extension shortcuts configuration page.",
218
+ "parameters": []
212
219
  }
213
220
  ]
214
221
  }
@@ -3817,8 +3824,57 @@
3817
3824
  "events": [
3818
3825
  {
3819
3826
  "name": "onSearchRequest",
3827
+ "max_manifest_version": 2,
3828
+ "type": "function",
3829
+ "description": "Registering this listener will create a read-only address book, similar to an LDAP address book. When selecting this address book, users will first see no contacts, but they can search for them, which will fire this event. Contacts returned by the listener callback will be displayed as contact cards in the address book. Several listeners can be registered, to create multiple address books.\n\nThe event also fires for each registered listener (for each created read-only address book), when users type something into the mail composer's <em>To:</em> field, or into similar fields like the calendar meeting attendees field. Contacts returned by the listener callback will be added to the autocomplete results in the dropdown of that field.\n\nExample: <literalinclude>includes/addressBooks/onSearchRequest_mv2.js<lang>JavaScript</lang></literalinclude>",
3830
+ "parameters": [
3831
+ {
3832
+ "name": "node",
3833
+ "$ref": "AddressBookNode"
3834
+ },
3835
+ {
3836
+ "name": "searchString",
3837
+ "description": "The search text that the user entered. Not available when invoked from the advanced address book search dialog.",
3838
+ "type": "string",
3839
+ "optional": true
3840
+ },
3841
+ {
3842
+ "name": "query",
3843
+ "type": "string",
3844
+ "description": "The boolean query expression corresponding to the search. **Note:** This parameter may change in future releases of Thunderbird.",
3845
+ "optional": true
3846
+ }
3847
+ ],
3848
+ "extraParameters": [
3849
+ {
3850
+ "name": "parameters",
3851
+ "description": "Descriptions for the address book created by registering this listener.",
3852
+ "type": "object",
3853
+ "properties": {
3854
+ "addressBookName": {
3855
+ "type": "string",
3856
+ "optional": true,
3857
+ "description": "The name of the created address book. If not provided, the name of the extension is used."
3858
+ },
3859
+ "isSecure": {
3860
+ "type": "boolean",
3861
+ "optional": true,
3862
+ "description": "Whether the address book search queries are using encrypted protocols like HTTPS."
3863
+ },
3864
+ "id": {
3865
+ "type": "string",
3866
+ "optional": true,
3867
+ "description": "The unique identifier of the created address book. If not provided, a unique identifier will be generated for you."
3868
+ }
3869
+ }
3870
+ }
3871
+ ]
3872
+ },
3873
+ {
3874
+ "name": "onSearchRequest",
3875
+ "min_manifest_version": 3,
3820
3876
  "type": "function",
3821
- "description": "Registering this listener will create and list a read-only address book in Thunderbird's address book window, similar to LDAP address books. When selecting this address book, users will first see no contacts, but they can search for them, which will fire this event. Contacts returned by the listener callback will be displayed as contact cards in the address book. Several listeners can be registered, to create multiple address books.\n\nThe event also fires for each registered listener (for each created read-only address book), when users type something into the mail composer's <em>To:</em> field, or into similar fields like the calendar meeting attendees field. Contacts returned by the listener callback will be added to the autocomplete results in the dropdown of that field.\n\nExample: <literalinclude>includes/addressBooks/onSearchRequest.js<lang>JavaScript</lang></literalinclude>",
3877
+ "description": "Registering this listener will create a read-only address book, similar to an LDAP address book. When selecting this address book, users will first see no contacts, but they can search for them, which will fire this event. Contacts returned by the listener callback will be displayed as contact cards in the address book. Several listeners can be registered, to create multiple address books. **Ensure all listeners are at the top-level and use the synchronous pattern, otherwise the associated address books will be removed on background termination.**.\n\nThe event also fires for each registered listener (for each created read-only address book), when users type something into the mail composer's <em>To:</em> field, or into similar fields like the calendar meeting attendees field. Contacts returned by the listener callback will be added to the autocomplete results in the dropdown of that field.\n\nExample: <literalinclude>includes/addressBooks/onSearchRequest_mv3.js<lang>JavaScript</lang></literalinclude>",
3822
3878
  "parameters": [
3823
3879
  {
3824
3880
  "name": "node",
@@ -3846,7 +3902,7 @@
3846
3902
  "addressBookName": {
3847
3903
  "type": "string",
3848
3904
  "optional": true,
3849
- "description": "The name of the created address book."
3905
+ "description": "The name of the created address book. If not provided, the name of the extension is used."
3850
3906
  },
3851
3907
  "isSecure": {
3852
3908
  "type": "boolean",
@@ -3856,7 +3912,7 @@
3856
3912
  "id": {
3857
3913
  "type": "string",
3858
3914
  "optional": true,
3859
- "description": "The unique ID of the created address book. If several listeners have been added, the <var>id</var> allows to identify which address book initiated the search request. If not provided, a unique ID will be generated for you."
3915
+ "description": "The unique identifier of the created address book. If not provided, a unique identifier will be generated for you."
3860
3916
  }
3861
3917
  }
3862
3918
  }
@@ -8618,7 +8674,12 @@
8618
8674
  "lastUsed": {
8619
8675
  "$ref": "extensionTypes.Date",
8620
8676
  "optional": true,
8621
- "description": "Date the folder was last used (precision: seconds)."
8677
+ "description": "Date the folder was last used. It is updated every time the folder was accessed, when the user moved or copied messages into the folder and when the folder received new messages. (precision: seconds)."
8678
+ },
8679
+ "lastUsedAsDestination": {
8680
+ "$ref": "extensionTypes.Date",
8681
+ "optional": true,
8682
+ "description": "Date the folder was last used as a destination. It is updated every time the user moved or copied messages into the folder. (precision: seconds)."
8622
8683
  },
8623
8684
  "quota": {
8624
8685
  "type": "array",
@@ -8719,10 +8780,40 @@
8719
8780
  }
8720
8781
  }
8721
8782
  },
8783
+ {
8784
+ "id": "QueryDateRange",
8785
+ "description": "An object defining a range for a date value to be used in queries.",
8786
+ "choices": [
8787
+ {
8788
+ "type": "object",
8789
+ "properties": {
8790
+ "recent": {
8791
+ "type": "boolean",
8792
+ "description": "Whether the date must be considered to be recent by Thunderbird (within the last month) or not, to match the query."
8793
+ }
8794
+ }
8795
+ },
8796
+ {
8797
+ "type": "object",
8798
+ "properties": {
8799
+ "after": {
8800
+ "$ref": "extensionTypes.Date",
8801
+ "optional": true,
8802
+ "description": "The minimum date required to match the query."
8803
+ },
8804
+ "before": {
8805
+ "$ref": "extensionTypes.Date",
8806
+ "optional": true,
8807
+ "description": "The maximum date required to match the query."
8808
+ }
8809
+ }
8810
+ }
8811
+ ]
8812
+ },
8722
8813
  {
8723
8814
  "id": "QueryRange",
8724
8815
  "type": "object",
8725
- "description": "An object defining a range.",
8816
+ "description": "An object defining a range for an integer value to be used in queries.",
8726
8817
  "properties": {
8727
8818
  "min": {
8728
8819
  "type": "integer",
@@ -8756,7 +8847,7 @@
8756
8847
  "properties": {
8757
8848
  "DEFAULT_MOST_RECENT_LIMIT": {
8758
8849
  "value": -1,
8759
- "description": "The number of most recent folders used in Thunderbird's UI. Controled by the <var>mail.folder_widget.max_recent</var> preference."
8850
+ "description": "The number of most recent folders used in Thunderbird's UI. Controlled by the <var>mail.folder_widget.max_recent</var> preference."
8760
8851
  }
8761
8852
  },
8762
8853
  "functions": [
@@ -8880,6 +8971,16 @@
8880
8971
  "optional": true,
8881
8972
  "description": "Whether the folder is a virtual search folder, or not."
8882
8973
  },
8974
+ "lastUsed": {
8975
+ "$ref": "QueryDateRange",
8976
+ "optional": true,
8977
+ "description": "Date the folder was last used (folder was accessed, user moved or copied messages into the folder or folder received new messages)."
8978
+ },
8979
+ "lastUsedAsDestination": {
8980
+ "$ref": "QueryDateRange",
8981
+ "optional": true,
8982
+ "description": "Date the folder was last used as a destination (user moved or copied messages into the folder)."
8983
+ },
8883
8984
  "limit": {
8884
8985
  "type": "integer",
8885
8986
  "optional": true,
@@ -8911,8 +9012,21 @@
8911
9012
  },
8912
9013
  "recent": {
8913
9014
  "type": "boolean",
9015
+ "deprecated": "Deprecated. Use <var>queryInfo.lastUsed</var> and <var>queryInfo.sort</var>.",
9016
+ "optional": true,
9017
+ "description": "Whether the folder (excluding subfolders) has been used within the last month, or not. The returned folders will be sorted by <var>lastUsed</var>."
9018
+ },
9019
+ "sort": {
9020
+ "type": "string",
9021
+ "enum": [
9022
+ "lastUsed",
9023
+ "lastUsedAsDestination",
9024
+ "name",
9025
+ "path"
9026
+ ],
8914
9027
  "optional": true,
8915
- "description": "Whether the folder (excluding subfolders) has been used within the last month, or not. The returned folders will be sorted by their recentness."
9028
+ "default": "path",
9029
+ "description": "The sort order of the returned folders. If not specified, folders will be sorted by <var>path</var>. Sorting by <var>name</var> is case-insensitive."
8916
9030
  },
8917
9031
  "specialUse": {
8918
9032
  "type": "array",
@@ -9675,7 +9789,7 @@
9675
9789
  {
9676
9790
  "name": "getUnifiedFolder",
9677
9791
  "type": "function",
9678
- "description": "Get one of the special unified mailbox folders, which are virtual search folders and return the content from all mail accounts.",
9792
+ "description": "Get one of the special unified mailbox folders, which are virtual search folders and return the content from all mail accounts. Throws if the requested folder does not exist.",
9679
9793
  "async": "callback",
9680
9794
  "parameters": [
9681
9795
  {
@@ -9714,7 +9828,7 @@
9714
9828
  {
9715
9829
  "name": "getTagFolder",
9716
9830
  "type": "function",
9717
- "description": "Get one of the special virtual tag folders, which are virtual search folders and group messages from all mail accounts based on their tags.",
9831
+ "description": "Get one of the special virtual tag folders, which are virtual search folders and group messages from all mail accounts based on their tags. Throws if the requested folder does not exist.",
9718
9832
  "async": "callback",
9719
9833
  "parameters": [
9720
9834
  {
@@ -10927,6 +11041,7 @@
10927
11041
  "editable",
10928
11042
  "folder_pane",
10929
11043
  "frame",
11044
+ "header_pane_link",
10930
11045
  "image",
10931
11046
  "link",
10932
11047
  "message_attachments",
@@ -13141,6 +13256,10 @@
13141
13256
  {
13142
13257
  "name": "changedProperties",
13143
13258
  "$ref": "messages.MessageProperties"
13259
+ },
13260
+ {
13261
+ "name": "oldProperties",
13262
+ "$ref": "messages.MessageProperties"
13144
13263
  }
13145
13264
  ]
13146
13265
  },
@@ -13197,7 +13316,7 @@
13197
13316
  {
13198
13317
  "name": "onNewMailReceived",
13199
13318
  "type": "function",
13200
- "description": "Fired when a new message is received, and has been through junk classification and message filters.",
13319
+ "description": "Fired when a new message is received, and has been handled by message filters and junk classification. Filters running after junk classification may move the message again.",
13201
13320
  "permissions": [
13202
13321
  "accountsRead"
13203
13322
  ],
@@ -13831,6 +13950,18 @@
13831
13950
  }
13832
13951
  ],
13833
13952
  "description": "The folder to move the messages to."
13953
+ },
13954
+ {
13955
+ "name": "options",
13956
+ "type": "object",
13957
+ "optional": true,
13958
+ "properties": {
13959
+ "isUserAction": {
13960
+ "type": "boolean",
13961
+ "optional": true,
13962
+ "description": "Whether this move operation should be treated as a user action, for example allowing undo."
13963
+ }
13964
+ }
13834
13965
  }
13835
13966
  ]
13836
13967
  },
@@ -13857,6 +13988,18 @@
13857
13988
  "name": "folderId",
13858
13989
  "$ref": "folders.MailFolderId",
13859
13990
  "description": "The folder to move the messages to."
13991
+ },
13992
+ {
13993
+ "name": "options",
13994
+ "type": "object",
13995
+ "optional": true,
13996
+ "properties": {
13997
+ "isUserAction": {
13998
+ "type": "boolean",
13999
+ "optional": true,
14000
+ "description": "Whether this move operation should be treated as a user action, for example allowing undo."
14001
+ }
14002
+ }
13860
14003
  }
13861
14004
  ]
13862
14005
  },
@@ -13891,6 +14034,18 @@
13891
14034
  }
13892
14035
  ],
13893
14036
  "description": "The folder to copy the messages to."
14037
+ },
14038
+ {
14039
+ "name": "options",
14040
+ "type": "object",
14041
+ "optional": true,
14042
+ "properties": {
14043
+ "isUserAction": {
14044
+ "type": "boolean",
14045
+ "optional": true,
14046
+ "description": "Whether this copy operation should be treated as a user action, for example allowing undo."
14047
+ }
14048
+ }
13894
14049
  }
13895
14050
  ]
13896
14051
  },
@@ -13917,13 +14072,25 @@
13917
14072
  "name": "folderId",
13918
14073
  "$ref": "folders.MailFolderId",
13919
14074
  "description": "The folder to copy the messages to."
14075
+ },
14076
+ {
14077
+ "name": "options",
14078
+ "type": "object",
14079
+ "optional": true,
14080
+ "properties": {
14081
+ "isUserAction": {
14082
+ "type": "boolean",
14083
+ "optional": true,
14084
+ "description": "Whether this copy operation should be treated as a user action, for example allowing undo."
14085
+ }
14086
+ }
13920
14087
  }
13921
14088
  ]
13922
14089
  },
13923
14090
  {
13924
14091
  "name": "delete",
13925
14092
  "type": "function",
13926
- "description": "Deletes messages permanently, or moves them to the trash folder (honoring the account's deletion behavior settings). Deleting external messages will throw an <em>ExtensionError</em>. The <var>skipTrash</var> parameter allows immediate permanent deletion, bypassing the trash folder.",
14093
+ "description": "Deletes messages permanently, or moves them to the trash folder (honoring the account's deletion behavior settings). Deleting external messages will throw an <em>ExtensionError</em>. The <var>deletePermanently</var> parameter allows immediate permanent deletion, bypassing the trash folder.",
13927
14094
  "async": true,
13928
14095
  "permissions": [
13929
14096
  "messagesDelete"
@@ -13938,10 +14105,30 @@
13938
14105
  }
13939
14106
  },
13940
14107
  {
13941
- "name": "skipTrash",
13942
- "type": "boolean",
13943
- "description": "If true, the message will be deleted permanently, regardless of the account's deletion behavior settings.",
13944
- "optional": true
14108
+ "name": "options",
14109
+ "optional": true,
14110
+ "choices": [
14111
+ {
14112
+ "type": "boolean",
14113
+ "deprecated": "Specify the options object instead of a plain boolean to delete messages permanently.",
14114
+ "description": "Whether the message will be deleted permanently, regardless of the account's deletion behavior settings."
14115
+ },
14116
+ {
14117
+ "type": "object",
14118
+ "properties": {
14119
+ "deletePermanently": {
14120
+ "type": "boolean",
14121
+ "optional": true,
14122
+ "description": "Whether the message will be deleted permanently, regardless of the account's deletion behavior settings. Use this with care!"
14123
+ },
14124
+ "isUserAction": {
14125
+ "type": "boolean",
14126
+ "optional": true,
14127
+ "description": "Whether this copy operation should be treated as a user action, for example allowing undo. Note: Deleting messages permanently cannot be undone!"
14128
+ }
14129
+ }
14130
+ }
14131
+ ]
13945
14132
  }
13946
14133
  ]
13947
14134
  },
@@ -14098,7 +14285,7 @@
14098
14285
  {
14099
14286
  "type": "string",
14100
14287
  "name": "color",
14101
- "description": "Tag color in hex format (i.e.: <var>#000080</var> for navy blue). Value will be stored as upper case.",
14288
+ "description": "Tag color in hex format (i.e.: <var>#000080</var> for navy blue).",
14102
14289
  "pattern": "^#[0-9a-fA-F]{6}"
14103
14290
  }
14104
14291
  ]
@@ -14132,7 +14319,7 @@
14132
14319
  "color": {
14133
14320
  "type": "string",
14134
14321
  "pattern": "^#[0-9a-fA-F]{6}",
14135
- "description": "Tag color in hex format (i.e.: #000080 for navy blue). Value will be stored as upper case.",
14322
+ "description": "Tag color in hex format (i.e.: <var>#000080</var> for navy blue).",
14136
14323
  "optional": true
14137
14324
  }
14138
14325
  }
@@ -14177,11 +14364,33 @@
14177
14364
  },
14178
14365
  "color": {
14179
14366
  "type": "string",
14180
- "description": "Tag color."
14367
+ "description": "Tag color in upper case hex format (i.e.: <var>#000080</var> for navy blue)."
14368
+ },
14369
+ "ordinal": {
14370
+ "type": "string",
14371
+ "description": "A custom sort string."
14372
+ }
14373
+ }
14374
+ },
14375
+ {
14376
+ "id": "MessageTagProperties",
14377
+ "type": "object",
14378
+ "properties": {
14379
+ "tag": {
14380
+ "type": "string",
14381
+ "optional": true,
14382
+ "description": "Human-readable tag name."
14383
+ },
14384
+ "color": {
14385
+ "type": "string",
14386
+ "pattern": "^#[0-9a-fA-F]{6}",
14387
+ "optional": true,
14388
+ "description": "Tag color in upper case hex format (i.e.: <var>#000080</var> for navy blue)."
14181
14389
  },
14182
14390
  "ordinal": {
14183
14391
  "type": "string",
14184
- "description": "Custom sort string (usually empty)."
14392
+ "optional": true,
14393
+ "description": "A custom sort string."
14185
14394
  }
14186
14395
  }
14187
14396
  },
@@ -14210,6 +14419,62 @@
14210
14419
  }
14211
14420
  }
14212
14421
  ],
14422
+ "events": [
14423
+ {
14424
+ "name": "onCreated",
14425
+ "permissions": [
14426
+ "messagesTagsList"
14427
+ ],
14428
+ "type": "function",
14429
+ "description": "Fired when a new message tag has been created.",
14430
+ "parameters": [
14431
+ {
14432
+ "name": "tag",
14433
+ "$ref": "messages.tags.MessageTag"
14434
+ }
14435
+ ]
14436
+ },
14437
+ {
14438
+ "name": "onUpdated",
14439
+ "permissions": [
14440
+ "messagesTagsList"
14441
+ ],
14442
+ "type": "function",
14443
+ "description": "Fired when one or more properties of a message tag have been updated.",
14444
+ "parameters": [
14445
+ {
14446
+ "type": "string",
14447
+ "name": "key",
14448
+ "description": "Unique tag identifier of the updated message tag."
14449
+ },
14450
+ {
14451
+ "name": "changedProperties",
14452
+ "$ref": "messages.tags.MessageTagProperties",
14453
+ "description": "The changed message tag properties."
14454
+ },
14455
+ {
14456
+ "name": "oldProperties",
14457
+ "$ref": "messages.tags.MessageTagProperties",
14458
+ "description": "The old values of the changed message tag properties."
14459
+ }
14460
+ ]
14461
+ },
14462
+ {
14463
+ "name": "onDeleted",
14464
+ "type": "function",
14465
+ "description": "Fired when a message tag has been deleted.",
14466
+ "permissions": [
14467
+ "accountsRead"
14468
+ ],
14469
+ "parameters": [
14470
+ {
14471
+ "type": "string",
14472
+ "name": "key",
14473
+ "description": "Unique tag identifier of the deleted message tag."
14474
+ }
14475
+ ]
14476
+ }
14477
+ ],
14213
14478
  "functions": [
14214
14479
  {
14215
14480
  "name": "list",
@@ -14238,7 +14503,7 @@
14238
14503
  {
14239
14504
  "name": "create",
14240
14505
  "type": "function",
14241
- "description": "Creates a new message tag. Tagging a message will store the tag's key in the user's message. Throws if the specified tag key is used already.",
14506
+ "description": "Creates a new message tag and returns the associated key. Tagging a message will store the tag's key in the user's message. Throws if the specified tag key is used already.",
14242
14507
  "async": true,
14243
14508
  "permissions": [
14244
14509
  "messagesTags"
@@ -14247,7 +14512,8 @@
14247
14512
  {
14248
14513
  "type": "string",
14249
14514
  "name": "key",
14250
- "description": "Unique tag identifier (will be converted to lower case). Must not include <var>()<>{/%*\"</var> or spaces.",
14515
+ "optional": true,
14516
+ "description": "Unique tag identifier (will be converted to lower case). Must not include <var>()<>{/%*\"</var> or spaces. Will be auto-generated if not provided.",
14251
14517
  "pattern": "^[^ ()/{%*<>\"]+$"
14252
14518
  },
14253
14519
  {
@@ -14258,8 +14524,19 @@
14258
14524
  {
14259
14525
  "type": "string",
14260
14526
  "name": "color",
14261
- "description": "Tag color in hex format (i.e.: #000080 for navy blue). Value will be stored as upper case.",
14527
+ "description": "Tag color in hex format (i.e.: <var>#000080</var> for navy blue).",
14262
14528
  "pattern": "^#[0-9a-fA-F]{6}"
14529
+ },
14530
+ {
14531
+ "type": "function",
14532
+ "name": "callback",
14533
+ "optional": true,
14534
+ "parameters": [
14535
+ {
14536
+ "type": "string",
14537
+ "name": "key"
14538
+ }
14539
+ ]
14263
14540
  }
14264
14541
  ]
14265
14542
  },
@@ -14279,21 +14556,8 @@
14279
14556
  "pattern": "^[^ ()/{%*<>\"]+$"
14280
14557
  },
14281
14558
  {
14282
- "type": "object",
14283
14559
  "name": "updateProperties",
14284
- "properties": {
14285
- "tag": {
14286
- "type": "string",
14287
- "optional": true,
14288
- "description": "Human-readable tag name."
14289
- },
14290
- "color": {
14291
- "type": "string",
14292
- "pattern": "^#[0-9a-fA-F]{6}",
14293
- "description": "Tag color in hex format (i.e.: #000080 for navy blue). Value will be stored as upper case.",
14294
- "optional": true
14295
- }
14296
- }
14560
+ "$ref": "messages.tags.MessageTagProperties"
14297
14561
  }
14298
14562
  ]
14299
14563
  },
@@ -14317,21 +14581,295 @@
14317
14581
  ]
14318
14582
  }
14319
14583
  ],
14320
- "sessions.json": [
14584
+ "messenger_settings.json": [
14321
14585
  {
14322
- "namespace": "sessions",
14323
- "functions": [
14586
+ "namespace": "manifest",
14587
+ "types": [
14324
14588
  {
14325
- "name": "setTabValue",
14326
- "type": "function",
14327
- "description": "Store a key/value pair associated with a given tab.",
14328
- "async": true,
14329
- "parameters": [
14330
- {
14331
- "name": "tabId",
14332
- "type": "integer",
14333
- "description": "ID of the tab with which you want to associate the data. Error is thrown if ID is invalid."
14334
- },
14589
+ "$extend": "OptionalPermission",
14590
+ "choices": [
14591
+ {
14592
+ "type": "string",
14593
+ "enum": [
14594
+ "messengerSettings"
14595
+ ]
14596
+ }
14597
+ ]
14598
+ }
14599
+ ]
14600
+ },
14601
+ {
14602
+ "namespace": "messengerSettings",
14603
+ "description": "The messengerSettings API allows to access global messenger settings.",
14604
+ "permissions": [
14605
+ "messengerSettings"
14606
+ ],
14607
+ "properties": {
14608
+ "messagePlainTextFlowedOutputEnabled": {
14609
+ "$ref": "types.Setting",
14610
+ "description": "Whether long lines in outgoing plain text messages will get soft line breaks (<var> \n</var>) or hard line breaks (<var>\n</var>), to comply with requirements from RFC 2822. Soft line breaks will be ignored when displayed by the receiving client. When flowed output is enabled, add-ons should not create plain text messages with manually inserted hard or soft line breaks to achieve a certain text width, as that will most probably interfere with the default line break handling and generate ridged text. When flowed output is disabled, add-ons could add hard line breaks to have control over the final message, but any line longer than the maximum line length will still receive additional hard line breaks. See $(ref:messengerSettings.messageLineLengthLimit)."
14611
+ },
14612
+ "messageLineLengthLimit": {
14613
+ "$ref": "types.Setting",
14614
+ "description": "The line length limit for outgoing messages, to comply with requirements from RFC 2822. See description of $(ref:messengerSettings.messagePlainTextFlowedOutputEnabled)."
14615
+ }
14616
+ }
14617
+ }
14618
+ ],
14619
+ "messenger_utilities.json": [
14620
+ {
14621
+ "namespace": "messengerUtilities",
14622
+ "types": [
14623
+ {
14624
+ "id": "ParsedMailbox",
14625
+ "type": "object",
14626
+ "description": "Representation of a parsed mailbox string (see RFC 5322, section 3.4).",
14627
+ "properties": {
14628
+ "name": {
14629
+ "type": "string",
14630
+ "optional": true,
14631
+ "description": "The <var>display-name</var> associated with the provided address or group, if available."
14632
+ },
14633
+ "email": {
14634
+ "type": "string",
14635
+ "optional": true,
14636
+ "description": "The <var>addr-spec</var> associated with the provided address, if available."
14637
+ },
14638
+ "group": {
14639
+ "type": "array",
14640
+ "optional": true,
14641
+ "items": {
14642
+ "$ref": "messengerUtilities.ParsedMailbox"
14643
+ },
14644
+ "description": "The members of the group, if available."
14645
+ }
14646
+ }
14647
+ },
14648
+ {
14649
+ "id": "MailboxHeaders",
14650
+ "type": "string",
14651
+ "description": "MIME headers, which by default are treated as containing one or more mailbox strings.",
14652
+ "enum": [
14653
+ "bcc",
14654
+ "cc",
14655
+ "from",
14656
+ "reply-to",
14657
+ "resent-bcc",
14658
+ "resent-cc",
14659
+ "resent-from",
14660
+ "resent-reply-to",
14661
+ "resent-sender",
14662
+ "resent-to",
14663
+ "sender",
14664
+ "to",
14665
+ "approved",
14666
+ "disposition-notification-to",
14667
+ "delivered-to",
14668
+ "return-receipt-to",
14669
+ "mail-reply-to",
14670
+ "mail-followup-to"
14671
+ ]
14672
+ }
14673
+ ],
14674
+ "functions": [
14675
+ {
14676
+ "name": "convertToPlainText",
14677
+ "type": "function",
14678
+ "description": "Converts the provided body to readable plain text, without tags and leading/trailing whitespace.",
14679
+ "async": "callback",
14680
+ "parameters": [
14681
+ {
14682
+ "name": "body",
14683
+ "type": "string",
14684
+ "description": "The to-be-converted body."
14685
+ },
14686
+ {
14687
+ "name": "options",
14688
+ "type": "object",
14689
+ "optional": true,
14690
+ "properties": {
14691
+ "flowed": {
14692
+ "type": "boolean",
14693
+ "optional": true,
14694
+ "description": "The converted plain text will be wrapped to lines not longer than 72 characters and use format flowed, as defined by RFC 2646."
14695
+ }
14696
+ }
14697
+ },
14698
+ {
14699
+ "type": "function",
14700
+ "name": "callback",
14701
+ "optional": true,
14702
+ "parameters": [
14703
+ {
14704
+ "type": "string"
14705
+ }
14706
+ ]
14707
+ }
14708
+ ]
14709
+ },
14710
+ {
14711
+ "name": "formatFileSize",
14712
+ "type": "function",
14713
+ "description": "Returns the provided file size in a human readable format (e.g. <var>12 bytes</var> or <var>11,4 GB</var>).",
14714
+ "async": "callback",
14715
+ "parameters": [
14716
+ {
14717
+ "type": "integer",
14718
+ "name": "sizeInBytes",
14719
+ "description": "The size in bytes."
14720
+ },
14721
+ {
14722
+ "type": "function",
14723
+ "name": "callback",
14724
+ "optional": true,
14725
+ "parameters": [
14726
+ {
14727
+ "type": "string"
14728
+ }
14729
+ ]
14730
+ }
14731
+ ]
14732
+ },
14733
+ {
14734
+ "name": "parseMailboxString",
14735
+ "type": "function",
14736
+ "description": "Parse a mailbox string containing one or more email addresses (see RFC 5322, section 3.4).",
14737
+ "async": "callback",
14738
+ "parameters": [
14739
+ {
14740
+ "type": "string",
14741
+ "name": "mailboxString",
14742
+ "description": "The string to be parsed (e.g. <var>User <user@example.com>, other-user@example.com</var>)"
14743
+ },
14744
+ {
14745
+ "type": "boolean",
14746
+ "name": "preserveGroups",
14747
+ "optional": true,
14748
+ "description": "Keep grouped hierachies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
14749
+ },
14750
+ {
14751
+ "type": "function",
14752
+ "name": "callback",
14753
+ "optional": true,
14754
+ "parameters": [
14755
+ {
14756
+ "type": "array",
14757
+ "items": {
14758
+ "$ref": "messengerUtilities.ParsedMailbox"
14759
+ }
14760
+ }
14761
+ ]
14762
+ }
14763
+ ]
14764
+ },
14765
+ {
14766
+ "name": "decodeMimeHeader",
14767
+ "type": "function",
14768
+ "description": "Decode the provided header into a readable format according to RFC 2047.",
14769
+ "async": "callback",
14770
+ "parameters": [
14771
+ {
14772
+ "name": "headerName",
14773
+ "type": "string"
14774
+ },
14775
+ {
14776
+ "name": "headerValue",
14777
+ "choices": [
14778
+ {
14779
+ "type": "string"
14780
+ },
14781
+ {
14782
+ "type": "array",
14783
+ "items": {
14784
+ "type": "string"
14785
+ }
14786
+ }
14787
+ ]
14788
+ },
14789
+ {
14790
+ "name": "isMailBoxHeader",
14791
+ "type": "boolean",
14792
+ "optional": true,
14793
+ "description": "Headers containing multiple mailbox strings need special handling. For example the header <var>=?UTF-8?Q?H=C3=B6rst=2C_Kenny?= <K.Hoerst@invalid>, new@thunderbird.bug</var> will be wrongly decoded to <var>Hörst, Kenny <K.Hoerst@invalid>, new@thunderbird.bug</var>, corrupting the structure of the first mailbox string. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
14794
+ },
14795
+ {
14796
+ "type": "function",
14797
+ "name": "callback",
14798
+ "optional": true,
14799
+ "parameters": [
14800
+ {
14801
+ "type": "array",
14802
+ "items": {
14803
+ "type": "string"
14804
+ }
14805
+ }
14806
+ ]
14807
+ }
14808
+ ]
14809
+ },
14810
+ {
14811
+ "name": "encodeMimeHeader",
14812
+ "type": "function",
14813
+ "description": "Encode the provided header according to RFC 2047.",
14814
+ "async": "callback",
14815
+ "parameters": [
14816
+ {
14817
+ "name": "headerName",
14818
+ "type": "string"
14819
+ },
14820
+ {
14821
+ "name": "headerValue",
14822
+ "choices": [
14823
+ {
14824
+ "type": "string"
14825
+ },
14826
+ {
14827
+ "type": "array",
14828
+ "items": {
14829
+ "type": "string"
14830
+ }
14831
+ }
14832
+ ]
14833
+ },
14834
+ {
14835
+ "name": "isMailBoxHeader",
14836
+ "type": "boolean",
14837
+ "optional": true,
14838
+ "description": "Headers containing multiple mailbox strings need special handling. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
14839
+ },
14840
+ {
14841
+ "type": "function",
14842
+ "name": "callback",
14843
+ "optional": true,
14844
+ "parameters": [
14845
+ {
14846
+ "type": "array",
14847
+ "items": {
14848
+ "type": "string"
14849
+ }
14850
+ }
14851
+ ]
14852
+ }
14853
+ ]
14854
+ }
14855
+ ]
14856
+ }
14857
+ ],
14858
+ "sessions.json": [
14859
+ {
14860
+ "namespace": "sessions",
14861
+ "functions": [
14862
+ {
14863
+ "name": "setTabValue",
14864
+ "type": "function",
14865
+ "description": "Store a key/value pair associated with a given tab.",
14866
+ "async": true,
14867
+ "parameters": [
14868
+ {
14869
+ "name": "tabId",
14870
+ "type": "integer",
14871
+ "description": "ID of the tab with which you want to associate the data. Error is thrown if ID is invalid."
14872
+ },
14335
14873
  {
14336
14874
  "name": "key",
14337
14875
  "type": "string",
@@ -14411,6 +14949,16 @@
14411
14949
  "type": "string",
14412
14950
  "optional": true,
14413
14951
  "description": "The <a href='url-cookieStore'>CookieStore</a> id used by the tab. Either a custom id created using the <a href='url-contextualIdentity'>contextualIdentities API</a>, or a built-in one: <var>firefox-default</var>, <var>firefox-container-1</var>, <var>firefox-container-2</var>, <var>firefox-container-3</var>, <var>firefox-container-4</var>, <var>firefox-container-5</var>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons. The <permission>cookies</permission> permission is required to be able to specify this property. Furthermore, the <permission>contextualIdentities</permission> permission should be requested, to enable the contextual identities feature (enabled by default only on Thunderbird Daily)."
14952
+ },
14953
+ "linkHandler": {
14954
+ "type": "string",
14955
+ "enum": [
14956
+ "strict",
14957
+ "balanced",
14958
+ "relaxed"
14959
+ ],
14960
+ "optional": true,
14961
+ "description": "Thunderbird is a mail client, not a browser. It is possible to load a web page, but opening follow-up pages through hyperlinks should be handled by the user's default browser. This property specifies to what extent this behavior should be enforced. The default <var>balanced</var> link handler will open links to the same host directly in Thunderbird, everything else will be opened in the user's default browser. A <var>relaxed</var> link handler will open all links inside of Thunderbird, a <var>strict</var> link handler will open all links in the user's default browser, except links to the same page."
14414
14962
  }
14415
14963
  }
14416
14964
  },
@@ -15323,6 +15871,16 @@
15323
15871
  "optional": true,
15324
15872
  "description": "The <a href='url-cookieStore'>CookieStore</a> id the new tab should use. Either a custom id created using the <a href='url-contextualIdentity'>contextualIdentities API</a>, or a built-in one: <var>firefox-default</var>, <var>firefox-container-1</var>, <var>firefox-container-2</var>, <var>firefox-container-3</var>, <var>firefox-container-4</var>, <var>firefox-container-5</var>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons. The <permission>cookies</permission> permission is required to be able to specify this property. Furthermore, the <permission>contextualIdentities</permission> permission should be requested, to enable the contextual identities feature (enabled by default only on Thunderbird Daily)."
15325
15873
  },
15874
+ "linkHandler": {
15875
+ "type": "string",
15876
+ "enum": [
15877
+ "strict",
15878
+ "balanced",
15879
+ "relaxed"
15880
+ ],
15881
+ "optional": true,
15882
+ "description": "Thunderbird is a mail client, not a browser. It is possible to load a web page, but opening follow-up pages through hyperlinks should be handled by the user's default browser. This property specifies to what extent this behavior should be enforced. The default <var>balanced</var> link handler will open links to the same host directly in Thunderbird, everything else will be opened in the user's default browser. A <var>relaxed</var> link handler will open all links inside of Thunderbird, a <var>strict</var> link handler will open all links in the user's default browser, except links to the same page."
15883
+ },
15326
15884
  "selected": {
15327
15885
  "deprecated": "Please use <var>createProperties.active</var>.",
15328
15886
  "unsupported": true,
@@ -15967,245 +16525,6 @@
15967
16525
  ]
15968
16526
  }
15969
16527
  ],
15970
- "utilities.json": [
15971
- {
15972
- "namespace": "messengerUtilities",
15973
- "types": [
15974
- {
15975
- "id": "ParsedMailbox",
15976
- "type": "object",
15977
- "description": "Representation of a parsed mailbox string (see RFC 5322, section 3.4).",
15978
- "properties": {
15979
- "name": {
15980
- "type": "string",
15981
- "optional": true,
15982
- "description": "The <var>display-name</var> associated with the provided address or group, if available."
15983
- },
15984
- "email": {
15985
- "type": "string",
15986
- "optional": true,
15987
- "description": "The <var>addr-spec</var> associated with the provided address, if available."
15988
- },
15989
- "group": {
15990
- "type": "array",
15991
- "optional": true,
15992
- "items": {
15993
- "$ref": "messengerUtilities.ParsedMailbox"
15994
- },
15995
- "description": "The members of the group, if available."
15996
- }
15997
- }
15998
- },
15999
- {
16000
- "id": "MailboxHeaders",
16001
- "type": "string",
16002
- "description": "MIME headers, which by default are treated as containing one or more mailbox strings.",
16003
- "enum": [
16004
- "bcc",
16005
- "cc",
16006
- "from",
16007
- "reply-to",
16008
- "resent-bcc",
16009
- "resent-cc",
16010
- "resent-from",
16011
- "resent-reply-to",
16012
- "resent-sender",
16013
- "resent-to",
16014
- "sender",
16015
- "to",
16016
- "approved",
16017
- "disposition-notification-to",
16018
- "delivered-to",
16019
- "return-receipt-to",
16020
- "mail-reply-to",
16021
- "mail-followup-to"
16022
- ]
16023
- }
16024
- ],
16025
- "functions": [
16026
- {
16027
- "name": "convertToPlainText",
16028
- "type": "function",
16029
- "description": "Converts the provided body to readable plain text, without tags and leading/trailing whitespace.",
16030
- "async": "callback",
16031
- "parameters": [
16032
- {
16033
- "name": "body",
16034
- "type": "string",
16035
- "description": "The to-be-converted body."
16036
- },
16037
- {
16038
- "name": "options",
16039
- "type": "object",
16040
- "optional": true,
16041
- "properties": {
16042
- "flowed": {
16043
- "type": "boolean",
16044
- "optional": true,
16045
- "description": "The converted plain text will be wrapped to lines not longer than 72 characters and use format flowed, as defined by RFC 2646."
16046
- }
16047
- }
16048
- },
16049
- {
16050
- "type": "function",
16051
- "name": "callback",
16052
- "optional": true,
16053
- "parameters": [
16054
- {
16055
- "type": "string"
16056
- }
16057
- ]
16058
- }
16059
- ]
16060
- },
16061
- {
16062
- "name": "formatFileSize",
16063
- "type": "function",
16064
- "description": "Returns the provided file size in a human readable format (e.g. <var>12 bytes</var> or <var>11,4 GB</var>).",
16065
- "async": "callback",
16066
- "parameters": [
16067
- {
16068
- "type": "integer",
16069
- "name": "sizeInBytes",
16070
- "description": "The size in bytes."
16071
- },
16072
- {
16073
- "type": "function",
16074
- "name": "callback",
16075
- "optional": true,
16076
- "parameters": [
16077
- {
16078
- "type": "string"
16079
- }
16080
- ]
16081
- }
16082
- ]
16083
- },
16084
- {
16085
- "name": "parseMailboxString",
16086
- "type": "function",
16087
- "description": "Parse a mailbox string containing one or more email addresses (see RFC 5322, section 3.4).",
16088
- "async": "callback",
16089
- "parameters": [
16090
- {
16091
- "type": "string",
16092
- "name": "mailboxString",
16093
- "description": "The string to be parsed (e.g. <var>User <user@example.com>, other-user@example.com</var>)"
16094
- },
16095
- {
16096
- "type": "boolean",
16097
- "name": "preserveGroups",
16098
- "optional": true,
16099
- "description": "Keep grouped hierachies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
16100
- },
16101
- {
16102
- "type": "function",
16103
- "name": "callback",
16104
- "optional": true,
16105
- "parameters": [
16106
- {
16107
- "type": "array",
16108
- "items": {
16109
- "$ref": "messengerUtilities.ParsedMailbox"
16110
- }
16111
- }
16112
- ]
16113
- }
16114
- ]
16115
- },
16116
- {
16117
- "name": "decodeMimeHeader",
16118
- "type": "function",
16119
- "description": "Decode the provided header into a readable format according to RFC 2047.",
16120
- "async": "callback",
16121
- "parameters": [
16122
- {
16123
- "name": "headerName",
16124
- "type": "string"
16125
- },
16126
- {
16127
- "name": "headerValue",
16128
- "choices": [
16129
- {
16130
- "type": "string"
16131
- },
16132
- {
16133
- "type": "array",
16134
- "items": {
16135
- "type": "string"
16136
- }
16137
- }
16138
- ]
16139
- },
16140
- {
16141
- "name": "isMailBoxHeader",
16142
- "type": "boolean",
16143
- "optional": true,
16144
- "description": "Headers containing multiple mailbox strings need special handling. For example the header <var>=?UTF-8?Q?H=C3=B6rst=2C_Kenny?= <K.Hoerst@invalid>, new@thunderbird.bug</var> will be wrongly decoded to <var>Hörst, Kenny <K.Hoerst@invalid>, new@thunderbird.bug</var>, corrupting the structure of the first mailbox string. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
16145
- },
16146
- {
16147
- "type": "function",
16148
- "name": "callback",
16149
- "optional": true,
16150
- "parameters": [
16151
- {
16152
- "type": "array",
16153
- "items": {
16154
- "type": "string"
16155
- }
16156
- }
16157
- ]
16158
- }
16159
- ]
16160
- },
16161
- {
16162
- "name": "encodeMimeHeader",
16163
- "type": "function",
16164
- "description": "Encode the provided header according to RFC 2047.",
16165
- "async": "callback",
16166
- "parameters": [
16167
- {
16168
- "name": "headerName",
16169
- "type": "string"
16170
- },
16171
- {
16172
- "name": "headerValue",
16173
- "choices": [
16174
- {
16175
- "type": "string"
16176
- },
16177
- {
16178
- "type": "array",
16179
- "items": {
16180
- "type": "string"
16181
- }
16182
- }
16183
- ]
16184
- },
16185
- {
16186
- "name": "isMailBoxHeader",
16187
- "type": "boolean",
16188
- "optional": true,
16189
- "description": "Headers containing multiple mailbox strings need special handling. This option overrides the default behavior of treating the headers defined in $(ref:messengerUtilities.MailboxHeaders) as mailbox headers."
16190
- },
16191
- {
16192
- "type": "function",
16193
- "name": "callback",
16194
- "optional": true,
16195
- "parameters": [
16196
- {
16197
- "type": "array",
16198
- "items": {
16199
- "type": "string"
16200
- }
16201
- }
16202
- ]
16203
- }
16204
- ]
16205
- }
16206
- ]
16207
- }
16208
- ],
16209
16528
  "windows.json": [
16210
16529
  {
16211
16530
  "namespace": "windows",
@@ -16536,6 +16855,16 @@
16536
16855
  "optional": true,
16537
16856
  "description": "The <a href='url-cookieStore'>CookieStore</a> id which all initially opened tabs should use. Either a custom id created using the <a href='url-contextualIdentity'>contextualIdentities API</a>, or a built-in one: <var>firefox-default</var>, <var>firefox-container-1</var>, <var>firefox-container-2</var>, <var>firefox-container-3</var>, <var>firefox-container-4</var>, <var>firefox-container-5</var>. **Note:** The naming pattern was deliberately not changed for Thunderbird, but kept for compatibility reasons. The <permission>cookies</permission> permission is required to be able to specify this property. Furthermore, the <permission>contextualIdentities</permission> permission should be requested, to enable the contextual identities feature (enabled by default only on Thunderbird Daily)."
16538
16857
  },
16858
+ "linkHandler": {
16859
+ "type": "string",
16860
+ "enum": [
16861
+ "strict",
16862
+ "balanced",
16863
+ "relaxed"
16864
+ ],
16865
+ "optional": true,
16866
+ "description": "Thunderbird is a mail client, not a browser. It is possible to load a web page, but opening follow-up pages through hyperlinks should be handled by the user's default browser. This property specifies to what extent this behavior should be enforced. The default <var>balanced</var> link handler will open links to the same host directly in Thunderbird, everything else will be opened in the user's default browser. A <var>relaxed</var> link handler will open all links inside of Thunderbird, a <var>strict</var> link handler will open all links in the user's default browser, except links to the same page."
16867
+ },
16539
16868
  "titlePreface": {
16540
16869
  "type": "string",
16541
16870
  "optional": true,