webext-schema 6.0.0 → 7.1.0

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.
@@ -821,7 +821,7 @@
821
821
  "properties": {
822
822
  "default_locale": {
823
823
  "type": "string",
824
- "optional": "true"
824
+ "optional": true
825
825
  },
826
826
  "l10n_resources": {
827
827
  "type": "array",
@@ -1684,7 +1684,6 @@
1684
1684
  },
1685
1685
  "documentId": {
1686
1686
  "type": "string",
1687
- "unsupported": true,
1688
1687
  "optional": true,
1689
1688
  "description": "An UUID for the document associated with this context, or undefined if it is not hosted in a document"
1690
1689
  },
@@ -1769,6 +1768,11 @@
1769
1768
  "optional": true,
1770
1769
  "description": "The $(topic:frame_ids)[frame] that opened the connection. 0 for top-level frames, positive for child frames. This will only be set when <code>tab</code> is set."
1771
1770
  },
1771
+ "documentId": {
1772
+ "type": "string",
1773
+ "optional": true,
1774
+ "description": "A UUID of the document that opened the connection."
1775
+ },
1772
1776
  "id": {
1773
1777
  "type": "string",
1774
1778
  "optional": true,
@@ -2070,6 +2074,27 @@
2070
2074
  "description": "The fully-qualified URL to the resource."
2071
2075
  }
2072
2076
  },
2077
+ {
2078
+ "name": "getDocumentId",
2079
+ "type": "function",
2080
+ "allowedContexts": [
2081
+ "content",
2082
+ "devtools"
2083
+ ],
2084
+ "description": "Get the documentId of any window global or frame element. Throws for invalid targets, such as unloaded frames.",
2085
+ "parameters": [
2086
+ {
2087
+ "type": "any",
2088
+ "name": "target",
2089
+ "description": "A WindowProxy or a browsing context container Element (iframe, frame, embed, or object) for the target frame."
2090
+ }
2091
+ ],
2092
+ "allowCrossOriginArguments": true,
2093
+ "returns": {
2094
+ "type": "string",
2095
+ "description": "The documentId of the target document."
2096
+ }
2097
+ },
2073
2098
  {
2074
2099
  "name": "getFrameId",
2075
2100
  "type": "function",
@@ -2082,7 +2107,7 @@
2082
2107
  {
2083
2108
  "type": "any",
2084
2109
  "name": "target",
2085
- "description": "A WindowProxy or a Browsing Context container element (IFrame, Frame, Embed, Object) for the target frame."
2110
+ "description": "A WindowProxy or a browsing context container Element (iframe, frame, embed, or object) for the target frame."
2086
2111
  }
2087
2112
  ],
2088
2113
  "allowCrossOriginArguments": true,
@@ -2653,7 +2678,7 @@
2653
2678
  },
2654
2679
  {
2655
2680
  "type": "array",
2656
- "description": "An RGBA array of 3 integers and a fractional (a float between 0 and 1). For example <var>[220, 20, 60, 0.5]<var> for the color *crimson* with 50% opacity.",
2681
+ "description": "An RGBA array of 3 integers and a fractional (a float between 0 and 1). For example <var>[220, 20, 60, 0.5]</var> for the color *crimson* with 50% opacity.",
2657
2682
  "minItems": 4,
2658
2683
  "maxItems": 4,
2659
2684
  "items": {
@@ -2980,7 +3005,8 @@
2980
3005
  ]
2981
3006
  },
2982
3007
  "maxItems": 15,
2983
- "optional": true
3008
+ "optional": true,
3009
+ "description": "An array of alignment values, one for each image in <var>additional_backgrounds</var>."
2984
3010
  },
2985
3011
  "additional_backgrounds_tiling": {
2986
3012
  "type": "array",
@@ -2994,16 +3020,18 @@
2994
3020
  ]
2995
3021
  },
2996
3022
  "maxItems": 15,
2997
- "optional": true
3023
+ "optional": true,
3024
+ "description": "An array of tiling values, one for each image in <var>additional_backgrounds</var>."
2998
3025
  },
2999
3026
  "color_scheme": {
3000
3027
  "description": "If set, overrides the general theme (context menus, toolbars, content area).",
3001
3028
  "optional": true,
3002
3029
  "type": "string",
3003
3030
  "enum": [
3031
+ "auto",
3004
3032
  "light",
3005
3033
  "dark",
3006
- "auto"
3034
+ "system"
3007
3035
  ]
3008
3036
  },
3009
3037
  "content_color_scheme": {
@@ -3011,9 +3039,10 @@
3011
3039
  "optional": true,
3012
3040
  "type": "string",
3013
3041
  "enum": [
3042
+ "auto",
3014
3043
  "light",
3015
3044
  "dark",
3016
- "auto"
3045
+ "system"
3017
3046
  ]
3018
3047
  }
3019
3048
  },
@@ -4018,45 +4047,85 @@
4018
4047
  "types": [
4019
4048
  {
4020
4049
  "id": "QueryInfo",
4021
- "description": "Object defining a query for $(ref:contacts.quickSearch).",
4022
- "type": "object",
4023
- "properties": {
4024
- "parentId": {
4025
- "type": "string",
4026
- "min_manifest_version": 3,
4027
- "optional": true,
4028
- "description": "The id of the address book to search. If not specified, all address books are searched."
4029
- },
4030
- "searchString": {
4031
- "type": "string",
4032
- "optional": true,
4033
- "description": "One or more space-separated terms to search for in predefined contact fields (defined by the preference <var>mail.addr_book.quicksearchquery.format</var>)."
4034
- },
4035
- "includeLocal": {
4036
- "type": "boolean",
4037
- "optional": true,
4038
- "default": true,
4039
- "description": "Whether to include results from local address books. Defaults to <var>true</var>."
4040
- },
4041
- "includeRemote": {
4042
- "type": "boolean",
4043
- "optional": true,
4044
- "default": true,
4045
- "description": "Whether to include results from remote address books. Defaults to <var>true</var>."
4046
- },
4047
- "includeReadOnly": {
4048
- "type": "boolean",
4049
- "optional": true,
4050
- "default": true,
4051
- "description": "Whether to include results from read-only address books. Defaults to <var>true</var>."
4050
+ "choices": [
4051
+ {
4052
+ "max_manifest_version": 2,
4053
+ "description": "Object defining a query for $(ref:contacts.quickSearch).",
4054
+ "type": "object",
4055
+ "properties": {
4056
+ "searchString": {
4057
+ "type": "string",
4058
+ "optional": true,
4059
+ "description": "One or more space-separated terms to search for in predefined contact fields (defined by the preference <var>mail.addr_book.quicksearchquery.format</var>)."
4060
+ },
4061
+ "includeLocal": {
4062
+ "type": "boolean",
4063
+ "optional": true,
4064
+ "default": true,
4065
+ "description": "Whether to include results from local address books. Defaults to <var>true</var>."
4066
+ },
4067
+ "includeRemote": {
4068
+ "type": "boolean",
4069
+ "optional": true,
4070
+ "default": true,
4071
+ "description": "Whether to include results from remote address books. Defaults to <var>true</var>."
4072
+ },
4073
+ "includeReadOnly": {
4074
+ "type": "boolean",
4075
+ "optional": true,
4076
+ "default": true,
4077
+ "description": "Whether to include results from read-only address books. Defaults to <var>true</var>."
4078
+ },
4079
+ "includeReadWrite": {
4080
+ "type": "boolean",
4081
+ "optional": true,
4082
+ "default": true,
4083
+ "description": "Whether to include results from read-write address books. Defaults to <var>true</var>."
4084
+ }
4085
+ }
4052
4086
  },
4053
- "includeReadWrite": {
4054
- "type": "boolean",
4055
- "optional": true,
4056
- "default": true,
4057
- "description": "Whether to include results from read-write address books. Defaults to <var>true</var>."
4087
+ {
4088
+ "min_manifest_version": 3,
4089
+ "description": "Object defining a query for $(ref:contacts.query).",
4090
+ "type": "object",
4091
+ "properties": {
4092
+ "parentId": {
4093
+ "type": "string",
4094
+ "optional": true,
4095
+ "description": "The id of the address book to search. If not specified, all address books are searched."
4096
+ },
4097
+ "searchString": {
4098
+ "type": "string",
4099
+ "optional": true,
4100
+ "description": "One or more space-separated terms to search for in predefined contact fields (defined by the preference <var>mail.addr_book.quicksearchquery.format</var>)."
4101
+ },
4102
+ "includeLocal": {
4103
+ "type": "boolean",
4104
+ "optional": true,
4105
+ "default": true,
4106
+ "description": "Whether to include results from local address books. Defaults to <var>true</var>."
4107
+ },
4108
+ "includeRemote": {
4109
+ "type": "boolean",
4110
+ "optional": true,
4111
+ "default": true,
4112
+ "description": "Whether to include results from remote address books. Defaults to <var>true</var>."
4113
+ },
4114
+ "includeReadOnly": {
4115
+ "type": "boolean",
4116
+ "optional": true,
4117
+ "default": true,
4118
+ "description": "Whether to include results from read-only address books. Defaults to <var>true</var>."
4119
+ },
4120
+ "includeReadWrite": {
4121
+ "type": "boolean",
4122
+ "optional": true,
4123
+ "default": true,
4124
+ "description": "Whether to include results from read-write address books. Defaults to <var>true</var>."
4125
+ }
4126
+ }
4058
4127
  }
4059
- }
4128
+ ]
4060
4129
  },
4061
4130
  {
4062
4131
  "id": "ContactNode",
@@ -4436,6 +4505,17 @@
4436
4505
  }
4437
4506
  ]
4438
4507
  },
4508
+ {
4509
+ "name": "onManyCreated",
4510
+ "type": "function",
4511
+ "description": "Fired when a large number of contacts are added. The contacts are not emitted for performance reasons. The event indicates significant changes, and consumers should rebuild any cached representation of the address book.",
4512
+ "parameters": [
4513
+ {
4514
+ "name": "node",
4515
+ "$ref": "AddressBookNode"
4516
+ }
4517
+ ]
4518
+ },
4439
4519
  {
4440
4520
  "name": "onUpdated",
4441
4521
  "type": "function",
@@ -4803,6 +4883,7 @@
4803
4883
  "$extend": "WebExtensionManifest",
4804
4884
  "properties": {
4805
4885
  "action": {
4886
+ "description": "Defines the appearance and behavior of an action button in the toolbar.",
4806
4887
  "min_manifest_version": 3,
4807
4888
  "type": "object",
4808
4889
  "additionalProperties": {
@@ -4908,6 +4989,7 @@
4908
4989
  "$extend": "WebExtensionManifest",
4909
4990
  "properties": {
4910
4991
  "browser_action": {
4992
+ "description": "Defines the appearance and behavior of a browserAction button in the toolbar.",
4911
4993
  "max_manifest_version": 2,
4912
4994
  "type": "object",
4913
4995
  "additionalProperties": {
@@ -5988,6 +6070,7 @@
5988
6070
  "$extend": "WebExtensionManifest",
5989
6071
  "properties": {
5990
6072
  "cloud_file": {
6073
+ "description": "Defines a cloud file provider for uploading large attachments to a remote server.",
5991
6074
  "type": "object",
5992
6075
  "additionalProperties": {
5993
6076
  "$ref": "UnrecognizedProperty"
@@ -6522,7 +6605,7 @@
6522
6605
  "choices": [
6523
6606
  {
6524
6607
  "type": "string",
6525
- "description": "A name and email address in the format <var>Name <email@example.com></var>, or just an email address."
6608
+ "description": "A name and email address in mailbox format (<var>Name <email@example.com></var>), or just an email address. Mailing lists are specified as <var>ListName <ListName></var>. Use $(ref:messengerUtilities.parseMailboxString) to extract the name and/or the email from the mailbox string, or to expand mailing list entries."
6526
6609
  },
6527
6610
  {
6528
6611
  "type": "object",
@@ -6535,7 +6618,7 @@
6535
6618
  "nodeId": {
6536
6619
  "type": "string",
6537
6620
  "min_manifest_version": 3,
6538
- "description": "The ID of a contact or mailing list node from the $(doc:addressBook.contacts) or $(doc:addressBook.mailingLists)."
6621
+ "description": "The ID of a contact or mailing list node from the $(doc:addressBooks.contacts) or $(doc:addressBooks.mailingLists)."
6539
6622
  },
6540
6623
  "type": {
6541
6624
  "type": "string",
@@ -6586,7 +6669,7 @@
6586
6669
  "additionalFccFolderId": {
6587
6670
  "min_manifest_version": 3,
6588
6671
  "$ref": "folders.MailFolderId",
6589
- "description": "An additional fcc folder which can be selected while composing the message. Cleared when set to <var>null</var>. The permission <permission>accountsRead</permission> is required to use this property.",
6672
+ "description": "An additional fcc folder which can be selected while composing the message. Cleared when set to <var>null</var>. Has no effect when the message is saved as a draft or template; the additional copy is only created when the message is actually sent or queued for sending. The permission <permission>accountsRead</permission> is required to use this property.",
6590
6673
  "optional": "omit-key-if-missing"
6591
6674
  },
6592
6675
  "additionalFccFolder": {
@@ -6605,7 +6688,7 @@
6605
6688
  "$ref": "folders.MailFolderId"
6606
6689
  }
6607
6690
  ],
6608
- "description": "An additional fcc folder which can be selected while composing the message, an empty string if not used. The permission <permission>accountsRead</permission> is required to use this property.",
6691
+ "description": "An additional fcc folder which can be selected while composing the message, an empty string if not used. Has no effect when the message is saved as a draft or template; the additional copy is only created when the message is actually sent or queued for sending. The permission <permission>accountsRead</permission> is required to use this property.",
6609
6692
  "optional": true
6610
6693
  },
6611
6694
  "attachPublicPGPKey": {
@@ -6744,12 +6827,12 @@
6744
6827
  }
6745
6828
  ],
6746
6829
  "optional": true,
6747
- "description": " This value overrides the default fcc setting (defined by the used identity) for this message only. Either a $(ref:folders.MailFolder) specifying the folder for the copy of the sent message, or an empty string to not save a copy at all. The permission <permission>accountsRead</permission> is required to use this property."
6830
+ "description": "This value overrides the default fcc setting (defined by the used identity) for this message only. Either a $(ref:folders.MailFolder) specifying the folder for the copy of the sent message, or an empty string to not save a copy at all. The permission <permission>accountsRead</permission> is required to use this property."
6748
6831
  },
6749
6832
  "overrideDefaultFccFolderId": {
6750
6833
  "min_manifest_version": 3,
6751
6834
  "$ref": "folders.MailFolderId",
6752
- "description": " This value overrides the default fcc setting (defined by the used identity) for this message only. Either a $(ref:folders.MailFolderId) specifying the folder for the copy of the sent message, or an empty string to not save a copy at all. Reset when set to <var>null</var>. The permission <permission>accountsRead</permission> is required to use this property.",
6835
+ "description": "This value overrides the default fcc setting (defined by the used identity) for this message only. Either a $(ref:folders.MailFolderId) specifying the folder for the copy of the sent message, or an empty string to not save a copy at all. Reset when set to <var>null</var>. The permission <permission>accountsRead</permission> is required to use this property.",
6753
6836
  "optional": "omit-key-if-missing"
6754
6837
  },
6755
6838
  "plainTextBody": {
@@ -6770,7 +6853,7 @@
6770
6853
  "optional": true
6771
6854
  },
6772
6855
  "relatedMessageId": {
6773
- "description": "The id of the original message (in case of draft, template, forward or reply). Read-only. Is <var>undefined</var> in all other cases or if the original message was opened from file.",
6856
+ "description": "The id of the original message (in case of draft, template, forward or reply). Read-only. Is <var>undefined</var> in all other cases or if the original message was opened from file. The <permission>messagesRead</permission> permission is required to use this property.",
6774
6857
  "$ref": "messages.MessageId",
6775
6858
  "optional": true
6776
6859
  },
@@ -6953,7 +7036,8 @@
6953
7036
  "parameters": [
6954
7037
  {
6955
7038
  "name": "tab",
6956
- "$ref": "tabs.Tab"
7039
+ "$ref": "tabs.Tab",
7040
+ "description": "The tab of the associated compose window. By the time the event listener is called, this window may have already been destroyed."
6957
7041
  },
6958
7042
  {
6959
7043
  "name": "sendInfo",
@@ -6982,7 +7066,11 @@
6982
7066
  "items": {
6983
7067
  "$ref": "messages.MessageHeader"
6984
7068
  },
6985
- "description": "Copies of the sent message. The number of created copies depends on the applied file carbon copy configuration (fcc)."
7069
+ "description": "Copies of the sent message. The number of created copies depends on the applied file carbon copy configuration (fcc). The <permission>messagesRead</permission> permission is required for this property to be included."
7070
+ },
7071
+ "details": {
7072
+ "$ref": "ComposeDetails",
7073
+ "description": "The $(ref:compose.ComposeDetails) of the send message."
6986
7074
  }
6987
7075
  }
6988
7076
  }
@@ -7023,7 +7111,11 @@
7023
7111
  "items": {
7024
7112
  "$ref": "messages.MessageHeader"
7025
7113
  },
7026
- "description": "An array with exactly one element, the saved message."
7114
+ "description": "An array with exactly one element, the saved message. The <permission>messagesRead</permission> permission is required for this property to be included."
7115
+ },
7116
+ "details": {
7117
+ "$ref": "ComposeDetails",
7118
+ "description": "The $(ref:compose.ComposeDetails) of the saved message."
7027
7119
  }
7028
7120
  }
7029
7121
  }
@@ -7612,6 +7704,7 @@
7612
7704
  "$extend": "WebExtensionManifest",
7613
7705
  "properties": {
7614
7706
  "compose_action": {
7707
+ "description": "Defines the appearance and behavior of a composeAction button in the message compose window.",
7615
7708
  "type": "object",
7616
7709
  "additionalProperties": {
7617
7710
  "$ref": "UnrecognizedProperty"
@@ -8445,11 +8538,96 @@
8445
8538
  ]
8446
8539
  }
8447
8540
  ]
8541
+ },
8542
+ {
8543
+ "id": "ComposeScript",
8544
+ "type": "object",
8545
+ "description": "A script and/or CSS to inject into compose windows via the manifest.",
8546
+ "properties": {
8547
+ "js": {
8548
+ "type": "array",
8549
+ "optional": true,
8550
+ "description": "The list of JavaScript files to inject.",
8551
+ "items": {
8552
+ "$ref": "ExtensionURL"
8553
+ }
8554
+ },
8555
+ "css": {
8556
+ "type": "array",
8557
+ "optional": true,
8558
+ "description": "The list of CSS files to inject.",
8559
+ "items": {
8560
+ "$ref": "ExtensionURL"
8561
+ }
8562
+ }
8563
+ },
8564
+ "additionalProperties": {
8565
+ "$ref": "UnrecognizedProperty"
8566
+ }
8567
+ },
8568
+ {
8569
+ "id": "MessageDisplayScript",
8570
+ "type": "object",
8571
+ "description": "A script and/or CSS to inject into message display pages via the manifest.",
8572
+ "properties": {
8573
+ "js": {
8574
+ "type": "array",
8575
+ "optional": true,
8576
+ "description": "The list of JavaScript files to inject.",
8577
+ "items": {
8578
+ "$ref": "ExtensionURL"
8579
+ }
8580
+ },
8581
+ "css": {
8582
+ "type": "array",
8583
+ "optional": true,
8584
+ "description": "The list of CSS files to inject.",
8585
+ "items": {
8586
+ "$ref": "ExtensionURL"
8587
+ }
8588
+ },
8589
+ "run_at": {
8590
+ "type": "string",
8591
+ "optional": true,
8592
+ "default": "document_idle",
8593
+ "enum": [
8594
+ "document_start",
8595
+ "document_end",
8596
+ "document_idle"
8597
+ ],
8598
+ "description": "Determines when the files specified in css and js are injected. The states directly correspond to <code>Document.readyState</code>: <var>loading</var>, <var>interactive</var> and <var>complete</var>."
8599
+ }
8600
+ },
8601
+ "additionalProperties": {
8602
+ "$ref": "UnrecognizedProperty"
8603
+ }
8604
+ },
8605
+ {
8606
+ "$extend": "WebExtensionManifest",
8607
+ "properties": {
8608
+ "compose_scripts": {
8609
+ "type": "array",
8610
+ "optional": true,
8611
+ "description": "Scripts and CSS to inject into compose windows.",
8612
+ "items": {
8613
+ "$ref": "ComposeScript"
8614
+ }
8615
+ },
8616
+ "message_display_scripts": {
8617
+ "type": "array",
8618
+ "optional": true,
8619
+ "description": "Scripts and CSS to inject into message display pages.",
8620
+ "items": {
8621
+ "$ref": "MessageDisplayScript"
8622
+ }
8623
+ }
8624
+ }
8448
8625
  }
8449
8626
  ]
8450
8627
  },
8451
8628
  {
8452
8629
  "namespace": "composeScripts",
8630
+ "description": "The composeScripts API allows to register and unregister scripts for the message compose window.",
8453
8631
  "permissions": [
8454
8632
  "compose"
8455
8633
  ],
@@ -8510,6 +8688,7 @@
8510
8688
  },
8511
8689
  {
8512
8690
  "namespace": "messageDisplayScripts",
8691
+ "description": "The messageDisplayScripts API allows to register and unregister scripts for the message display window.",
8513
8692
  "permissions": [
8514
8693
  "messagesModify"
8515
8694
  ],
@@ -9918,7 +10097,7 @@
9918
10097
  {
9919
10098
  "name": "key",
9920
10099
  "type": "string",
9921
- "description": "The tag key of the requested folder. See $(ref:messages.tags.list()) for the available tags. Throws when specifying an invalid tag key."
10100
+ "description": "The tag key of the requested folder. See $(ref:messages.tags.list) for the available tags. Throws when specifying an invalid tag key."
9922
10101
  },
9923
10102
  {
9924
10103
  "type": "function",
@@ -10855,7 +11034,7 @@
10855
11034
  {
10856
11035
  "name": "getListedMessages",
10857
11036
  "type": "function",
10858
- "description": "Lists the messages in the current view, honoring sort order and filters.",
11037
+ "description": "Lists the messages in the current view, honoring sort order and filters as used in the UI. Sort order of the returned messages can be overridden via the <var>options</var> parameter",
10859
11038
  "permissions": [
10860
11039
  "messagesRead"
10861
11040
  ],
@@ -10868,6 +11047,40 @@
10868
11047
  "optional": true,
10869
11048
  "minimum": 1
10870
11049
  },
11050
+ {
11051
+ "name": "options",
11052
+ "type": "object",
11053
+ "optional": true,
11054
+ "properties": {
11055
+ "sortType": {
11056
+ "type": "string",
11057
+ "description": "Specifies how the returned messages should be sorted. This does not change the actual sort of the displayed messages. Default sort order is <var>descending</var>, if not specified otherwise. Returning sorted messages is faster than manually sorting the messages afterwards, but slower than returning the messages in their original order.",
11058
+ "optional": true,
11059
+ "enum": [
11060
+ "author",
11061
+ "date",
11062
+ "flagged",
11063
+ "junk",
11064
+ "junkScore",
11065
+ "priority",
11066
+ "read",
11067
+ "recipients",
11068
+ "size",
11069
+ "subject",
11070
+ "tags"
11071
+ ]
11072
+ },
11073
+ "sortOrder": {
11074
+ "type": "string",
11075
+ "optional": true,
11076
+ "description": "The sort order for the returned messages. Ignored if <var>sortType</var> is not specified.",
11077
+ "enum": [
11078
+ "ascending",
11079
+ "descending"
11080
+ ]
11081
+ }
11082
+ }
11083
+ },
10871
11084
  {
10872
11085
  "type": "function",
10873
11086
  "name": "callback",
@@ -12166,6 +12379,7 @@
12166
12379
  "$extend": "WebExtensionManifest",
12167
12380
  "properties": {
12168
12381
  "message_display_action": {
12382
+ "description": "Defines the appearance and behavior of a messageDisplayAction button in the message display window.",
12169
12383
  "type": "object",
12170
12384
  "additionalProperties": {
12171
12385
  "$ref": "UnrecognizedProperty"
@@ -12992,16 +13206,28 @@
12992
13206
  "enum": [
12993
13207
  "messagesDelete",
12994
13208
  "messagesImport",
13209
+ "messagesModifyPermanent",
12995
13210
  "messagesMove",
12996
13211
  "messagesRead",
13212
+ "messages.save",
12997
13213
  "messagesTags",
12998
13214
  "messagesTagsList",
12999
13215
  "messagesUpdate",
13000
- "messagesModifyPermanent",
13001
13216
  "sensitiveDataUpload"
13002
13217
  ]
13003
13218
  }
13004
13219
  ]
13220
+ },
13221
+ {
13222
+ "$extend": "OptionalOnlyPermission",
13223
+ "choices": [
13224
+ {
13225
+ "type": "string",
13226
+ "enum": [
13227
+ "messages.send"
13228
+ ]
13229
+ }
13230
+ ]
13005
13231
  }
13006
13232
  ]
13007
13233
  },
@@ -13061,6 +13287,7 @@
13061
13287
  }
13062
13288
  },
13063
13289
  "date": {
13290
+ "description": "The date and time when the message was sent, according to the Date header in the message.",
13064
13291
  "$ref": "extensionTypes.Date"
13065
13292
  },
13066
13293
  "external": {
@@ -13097,6 +13324,18 @@
13097
13324
  "minimum": 0,
13098
13325
  "maximum": 100
13099
13326
  },
13327
+ "priority": {
13328
+ "type": "string",
13329
+ "description": "The priority of the message.",
13330
+ "enum": [
13331
+ "none",
13332
+ "lowest",
13333
+ "low",
13334
+ "normal",
13335
+ "high",
13336
+ "highest"
13337
+ ]
13338
+ },
13100
13339
  "read": {
13101
13340
  "type": "boolean",
13102
13341
  "optional": true,
@@ -13180,15 +13419,9 @@
13180
13419
  ]
13181
13420
  },
13182
13421
  "headers": {
13183
- "type": "object",
13422
+ "$ref": "messages.HeadersDictionary",
13184
13423
  "description": "A <em>dictionary object</em> of RFC 2047 decoded part headers as <em>key-value</em> pairs, with the header name as <em>key</em>, and an array of headers as <em>value</em>. Only present if requested, see the <var>decodeHeaders</var> option of $(ref:messages.getFull).",
13185
- "optional": true,
13186
- "additionalProperties": {
13187
- "type": "array",
13188
- "items": {
13189
- "type": "string"
13190
- }
13191
- }
13424
+ "optional": true
13192
13425
  },
13193
13426
  "name": {
13194
13427
  "type": "string",
@@ -13214,15 +13447,9 @@
13214
13447
  "optional": true
13215
13448
  },
13216
13449
  "rawHeaders": {
13217
- "type": "object",
13450
+ "$ref": "messages.HeadersDictionary",
13218
13451
  "description": "A <em>dictionary object</em> of raw part headers as <em>key-value</em> pairs, with the header name as <em>key</em>, and an array of headers as <em>value</em>. Only present if requested, see the <var>decodeHeaders</var> option of $(ref:messages.getFull).",
13219
- "optional": true,
13220
- "additionalProperties": {
13221
- "type": "array",
13222
- "items": {
13223
- "type": "string"
13224
- }
13225
- }
13452
+ "optional": true
13226
13453
  },
13227
13454
  "size": {
13228
13455
  "type": "integer",
@@ -13266,6 +13493,18 @@
13266
13493
  }
13267
13494
  }
13268
13495
  },
13496
+ {
13497
+ "id": "AttachmentType",
13498
+ "type": "string",
13499
+ "enum": [
13500
+ "normal",
13501
+ "detached",
13502
+ "deleted",
13503
+ "linked",
13504
+ "cloudFile"
13505
+ ],
13506
+ "description": "The type of an attachment in a message."
13507
+ },
13269
13508
  {
13270
13509
  "id": "MessageAttachment",
13271
13510
  "type": "object",
@@ -13279,19 +13518,17 @@
13279
13518
  "type": "string",
13280
13519
  "description": "The content type of the attachment. A value of <var>text/x-moz-deleted</var> indicates that the original attachment was permanently deleted and replaced by a placeholder text attachment with some meta information about the original attachment."
13281
13520
  },
13521
+ "type": {
13522
+ "$ref": "messages.AttachmentType",
13523
+ "description": "The type of this attachment."
13524
+ },
13282
13525
  "headers": {
13283
- "type": "object",
13284
- "description": "A <em>dictionary object</em> of RFC 2047 decoded attachment headers as <em>key-value</em> pairs, with the header name as <em>key</em>, and an array of headers as <em>value</em>.",
13285
- "additionalProperties": {
13286
- "type": "array",
13287
- "items": {
13288
- "type": "string"
13289
- }
13290
- }
13526
+ "$ref": "messages.HeadersDictionary",
13527
+ "description": "A <em>dictionary object</em> of RFC 2047 decoded attachment headers as <em>key-value</em> pairs, with the header name as <em>key</em>, and an array of headers as <em>value</em>."
13291
13528
  },
13292
13529
  "name": {
13293
13530
  "type": "string",
13294
- "description": "The name, as displayed to the user, of this attachment. This is usually but not always the filename of the attached file."
13531
+ "description": "The name, as displayed to the user, of this attachment. This is usually but not always the filename of the attached file. For a <var>cloudFile</var> attachment, this is the real name of the linked file, when the message provides one."
13295
13532
  },
13296
13533
  "partName": {
13297
13534
  "type": "string",
@@ -13301,10 +13538,20 @@
13301
13538
  "type": "integer",
13302
13539
  "description": "The size in bytes of this attachment."
13303
13540
  },
13304
- "contentId": {
13541
+ "linkUrl": {
13305
13542
  "type": "string",
13306
13543
  "optional": true,
13307
- "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)."
13544
+ "description": "The remote location the attachment's content is linked to. Present for <var>linked</var> attachments (see $(ref:messages.AttachmentType)), whose content is not part of the message and can be fetched from this url."
13545
+ },
13546
+ "cloudFileUrl": {
13547
+ "type": "string",
13548
+ "optional": true,
13549
+ "description": "The remote location a <var>cloudFile</var> attachment's content is stored at. Present for <var>cloudFile</var> attachments (see $(ref:messages.AttachmentType)), whose content is not part of the message."
13550
+ },
13551
+ "contentId": {
13552
+ "type": "string",
13553
+ "optional": true,
13554
+ "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)."
13308
13555
  },
13309
13556
  "message": {
13310
13557
  "$ref": "messages.MessageHeader",
@@ -13313,6 +13560,17 @@
13313
13560
  }
13314
13561
  }
13315
13562
  },
13563
+ {
13564
+ "id": "HeadersDictionary",
13565
+ "type": "object",
13566
+ "description": "A <em>dictionary object</em> of headers as <em>key-value</em> pairs, with the header name as <em>key</em>, and an array of headers as <em>value</em>.",
13567
+ "additionalProperties": {
13568
+ "type": "array",
13569
+ "items": {
13570
+ "type": "string"
13571
+ }
13572
+ }
13573
+ },
13316
13574
  {
13317
13575
  "id": "QueryRange",
13318
13576
  "type": "object",
@@ -13329,6 +13587,176 @@
13329
13587
  "description": "The maximum value required to match the query."
13330
13588
  }
13331
13589
  }
13590
+ },
13591
+ {
13592
+ "id": "NewMessageDetails",
13593
+ "type": "object",
13594
+ "description": "Details of a message to be sent.",
13595
+ "additionalProperties": true,
13596
+ "properties": {
13597
+ "identityId": {
13598
+ "type": "string",
13599
+ "description": "The ID of an identity from the :doc:`accounts` API. Defaults to the default identity. The permission <permission>accountsRead</permission> is required to include the ``identityId``.",
13600
+ "optional": true
13601
+ },
13602
+ "from": {
13603
+ "$ref": "compose.ComposeRecipient",
13604
+ "description": "*Caution*: Setting a value for ``from`` does not change the used identity, it overrides the FROM header. Many email servers do not accept emails where the FROM header does not match the sender identity. Must be set to exactly one valid email address.",
13605
+ "optional": true
13606
+ },
13607
+ "to": {
13608
+ "$ref": "compose.ComposeRecipientList",
13609
+ "optional": true
13610
+ },
13611
+ "cc": {
13612
+ "$ref": "compose.ComposeRecipientList",
13613
+ "optional": true
13614
+ },
13615
+ "bcc": {
13616
+ "$ref": "compose.ComposeRecipientList",
13617
+ "optional": true
13618
+ },
13619
+ "overrideDefaultFccFolder": {
13620
+ "choices": [
13621
+ {
13622
+ "$ref": "folders.MailFolder"
13623
+ },
13624
+ {
13625
+ "type": "string",
13626
+ "enum": [
13627
+ ""
13628
+ ]
13629
+ }
13630
+ ],
13631
+ "optional": true,
13632
+ "description": " This value overrides the default fcc setting (defined by the used identity) for this message. Either a :ref:`folders.MailFolder` specifying the folder for the copy of the sent message, or an empty string to not save a copy at all."
13633
+ },
13634
+ "additionalFccFolder": {
13635
+ "choices": [
13636
+ {
13637
+ "$ref": "folders.MailFolder"
13638
+ },
13639
+ {
13640
+ "type": "string",
13641
+ "enum": [
13642
+ ""
13643
+ ]
13644
+ }
13645
+ ],
13646
+ "description": "An additional fcc folder. Only effective for send operations ($(ref:messages.sendMessage)), has no effect for save operations ($(ref:messages.saveMessage)), which only ever store the message in the primary draft or template folder. For compatibility with :ref:`compose.ComposeDetails`, setting an empty string is supported as well, but has no effect.",
13647
+ "optional": true
13648
+ },
13649
+ "replyTo": {
13650
+ "$ref": "compose.ComposeRecipientList",
13651
+ "optional": true
13652
+ },
13653
+ "followupTo": {
13654
+ "$ref": "compose.ComposeRecipientList",
13655
+ "optional": true
13656
+ },
13657
+ "newsgroups": {
13658
+ "description": "A single newsgroup name or an array of newsgroup names.",
13659
+ "choices": [
13660
+ {
13661
+ "type": "string"
13662
+ },
13663
+ {
13664
+ "type": "array",
13665
+ "items": {
13666
+ "type": "string"
13667
+ }
13668
+ }
13669
+ ],
13670
+ "optional": true
13671
+ },
13672
+ "subject": {
13673
+ "type": "string"
13674
+ },
13675
+ "body": {
13676
+ "type": "string",
13677
+ "description": "The HTML content for the message.",
13678
+ "optional": true
13679
+ },
13680
+ "plainTextBody": {
13681
+ "type": "string",
13682
+ "description": "The content for a plain text message. A specified <value>body</value> will be preferred, except when <value>isPlainText</value> is specified as well.",
13683
+ "optional": true
13684
+ },
13685
+ "isPlainText": {
13686
+ "type": "boolean",
13687
+ "description": "Whether the message should be sent as plain text or as HTML. Prefers a specified <value>plainTextBody</value> over a specified <value>body</value>.",
13688
+ "optional": true
13689
+ },
13690
+ "deliveryFormat": {
13691
+ "type": "string",
13692
+ "enum": [
13693
+ "auto",
13694
+ "plaintext",
13695
+ "html",
13696
+ "both"
13697
+ ],
13698
+ "description": "Defines the mime format of the sent message. Defaults to <value>auto</value>, which prefers to send plain text messages, if the specified body does not include any formatting.\n**Note**: If a plain text body and an HTML body is included in the message, the plain text body is always derived from the included HTML body. It is not possible to specify two independent values via <value>body</value> and <value>plainTextBody</value>.",
13699
+ "optional": true
13700
+ },
13701
+ "contentLanguage": {
13702
+ "type": "array",
13703
+ "items": {
13704
+ "type": "string"
13705
+ },
13706
+ "description": "The languages of the message content, used for the <em>Content-Language</em> header. Each entry is a free-form language tag (for example <var>en-US</var>). If omitted, no <em>Content-Language</em> header is added. The i18n API's <var>detectLanguage()</var> can be used to derive a value from the message body, which should be converted to plain text first (for example via $(ref:messengerUtilities.convertToPlainText)), so that markup does not influence the detection.",
13707
+ "optional": true
13708
+ },
13709
+ "customHeaders": {
13710
+ "type": "array",
13711
+ "items": {
13712
+ "$ref": "compose.CustomHeader"
13713
+ },
13714
+ "description": "Array of custom headers.",
13715
+ "optional": true
13716
+ },
13717
+ "priority": {
13718
+ "type": "string",
13719
+ "enum": [
13720
+ "lowest",
13721
+ "low",
13722
+ "normal",
13723
+ "high",
13724
+ "highest"
13725
+ ],
13726
+ "description": "The priority of the message.",
13727
+ "optional": true
13728
+ },
13729
+ "returnReceipt": {
13730
+ "type": "boolean",
13731
+ "optional": true,
13732
+ "description": "Add the <em>Disposition-Notification-To</em> header to the message to requests the recipients email client to send a reply once the message has been received. Recipient server may strip the header and the recipient might ignore the request."
13733
+ },
13734
+ "deliveryStatusNotification": {
13735
+ "type": "boolean",
13736
+ "optional": true,
13737
+ "description": "Let the sender know when the recipient's server received the message. Not supported by all servers."
13738
+ },
13739
+ "attachVCard": {
13740
+ "type": "boolean",
13741
+ "optional": true,
13742
+ "description": "Wether or not the vCard of the used identity will be attached to the message during send."
13743
+ },
13744
+ "attachments": {
13745
+ "type": "array",
13746
+ "items": {
13747
+ "choices": [
13748
+ {
13749
+ "$ref": "compose.FileAttachment"
13750
+ },
13751
+ {
13752
+ "$ref": "compose.ComposeAttachment"
13753
+ }
13754
+ ]
13755
+ },
13756
+ "description": "Attachments to add to the message. **Note:** :ref:`compose.ComposeAttachments` are included as real file attachments, not as cloudFile links.",
13757
+ "optional": true
13758
+ }
13759
+ }
13332
13760
  }
13333
13761
  ],
13334
13762
  "events": [
@@ -13443,6 +13871,40 @@
13443
13871
  "name": "folderId",
13444
13872
  "$ref": "folders.MailFolderId"
13445
13873
  },
13874
+ {
13875
+ "name": "options",
13876
+ "type": "object",
13877
+ "optional": true,
13878
+ "properties": {
13879
+ "sortType": {
13880
+ "type": "string",
13881
+ "description": "Specifies how the returned messages should be sorted. Default sort order is <var>descending</var>, if not specified otherwise. Returning sorted messages is faster than manually sorting the messages afterwards, but slower than returning the messages in their original order.",
13882
+ "optional": true,
13883
+ "enum": [
13884
+ "author",
13885
+ "date",
13886
+ "flagged",
13887
+ "junk",
13888
+ "junkScore",
13889
+ "priority",
13890
+ "read",
13891
+ "recipients",
13892
+ "size",
13893
+ "subject",
13894
+ "tags"
13895
+ ]
13896
+ },
13897
+ "sortOrder": {
13898
+ "type": "string",
13899
+ "description": "The sort order for the returned messages. Ignored if <var>sortType</var> is not specified.",
13900
+ "optional": true,
13901
+ "enum": [
13902
+ "ascending",
13903
+ "descending"
13904
+ ]
13905
+ }
13906
+ }
13907
+ },
13446
13908
  {
13447
13909
  "type": "function",
13448
13910
  "name": "callback",
@@ -13477,6 +13939,40 @@
13477
13939
  }
13478
13940
  ]
13479
13941
  },
13942
+ {
13943
+ "name": "options",
13944
+ "type": "object",
13945
+ "optional": true,
13946
+ "properties": {
13947
+ "sortType": {
13948
+ "type": "string",
13949
+ "description": "Specifies how the returned messages should be sorted. Default sort order is <var>descending</var>, if not specified otherwise. Returning sorted messages is faster than manually sorting the messages afterwards, but slower than returning the messages in their original order.",
13950
+ "optional": true,
13951
+ "enum": [
13952
+ "author",
13953
+ "date",
13954
+ "flagged",
13955
+ "junk",
13956
+ "junkScore",
13957
+ "priority",
13958
+ "read",
13959
+ "recipients",
13960
+ "size",
13961
+ "subject",
13962
+ "tags"
13963
+ ]
13964
+ },
13965
+ "sortOrder": {
13966
+ "type": "string",
13967
+ "optional": true,
13968
+ "description": "The sort order for the returned messages. Ignored if <var>sortType</var> is not specified.",
13969
+ "enum": [
13970
+ "ascending",
13971
+ "descending"
13972
+ ]
13973
+ }
13974
+ }
13975
+ },
13480
13976
  {
13481
13977
  "type": "function",
13482
13978
  "name": "callback",
@@ -13589,6 +14085,40 @@
13589
14085
  }
13590
14086
  ]
13591
14087
  },
14088
+ {
14089
+ "name": "getHeaders",
14090
+ "type": "function",
14091
+ "description": "Returns all message headers of the specified message, without MIME structure parsing. Throws an error if the message cannot be read, for example due to network issues. This function is significantly faster than $(ref:messages.getFull) when only the header information is required.",
14092
+ "async": "callback",
14093
+ "parameters": [
14094
+ {
14095
+ "name": "messageId",
14096
+ "$ref": "messages.MessageId"
14097
+ },
14098
+ {
14099
+ "name": "options",
14100
+ "type": "object",
14101
+ "properties": {
14102
+ "decodeHeaders": {
14103
+ "type": "boolean",
14104
+ "description": "Whether to decode RFC 2047 encoded headers. Defaults to <var>true</var>.",
14105
+ "optional": true
14106
+ }
14107
+ },
14108
+ "optional": true
14109
+ },
14110
+ {
14111
+ "type": "function",
14112
+ "name": "callback",
14113
+ "optional": true,
14114
+ "parameters": [
14115
+ {
14116
+ "$ref": "messages.HeadersDictionary"
14117
+ }
14118
+ ]
14119
+ }
14120
+ ]
14121
+ },
13592
14122
  {
13593
14123
  "name": "getRaw",
13594
14124
  "type": "function",
@@ -13666,7 +14196,7 @@
13666
14196
  {
13667
14197
  "name": "listAttachments",
13668
14198
  "type": "function",
13669
- "description": "Lists the attachments of a message.",
14199
+ "description": "Lists the attachments of a message. If the message is encrypted, the attachments of the decrypted message are listed.",
13670
14200
  "async": "callback",
13671
14201
  "parameters": [
13672
14202
  {
@@ -13691,7 +14221,7 @@
13691
14221
  {
13692
14222
  "name": "listInlineTextParts",
13693
14223
  "type": "function",
13694
- "description": "Lists all inline text parts of a message. These parts are not returned by $(ref:messages.listAttachments) and usually make up the readable content of the message, mostly with content type <var>text/plain</var> or <var>text/html</var>. If a message only includes a part with content type <var>text/html</var>, the method $(ref:messengerUtilities.convertToPlainText) can be used to retreive a plain text version.",
14224
+ "description": "Lists all inline text parts of a message. These parts are not returned by $(ref:messages.listAttachments) and usually make up the readable content of the message, mostly with content type <var>text/plain</var> or <var>text/html</var>. If a message only includes a part with content type <var>text/html</var>, the method $(ref:messengerUtilities.convertToPlainText) can be used to retreive a plain text version. If the message is encrypted, the inline text parts of the decrypted message are listed.",
13695
14225
  "async": "callback",
13696
14226
  "parameters": [
13697
14227
  {
@@ -13716,7 +14246,7 @@
13716
14246
  {
13717
14247
  "name": "getAttachmentFile",
13718
14248
  "type": "function",
13719
- "description": "Gets the content of a $(ref:messages.MessageAttachment) as a $(url:dom-file)[File] object.",
14249
+ "description": "Gets the content of a $(ref:messages.MessageAttachment) as a $(url:dom-file)[File] object. If the message is encrypted, the function retrieves the attachment from the decrypted message.",
13720
14250
  "async": "callback",
13721
14251
  "parameters": [
13722
14252
  {
@@ -13725,6 +14255,7 @@
13725
14255
  },
13726
14256
  {
13727
14257
  "name": "partName",
14258
+ "description": "The <var>partName</var> of an attachment to be retrieved from the decrypted message.",
13728
14259
  "type": "string",
13729
14260
  "pattern": "^\\d+(\\.\\d+\\$?)*$"
13730
14261
  },
@@ -13745,7 +14276,7 @@
13745
14276
  {
13746
14277
  "name": "deleteAttachments",
13747
14278
  "type": "function",
13748
- "description": "Deletes the specified attachments and replaces them by placeholder text attachments with meta information about the original attachments and a <var>text/x-moz-deleted</var> content type. This permanently modifies the message.",
14279
+ "description": "Deletes the specified attachments and replaces them by placeholder text attachments with meta information about the original attachments and a <var>text/x-moz-deleted</var> content type. This permanently modifies the message. Deleting attachments of encrypted messages is not supported and will throw an <em>ExtensionError</em>.",
13749
14280
  "permissions": [
13750
14281
  "messagesModifyPermanent"
13751
14282
  ],
@@ -14306,6 +14837,126 @@
14306
14837
  }
14307
14838
  ]
14308
14839
  },
14840
+ {
14841
+ "name": "sendMessage",
14842
+ "permissions": [
14843
+ "messages.send"
14844
+ ],
14845
+ "type": "function",
14846
+ "description": "Sends a message programmatically in the background without user interaction. If the send mode is not specified or set to <value>default</value>, the message will be sent directly if the user is online and placed in the user's outbox otherwise. The returned Promise fulfills once the message has been successfully sent or placed in the user's outbox. Throws when there has been an error while sending the message to the outgoing mail server.\n**Note:** If no <value>deliveryFormat</value> is specified, the message is sent as plain text when the body contains no HTML formatting.\n**Note:** It is possible to pass in a :ref:`compose.ComposeDetails` object as the <value>details</value> parameter, and it will be interpreted as a :ref:`messages.NewMessageDetails` object.",
14847
+ "async": "callback",
14848
+ "parameters": [
14849
+ {
14850
+ "name": "details",
14851
+ "$ref": "messages.NewMessageDetails"
14852
+ },
14853
+ {
14854
+ "name": "options",
14855
+ "type": "object",
14856
+ "optional": true,
14857
+ "properties": {
14858
+ "mode": {
14859
+ "type": "string",
14860
+ "enum": [
14861
+ "default",
14862
+ "sendNow",
14863
+ "sendLater"
14864
+ ]
14865
+ }
14866
+ }
14867
+ },
14868
+ {
14869
+ "type": "function",
14870
+ "name": "callback",
14871
+ "optional": true,
14872
+ "parameters": [
14873
+ {
14874
+ "name": "return",
14875
+ "type": "object",
14876
+ "properties": {
14877
+ "mode": {
14878
+ "type": "string",
14879
+ "description": "The used send mode.",
14880
+ "enum": [
14881
+ "sendNow",
14882
+ "sendLater"
14883
+ ]
14884
+ },
14885
+ "headerMessageId": {
14886
+ "type": "string",
14887
+ "description": "The header messageId of the outgoing message. Only included for actually sent messages.",
14888
+ "optional": true
14889
+ },
14890
+ "messages": {
14891
+ "type": "array",
14892
+ "items": {
14893
+ "$ref": "messages.MessageHeader"
14894
+ },
14895
+ "description": "Copies of the sent message. The number of created copies depends on the applied file carbon copy configuration (fcc)."
14896
+ }
14897
+ }
14898
+ }
14899
+ ]
14900
+ }
14901
+ ]
14902
+ },
14903
+ {
14904
+ "name": "saveMessage",
14905
+ "permissions": [
14906
+ "messages.save"
14907
+ ],
14908
+ "type": "function",
14909
+ "description": "Saves a message programmatically as a draft or as a template in the background without user interaction. The save mode defaults to <value>draft</value>. The returned Promise fulfills once the message has been successfully saved. Throws when there has been an error while saving the message.\n**Note:** If no <value>deliveryFormat</value> is specified, the message is saved as plain text when the body contains no HTML formatting.",
14910
+ "async": "callback",
14911
+ "parameters": [
14912
+ {
14913
+ "name": "details",
14914
+ "$ref": "NewMessageDetails"
14915
+ },
14916
+ {
14917
+ "name": "options",
14918
+ "type": "object",
14919
+ "optional": true,
14920
+ "properties": {
14921
+ "mode": {
14922
+ "type": "string",
14923
+ "enum": [
14924
+ "draft",
14925
+ "template"
14926
+ ]
14927
+ }
14928
+ }
14929
+ },
14930
+ {
14931
+ "type": "function",
14932
+ "name": "callback",
14933
+ "optional": true,
14934
+ "parameters": [
14935
+ {
14936
+ "name": "return",
14937
+ "type": "object",
14938
+ "properties": {
14939
+ "mode": {
14940
+ "type": "string",
14941
+ "description": "The used save mode.",
14942
+ "enum": [
14943
+ "draft",
14944
+ "template"
14945
+ ]
14946
+ },
14947
+ "messages": {
14948
+ "type": "array",
14949
+ "items": {
14950
+ "$ref": "messages.MessageHeader"
14951
+ },
14952
+ "description": "The saved message(s). The number of saved messages depends on the applied file carbon copy configuration (fcc)."
14953
+ }
14954
+ }
14955
+ }
14956
+ ]
14957
+ }
14958
+ ]
14959
+ },
14309
14960
  {
14310
14961
  "name": "archive",
14311
14962
  "type": "function",
@@ -14499,10 +15150,11 @@
14499
15150
  },
14500
15151
  "mode": {
14501
15152
  "type": "string",
14502
- "description": "Whether all of the tag filters must apply, or any of them.",
15153
+ "description": "Whether <var>all</var> of the tag filters must apply, <var>any</var> of them, or <var>none</var>. The <var>none</var> mode ignores the provided filters and selects only messages without any tags.",
14503
15154
  "enum": [
14504
15155
  "all",
14505
- "any"
15156
+ "any",
15157
+ "none"
14506
15158
  ]
14507
15159
  }
14508
15160
  }
@@ -14553,7 +15205,7 @@
14553
15205
  "type": "function",
14554
15206
  "description": "Fired when a message tag has been deleted.",
14555
15207
  "permissions": [
14556
- "accountsRead"
15208
+ "messagesTagsList"
14557
15209
  ],
14558
15210
  "parameters": [
14559
15211
  {
@@ -14589,6 +15241,32 @@
14589
15241
  }
14590
15242
  ]
14591
15243
  },
15244
+ {
15245
+ "name": "get",
15246
+ "type": "function",
15247
+ "description": "Returns a message tag identified by its key.",
15248
+ "async": "callback",
15249
+ "permissions": [
15250
+ "messagesTagsList"
15251
+ ],
15252
+ "parameters": [
15253
+ {
15254
+ "type": "string",
15255
+ "name": "key",
15256
+ "description": "The key of the message tag to retrieve."
15257
+ },
15258
+ {
15259
+ "type": "function",
15260
+ "name": "callback",
15261
+ "optional": true,
15262
+ "parameters": [
15263
+ {
15264
+ "$ref": "messages.tags.MessageTag"
15265
+ }
15266
+ ]
15267
+ }
15268
+ ]
15269
+ },
14592
15270
  {
14593
15271
  "name": "create",
14594
15272
  "type": "function",
@@ -14694,13 +15372,21 @@
14694
15372
  "messengerSettings"
14695
15373
  ],
14696
15374
  "properties": {
14697
- "messagePlainTextFlowedOutputEnabled": {
15375
+ "composeInlineSpellCheckEnabled": {
14698
15376
  "$ref": "types.Setting",
14699
- "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)."
15377
+ "description": "Whether the inline (real-time) spell checker is enabled in the message compose window."
14700
15378
  },
14701
15379
  "messageLineLengthLimit": {
14702
15380
  "$ref": "types.Setting",
14703
- "description": "The line length limit for outgoing messages, to comply with requirements from RFC 2822. See description of $(ref:messengerSettings.messagePlainTextFlowedOutputEnabled)."
15381
+ "description": "The line length limit for outgoing messages, to comply with requirements from RFC 2822. See description of $(ref:messengerSettings.messagePlainTextFlowedOutputEnabled). This property is read-only."
15382
+ },
15383
+ "messagePlainTextFlowedOutputEnabled": {
15384
+ "$ref": "types.Setting",
15385
+ "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). This property is read-only."
15386
+ },
15387
+ "readerDisplayAttachmentsInline": {
15388
+ "$ref": "types.Setting",
15389
+ "description": "Whether supported attachments (for example, media files) are shown inline within the body of displayed messages. This property is read-only."
14704
15390
  }
14705
15391
  }
14706
15392
  }
@@ -14832,10 +15518,33 @@
14832
15518
  "description": "The string to be parsed (e.g. <var>User <user@example.com>, other-user@example.com</var>)"
14833
15519
  },
14834
15520
  {
14835
- "type": "boolean",
14836
- "name": "preserveGroups",
15521
+ "name": "options",
14837
15522
  "optional": true,
14838
- "description": "Keep grouped hierarchies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
15523
+ "choices": [
15524
+ {
15525
+ "type": "boolean",
15526
+ "deprecated": "Specify the options object instead of a plain boolean to preserve groups.",
15527
+ "description": "Keep grouped hierarchies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
15528
+ },
15529
+ {
15530
+ "type": "object",
15531
+ "properties": {
15532
+ "preserveGroups": {
15533
+ "type": "boolean",
15534
+ "optional": true,
15535
+ "description": "Keep grouped hierarchies. Groups may be specified in a mailbox string as follows: <var>GroupName : user1 <user1@example.com>, user2@example,com ;</var>."
15536
+ },
15537
+ "expandMailingLists": {
15538
+ "type": "boolean",
15539
+ "optional": true,
15540
+ "permissions": [
15541
+ "addressBooks"
15542
+ ],
15543
+ "description": "Expand Thunderbird mailing lists (specified as <var>ListName <ListName></var>) and include the parsed primary email addresses of all members. When used together with <var>preserveGroups</var>, the mailing list's name and hierarchy are preserved. If the mailing list does not exist, or the <permission>addressBook</permission> permission is not granted, the entries are not expanded and returned unchanged."
15544
+ }
15545
+ }
15546
+ }
15547
+ ]
14839
15548
  },
14840
15549
  {
14841
15550
  "type": "function",
@@ -14953,7 +15662,7 @@
14953
15662
  "$extend": "WebExtensionManifest",
14954
15663
  "properties": {
14955
15664
  "oauth_provider": {
14956
- "description": "Describes an OAuth authentication provider for Thunderbird to use when connecting to mail/address book/calendar services. You will need to have a client ID registered with the provider to use this API.",
15665
+ "description": "Describes an OAuth authentication provider for Thunderbird. You will need to have a client ID registered with the provider to use this API.",
14957
15666
  "type": "object",
14958
15667
  "properties": {
14959
15668
  "issuer": {
@@ -14969,6 +15678,11 @@
14969
15678
  "type": "string",
14970
15679
  "optional": true
14971
15680
  },
15681
+ "issuerIdentifier": {
15682
+ "description": "The OAuth authorization server issuer identifier, as defined by RFC 9207. If provided, it <em>must</em> be an exact string match to what the provider gives in the iss field.",
15683
+ "type": "string",
15684
+ "optional": true
15685
+ },
14972
15686
  "authorizationEndpoint": {
14973
15687
  "description": "OAuth authorization endpoint address.",
14974
15688
  "type": "string",
@@ -14981,14 +15695,18 @@
14981
15695
  },
14982
15696
  "redirectionEndpoint": {
14983
15697
  "description": "OAuth redirection endpoint.",
14984
- "type": "string",
14985
- "format": "url"
15698
+ "type": "string"
14986
15699
  },
14987
15700
  "usePKCE": {
14988
15701
  "description": "If the authorization uses PKCE.",
14989
15702
  "type": "boolean",
14990
15703
  "optional": true
14991
15704
  },
15705
+ "useExternalBrowser": {
15706
+ "description": "If the login flow should use the system web browser. If true, the redirectionEndpoint <em>must</em> be a loopback address, so an origin of http://127.0.0.1 or http://localhost.",
15707
+ "type": "boolean",
15708
+ "optional": true
15709
+ },
14992
15710
  "hostnames": {
14993
15711
  "description": "One or more hostnames which use this OAuth provider.",
14994
15712
  "type": "array",
@@ -15797,6 +16515,12 @@
15797
16515
  "optional": true,
15798
16516
  "minimum": -1,
15799
16517
  "description": "The ID of the group that the tab belongs to. -1 if the tab does not belong to a tab group."
16518
+ },
16519
+ "splitViewId": {
16520
+ "type": "integer",
16521
+ "optional": true,
16522
+ "minimum": -1,
16523
+ "description": "The ID of the Split View that the tab belongs to. -1 if the tab does not belong to a split view."
15800
16524
  }
15801
16525
  }
15802
16526
  },
@@ -15960,6 +16684,11 @@
15960
16684
  "optional": true,
15961
16685
  "minimum": 0,
15962
16686
  "description": "Open a port to a specific frame identified by <var>frameId</var> instead of all frames in the tab."
16687
+ },
16688
+ "documentId": {
16689
+ "type": "string",
16690
+ "optional": true,
16691
+ "description": "Open a port to a specific document identified by <var>documentId</var> instead of all frames in the tab."
15963
16692
  }
15964
16693
  },
15965
16694
  "optional": true
@@ -15994,6 +16723,11 @@
15994
16723
  "optional": true,
15995
16724
  "minimum": 0,
15996
16725
  "description": "Send a message to a specific frame identified by <var>frameId</var> instead of all frames in the tab."
16726
+ },
16727
+ "documentId": {
16728
+ "type": "string",
16729
+ "optional": true,
16730
+ "description": "Send a message to a specific document identified by <var>documentId</var> instead of all frames in the tab."
15997
16731
  }
15998
16732
  },
15999
16733
  "optional": true
@@ -16176,7 +16910,7 @@
16176
16910
  "title": {
16177
16911
  "type": "string",
16178
16912
  "optional": true,
16179
- "description": "Match page titles against a pattern."
16913
+ "description": "Match page titles against a pattern. The <permission>tabs</permission> permission is required to use this property."
16180
16914
  },
16181
16915
  "url": {
16182
16916
  "choices": [
@@ -16191,7 +16925,7 @@
16191
16925
  }
16192
16926
  ],
16193
16927
  "optional": true,
16194
- "description": "Match tabs against one or more $(url:match-patterns)[URL Patterns]. Fragment identifiers are not matched."
16928
+ "description": "Match tabs against one or more $(url:match-patterns)[URL Patterns]. Fragment identifiers are not matched. The <permission>tabs</permission> permission is required to use this property."
16195
16929
  },
16196
16930
  "windowId": {
16197
16931
  "type": "integer",
@@ -16290,7 +17024,7 @@
16290
17024
  {
16291
17025
  "name": "move",
16292
17026
  "type": "function",
16293
- "description": "Moves one or more tabs to a new position within its current window, or to a different window. Tabs can only be moved to and from windows of type <var>normal</var>.",
17027
+ "description": "Moves one or more tabs to a new position within its current window, or to a different window. Tabs can only be moved to and from windows of type <var>normal</var>. The primary mail tab cannot be moved, attempting to actively reposition it will throw an <em>ExtensionError</em>. Other tabs also cannot be placed before the primary mail tab, they will automatically be positioned after it, ensuring that the primary mail tab always remains first.",
16294
17028
  "async": "callback",
16295
17029
  "parameters": [
16296
17030
  {