webext-schema 5.1.16 → 5.2.1

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.
@@ -916,6 +916,31 @@
916
916
  "type": "string"
917
917
  }
918
918
  ]
919
+ },
920
+ {
921
+ "name": "onChanged",
922
+ "description": "Fired when a registered command's shortcut is changed.",
923
+ "type": "function",
924
+ "parameters": [
925
+ {
926
+ "type": "object",
927
+ "name": "changeInfo",
928
+ "properties": {
929
+ "name": {
930
+ "type": "string",
931
+ "description": "The name of the shortcut."
932
+ },
933
+ "newShortcut": {
934
+ "type": "string",
935
+ "description": "The new shortcut active for this command, or blank if not active."
936
+ },
937
+ "oldShortcut": {
938
+ "type": "string",
939
+ "description": "The old shortcut which is no longer active for this command, or blank if the shortcut was previously inactive."
940
+ }
941
+ }
942
+ }
943
+ ]
919
944
  }
920
945
  ],
921
946
  "functions": [
@@ -1898,6 +1923,11 @@
1898
1923
  "description": "Find only ranges with case sensitive match.",
1899
1924
  "optional": true
1900
1925
  },
1926
+ "matchDiacritics": {
1927
+ "type": "boolean",
1928
+ "description": "Find only ranges with diacritic sensitive match.",
1929
+ "optional": true
1930
+ },
1901
1931
  "entireWord": {
1902
1932
  "type": "boolean",
1903
1933
  "description": "Find only ranges that match entire word.",
@@ -2507,6 +2537,7 @@
2507
2537
  },
2508
2538
  "bookmarkId": {
2509
2539
  "type": "string",
2540
+ "optional": true,
2510
2541
  "description": "The id of the bookmark where the context menu was clicked, if it was on a bookmark."
2511
2542
  },
2512
2543
  "modifiers": {
@@ -3267,6 +3298,11 @@
3267
3298
  "minLength": 1,
3268
3299
  "description": "The text that is displayed in the URL dropdown. Can contain XML-style markup for styling. The supported tags are 'url' (for a literal URL), 'match' (for highlighting text that matched what the user's query), and 'dim' (for dim helper text). The styles can be nested, eg. <dim><match>dimmed match</match></dim>. You must escape the five predefined entities to display them as text: stackoverflow.com/a/1091953/89484 "
3269
3300
  },
3301
+ "deletable": {
3302
+ "type": "boolean",
3303
+ "optional": true,
3304
+ "description": "Whether the suggest result can be deleted by the user."
3305
+ },
3270
3306
  "descriptionStyles": {
3271
3307
  "optional": true,
3272
3308
  "unsupported": true,
@@ -3431,6 +3467,17 @@
3431
3467
  "type": "function",
3432
3468
  "description": "User has ended the keyword input session without accepting the input.",
3433
3469
  "parameters": []
3470
+ },
3471
+ {
3472
+ "name": "onDeleteSuggestion",
3473
+ "type": "function",
3474
+ "description": "User has deleted a suggested result.",
3475
+ "parameters": [
3476
+ {
3477
+ "type": "string",
3478
+ "name": "text"
3479
+ }
3480
+ ]
3434
3481
  }
3435
3482
  ]
3436
3483
  }
@@ -3560,6 +3607,16 @@
3560
3607
  "format": "url"
3561
3608
  }
3562
3609
  }
3610
+ },
3611
+ {
3612
+ "id": "Disposition",
3613
+ "type": "string",
3614
+ "description": "Location where search results should be displayed.",
3615
+ "enum": [
3616
+ "CURRENT_TAB",
3617
+ "NEW_TAB",
3618
+ "NEW_WINDOW"
3619
+ ]
3563
3620
  }
3564
3621
  ],
3565
3622
  "functions": [
@@ -3589,12 +3646,51 @@
3589
3646
  "optional": true,
3590
3647
  "description": "Search engine to use. Uses the default if not specified."
3591
3648
  },
3649
+ "disposition": {
3650
+ "$ref": "Disposition",
3651
+ "optional": true,
3652
+ "description": "Location where search results should be displayed. NEW_TAB is the default."
3653
+ },
3654
+ "tabId": {
3655
+ "type": "integer",
3656
+ "optional": true,
3657
+ "description": "The ID of the tab for the search results. If not specified, a new tab is created, unless disposition is set. tabId cannot be used with disposition."
3658
+ }
3659
+ }
3660
+ }
3661
+ ]
3662
+ },
3663
+ {
3664
+ "name": "query",
3665
+ "type": "function",
3666
+ "async": "callback",
3667
+ "description": "Use the chrome.search API to search via the default provider.",
3668
+ "parameters": [
3669
+ {
3670
+ "type": "object",
3671
+ "name": "queryInfo",
3672
+ "properties": {
3673
+ "text": {
3674
+ "type": "string",
3675
+ "description": "String to query with the default search provider."
3676
+ },
3677
+ "disposition": {
3678
+ "$ref": "Disposition",
3679
+ "optional": true,
3680
+ "description": "Location where search results should be displayed. CURRENT_TAB is the default."
3681
+ },
3592
3682
  "tabId": {
3593
3683
  "type": "integer",
3594
3684
  "optional": true,
3595
- "description": "The ID of the tab for the search results. If not specified, a new tab is created."
3685
+ "description": "Location where search results should be displayed. tabId cannot be used with disposition."
3596
3686
  }
3597
3687
  }
3688
+ },
3689
+ {
3690
+ "type": "function",
3691
+ "name": "callback",
3692
+ "optional": true,
3693
+ "parameters": []
3598
3694
  }
3599
3695
  ]
3600
3696
  }
@@ -3958,7 +4054,7 @@
3958
4054
  "browser_style": {
3959
4055
  "type": "boolean",
3960
4056
  "optional": true,
3961
- "default": true
4057
+ "description": "Defaults to true in Manifest V2; Deprecated in Manifest V3."
3962
4058
  },
3963
4059
  "default_panel": {
3964
4060
  "type": "string",
@@ -7000,14 +7096,12 @@
7000
7096
  "optional": true,
7001
7097
  "choices": [
7002
7098
  {
7003
- "type": "string",
7004
- "format": "relativeUrl"
7099
+ "type": "string"
7005
7100
  },
7006
7101
  {
7007
7102
  "type": "array",
7008
7103
  "items": {
7009
- "type": "string",
7010
- "format": "relativeUrl"
7104
+ "type": "string"
7011
7105
  }
7012
7106
  }
7013
7107
  ]
@@ -7583,7 +7677,7 @@
7583
7677
  "browser_style": {
7584
7678
  "type": "boolean",
7585
7679
  "optional": true,
7586
- "default": false
7680
+ "description": "Deprecated in Manifest V3."
7587
7681
  },
7588
7682
  "default_area": {
7589
7683
  "description": "Defines the location the browserAction will appear by default. The default location is navbar.",
@@ -8062,10 +8156,24 @@
8062
8156
  {
8063
8157
  "name": "openPopup",
8064
8158
  "type": "function",
8065
- "requireUserInput": true,
8066
- "description": "Opens the extension popup window in the active window.",
8159
+ "description": "Opens the extension popup window in the specified window.",
8067
8160
  "async": true,
8068
- "parameters": []
8161
+ "parameters": [
8162
+ {
8163
+ "name": "options",
8164
+ "optional": true,
8165
+ "type": "object",
8166
+ "description": "An object with information about the popup to open.",
8167
+ "properties": {
8168
+ "windowId": {
8169
+ "type": "integer",
8170
+ "minimum": -2,
8171
+ "optional": true,
8172
+ "description": "Defaults to the $(topic:current-window)[current window]."
8173
+ }
8174
+ }
8175
+ }
8176
+ ]
8069
8177
  }
8070
8178
  ],
8071
8179
  "events": [
@@ -9497,129 +9605,950 @@
9497
9605
  ]
9498
9606
  },
9499
9607
  {
9500
- "name": "remove",
9608
+ "name": "remove",
9609
+ "type": "function",
9610
+ "description": "Deletes a cookie by name.",
9611
+ "async": "callback",
9612
+ "parameters": [
9613
+ {
9614
+ "type": "object",
9615
+ "name": "details",
9616
+ "description": "Information to identify the cookie to remove.",
9617
+ "properties": {
9618
+ "url": {
9619
+ "type": "string",
9620
+ "description": "The URL associated with the cookie. If host permissions for this URL are not specified in the manifest file, the API call will fail."
9621
+ },
9622
+ "name": {
9623
+ "type": "string",
9624
+ "description": "The name of the cookie to remove."
9625
+ },
9626
+ "storeId": {
9627
+ "type": "string",
9628
+ "optional": true,
9629
+ "description": "The ID of the cookie store to look in for the cookie. If unspecified, the cookie is looked for by default in the current execution context's cookie store."
9630
+ },
9631
+ "firstPartyDomain": {
9632
+ "type": "string",
9633
+ "optional": true,
9634
+ "description": "The first-party domain associated with the cookie. This attribute is required if First-Party Isolation is enabled."
9635
+ },
9636
+ "partitionKey": {
9637
+ "$ref": "PartitionKey",
9638
+ "optional": true,
9639
+ "description": "The storage partition, if the cookie is part of partitioned storage. By default, non-partitioned storage is used."
9640
+ }
9641
+ }
9642
+ },
9643
+ {
9644
+ "type": "function",
9645
+ "name": "callback",
9646
+ "optional": true,
9647
+ "parameters": [
9648
+ {
9649
+ "name": "details",
9650
+ "type": "object",
9651
+ "description": "Contains details about the cookie that's been removed. If removal failed for any reason, this will be \"null\", and $(ref:runtime.lastError) will be set.",
9652
+ "optional": true,
9653
+ "properties": {
9654
+ "url": {
9655
+ "type": "string",
9656
+ "description": "The URL associated with the cookie that's been removed."
9657
+ },
9658
+ "name": {
9659
+ "type": "string",
9660
+ "description": "The name of the cookie that's been removed."
9661
+ },
9662
+ "storeId": {
9663
+ "type": "string",
9664
+ "description": "The ID of the cookie store from which the cookie was removed."
9665
+ },
9666
+ "firstPartyDomain": {
9667
+ "type": "string",
9668
+ "description": "The first-party domain associated with the cookie that's been removed."
9669
+ },
9670
+ "partitionKey": {
9671
+ "$ref": "PartitionKey",
9672
+ "optional": true,
9673
+ "description": "The storage partition, if the cookie is part of partitioned storage. null if not partitioned."
9674
+ }
9675
+ }
9676
+ }
9677
+ ]
9678
+ }
9679
+ ]
9680
+ },
9681
+ {
9682
+ "name": "getAllCookieStores",
9683
+ "type": "function",
9684
+ "description": "Lists all existing cookie stores.",
9685
+ "async": "callback",
9686
+ "parameters": [
9687
+ {
9688
+ "type": "function",
9689
+ "name": "callback",
9690
+ "parameters": [
9691
+ {
9692
+ "name": "cookieStores",
9693
+ "type": "array",
9694
+ "items": {
9695
+ "$ref": "CookieStore"
9696
+ },
9697
+ "description": "All the existing cookie stores."
9698
+ }
9699
+ ]
9700
+ }
9701
+ ]
9702
+ }
9703
+ ],
9704
+ "events": [
9705
+ {
9706
+ "name": "onChanged",
9707
+ "type": "function",
9708
+ "description": "Fired when a cookie is set or removed. As a special case, note that updating a cookie's properties is implemented as a two step process: the cookie to be updated is first removed entirely, generating a notification with \"cause\" of \"overwrite\" . Afterwards, a new cookie is written with the updated values, generating a second notification with \"cause\" \"explicit\".",
9709
+ "parameters": [
9710
+ {
9711
+ "type": "object",
9712
+ "name": "changeInfo",
9713
+ "properties": {
9714
+ "removed": {
9715
+ "type": "boolean",
9716
+ "description": "True if a cookie was removed."
9717
+ },
9718
+ "cookie": {
9719
+ "$ref": "Cookie",
9720
+ "description": "Information about the cookie that was set or removed."
9721
+ },
9722
+ "cause": {
9723
+ "$ref": "OnChangedCause",
9724
+ "description": "The underlying reason behind the cookie's change."
9725
+ }
9726
+ }
9727
+ }
9728
+ ]
9729
+ }
9730
+ ]
9731
+ }
9732
+ ],
9733
+ "declarative_net_request.json": [
9734
+ {
9735
+ "namespace": "manifest",
9736
+ "types": [
9737
+ {
9738
+ "$extend": "Permission",
9739
+ "choices": [
9740
+ {
9741
+ "type": "string",
9742
+ "enum": [
9743
+ "declarativeNetRequest"
9744
+ ]
9745
+ }
9746
+ ]
9747
+ },
9748
+ {
9749
+ "$extend": "OptionalPermission",
9750
+ "choices": [
9751
+ {
9752
+ "type": "string",
9753
+ "enum": [
9754
+ "declarativeNetRequestFeedback"
9755
+ ]
9756
+ }
9757
+ ]
9758
+ },
9759
+ {
9760
+ "$extend": "PermissionNoPrompt",
9761
+ "choices": [
9762
+ {
9763
+ "type": "string",
9764
+ "enum": [
9765
+ "declarativeNetRequestWithHostAccess"
9766
+ ]
9767
+ }
9768
+ ]
9769
+ },
9770
+ {
9771
+ "$extend": "WebExtensionManifest",
9772
+ "properties": {
9773
+ "declarative_net_request": {
9774
+ "type": "object",
9775
+ "optional": true,
9776
+ "additionalProperties": {
9777
+ "$ref": "UnrecognizedProperty"
9778
+ },
9779
+ "properties": {
9780
+ "rule_resources": {
9781
+ "type": "array",
9782
+ "minItems": 1,
9783
+ "items": {
9784
+ "type": "object",
9785
+ "additionalProperties": {
9786
+ "$ref": "UnrecognizedProperty"
9787
+ },
9788
+ "properties": {
9789
+ "id": {
9790
+ "type": "string",
9791
+ "pattern": "^[^_]",
9792
+ "description": "A non-empty string uniquely identifying the ruleset. IDs beginning with '_' are reserved for internal use."
9793
+ },
9794
+ "enabled": {
9795
+ "type": "boolean",
9796
+ "description": "Whether the ruleset is enabled by default."
9797
+ },
9798
+ "path": {
9799
+ "$ref": "manifest.ExtensionURL",
9800
+ "description": "The path of the JSON ruleset relative to the extension directory."
9801
+ }
9802
+ }
9803
+ }
9804
+ }
9805
+ }
9806
+ }
9807
+ }
9808
+ }
9809
+ ]
9810
+ },
9811
+ {
9812
+ "namespace": "declarativeNetRequest",
9813
+ "description": "Use the declarativeNetRequest API to block or modify network requests by specifying declarative rules.",
9814
+ "permissions": [
9815
+ "declarativeNetRequest",
9816
+ "declarativeNetRequestWithHostAccess"
9817
+ ],
9818
+ "types": [
9819
+ {
9820
+ "id": "ResourceType",
9821
+ "type": "string",
9822
+ "description": "How the requested resource will be used. Comparable to the webRequest.ResourceType type.",
9823
+ "enum": [
9824
+ "main_frame",
9825
+ "sub_frame",
9826
+ "stylesheet",
9827
+ "script",
9828
+ "image",
9829
+ "object",
9830
+ "object_subrequest",
9831
+ "xmlhttprequest",
9832
+ "xslt",
9833
+ "ping",
9834
+ "beacon",
9835
+ "xml_dtd",
9836
+ "font",
9837
+ "media",
9838
+ "websocket",
9839
+ "csp_report",
9840
+ "imageset",
9841
+ "web_manifest",
9842
+ "speculative",
9843
+ "other"
9844
+ ]
9845
+ },
9846
+ {
9847
+ "id": "UnsupportedRegexReason",
9848
+ "type": "string",
9849
+ "description": "Describes the reason why a given regular expression isn't supported.",
9850
+ "enum": [
9851
+ "syntaxError",
9852
+ "memoryLimitExceeded"
9853
+ ]
9854
+ },
9855
+ {
9856
+ "id": "MatchedRule",
9857
+ "type": "object",
9858
+ "properties": {
9859
+ "ruleId": {
9860
+ "type": "integer",
9861
+ "description": "A matching rule's ID."
9862
+ },
9863
+ "rulesetId": {
9864
+ "type": "string",
9865
+ "description": "ID of the Ruleset this rule belongs to."
9866
+ },
9867
+ "extensionId": {
9868
+ "type": "string",
9869
+ "description": "ID of the extension, if this rule belongs to a different extension.",
9870
+ "optional": true
9871
+ }
9872
+ }
9873
+ },
9874
+ {
9875
+ "id": "URLTransform",
9876
+ "type": "object",
9877
+ "description": "Describes the type of the Rule.action.redirect.transform property.",
9878
+ "properties": {
9879
+ "scheme": {
9880
+ "type": "string",
9881
+ "optional": true,
9882
+ "description": "The new scheme for the request.",
9883
+ "enum": [
9884
+ "http",
9885
+ "https",
9886
+ "moz-extension"
9887
+ ]
9888
+ },
9889
+ "username": {
9890
+ "type": "string",
9891
+ "optional": true,
9892
+ "description": "The new username for the request."
9893
+ },
9894
+ "password": {
9895
+ "type": "string",
9896
+ "optional": true,
9897
+ "description": "The new password for the request."
9898
+ },
9899
+ "host": {
9900
+ "type": "string",
9901
+ "optional": true,
9902
+ "description": "The new host name for the request."
9903
+ },
9904
+ "port": {
9905
+ "type": "string",
9906
+ "optional": true,
9907
+ "description": "The new port for the request. If empty, the existing port is cleared."
9908
+ },
9909
+ "path": {
9910
+ "type": "string",
9911
+ "optional": true,
9912
+ "description": "The new path for the request. If empty, the existing path is cleared."
9913
+ },
9914
+ "query": {
9915
+ "type": "string",
9916
+ "optional": true,
9917
+ "description": "The new query for the request. Should be either empty, in which case the existing query is cleared; or should begin with '?'. Cannot be specified if 'queryTransform' is specified."
9918
+ },
9919
+ "queryTransform": {
9920
+ "type": "object",
9921
+ "optional": true,
9922
+ "description": "Add, remove or replace query key-value pairs. Cannot be specified if 'query' is specified.",
9923
+ "properties": {
9924
+ "removeParams": {
9925
+ "type": "array",
9926
+ "optional": true,
9927
+ "description": "The list of query keys to be removed.",
9928
+ "items": {
9929
+ "type": "string"
9930
+ }
9931
+ },
9932
+ "addOrReplaceParams": {
9933
+ "type": "array",
9934
+ "optional": true,
9935
+ "description": "The list of query key-value pairs to be added or replaced.",
9936
+ "items": {
9937
+ "type": "object",
9938
+ "properties": {
9939
+ "key": {
9940
+ "type": "string"
9941
+ },
9942
+ "value": {
9943
+ "type": "string"
9944
+ },
9945
+ "replaceOnly": {
9946
+ "type": "boolean",
9947
+ "optional": true,
9948
+ "description": "If true, the query key is replaced only if it's already present. Otherwise, the key is also added if it's missing.",
9949
+ "default": false
9950
+ }
9951
+ }
9952
+ }
9953
+ }
9954
+ }
9955
+ },
9956
+ "fragment": {
9957
+ "type": "string",
9958
+ "optional": true,
9959
+ "description": "The new fragment for the request. Should be either empty, in which case the existing fragment is cleared; or should begin with '#'."
9960
+ }
9961
+ }
9962
+ },
9963
+ {
9964
+ "id": "Rule",
9965
+ "type": "object",
9966
+ "properties": {
9967
+ "id": {
9968
+ "type": "integer",
9969
+ "description": "An id which uniquely identifies a rule. Mandatory and should be >= 1.",
9970
+ "minimum": 1
9971
+ },
9972
+ "priority": {
9973
+ "type": "integer",
9974
+ "optional": true,
9975
+ "description": "Rule priority. Defaults to 1. When specified, should be >= 1",
9976
+ "minimum": 1,
9977
+ "default": 1
9978
+ },
9979
+ "condition": {
9980
+ "type": "object",
9981
+ "description": "The condition under which this rule is triggered.",
9982
+ "properties": {
9983
+ "urlFilter": {
9984
+ "type": "string",
9985
+ "optional": true,
9986
+ "description": "TODO: link to doc explaining supported pattern. The pattern which is matched against the network request url. Only one of 'urlFilter' or 'regexFilter' can be specified."
9987
+ },
9988
+ "regexFilter": {
9989
+ "type": "string",
9990
+ "optional": true,
9991
+ "description": "Regular expression to match against the network request url. Only one of 'urlFilter' or 'regexFilter' can be specified."
9992
+ },
9993
+ "isUrlFilterCaseSensitive": {
9994
+ "type": "boolean",
9995
+ "optional": true,
9996
+ "description": "Whether 'urlFilter' or 'regexFilter' is case-sensitive."
9997
+ },
9998
+ "initiatorDomains": {
9999
+ "type": "array",
10000
+ "optional": true,
10001
+ "description": "The rule will only match network requests originating from the list of 'initiatorDomains'. If the list is omitted, the rule is applied to requests from all domains.",
10002
+ "minItems": 1,
10003
+ "items": {
10004
+ "type": "string",
10005
+ "format": "canonicalDomain"
10006
+ }
10007
+ },
10008
+ "excludedInitiatorDomains": {
10009
+ "type": "array",
10010
+ "optional": true,
10011
+ "description": "The rule will not match network requests originating from the list of 'initiatorDomains'. If the list is empty or omitted, no domains are excluded. This takes precedence over 'initiatorDomains'.",
10012
+ "items": {
10013
+ "type": "string",
10014
+ "format": "canonicalDomain"
10015
+ }
10016
+ },
10017
+ "requestDomains": {
10018
+ "type": "array",
10019
+ "optional": true,
10020
+ "description": "The rule will only match network requests when the domain matches one from the list of 'requestDomains'. If the list is omitted, the rule is applied to requests from all domains.",
10021
+ "minItems": 1,
10022
+ "items": {
10023
+ "type": "string",
10024
+ "format": "canonicalDomain"
10025
+ }
10026
+ },
10027
+ "excludedRequestDomains": {
10028
+ "type": "array",
10029
+ "optional": true,
10030
+ "description": "The rule will not match network requests when the domains matches one from the list of 'excludedRequestDomains'. If the list is empty or omitted, no domains are excluded. This takes precedence over 'requestDomains'.",
10031
+ "items": {
10032
+ "type": "string",
10033
+ "format": "canonicalDomain"
10034
+ }
10035
+ },
10036
+ "resourceTypes": {
10037
+ "type": "array",
10038
+ "optional": true,
10039
+ "description": "List of resource types which the rule can match. When the rule action is 'allowAllRequests', this must be specified and may only contain 'main_frame' or 'sub_frame'. Cannot be specified if 'excludedResourceTypes' is specified. If neither of them is specified, all resource types except 'main_frame' are matched.",
10040
+ "minItems": 1,
10041
+ "items": {
10042
+ "$ref": "ResourceType"
10043
+ }
10044
+ },
10045
+ "excludedResourceTypes": {
10046
+ "type": "array",
10047
+ "optional": true,
10048
+ "description": "List of resource types which the rule won't match. Cannot be specified if 'resourceTypes' is specified. If neither of them is specified, all resource types except 'main_frame' are matched.",
10049
+ "items": {
10050
+ "$ref": "ResourceType"
10051
+ }
10052
+ },
10053
+ "requestMethods": {
10054
+ "type": "array",
10055
+ "optional": true,
10056
+ "description": "List of HTTP request methods which the rule can match. Should be a lower-case method such as 'connect', 'delete', 'get', 'head', 'options', 'patch', 'post', 'put'.'",
10057
+ "minItems": 1,
10058
+ "items": {
10059
+ "type": "string"
10060
+ }
10061
+ },
10062
+ "excludedRequestMethods": {
10063
+ "type": "array",
10064
+ "optional": true,
10065
+ "description": "List of request methods which the rule won't match. Cannot be specified if 'requestMethods' is specified. If neither of them is specified, all request methods are matched.",
10066
+ "items": {
10067
+ "type": "string"
10068
+ }
10069
+ },
10070
+ "domainType": {
10071
+ "type": "string",
10072
+ "optional": true,
10073
+ "description": "Specifies whether the network request is first-party or third-party to the domain from which it originated. If omitted, all requests are matched.",
10074
+ "enum": [
10075
+ "firstParty",
10076
+ "thirdParty"
10077
+ ]
10078
+ },
10079
+ "tabIds": {
10080
+ "type": "array",
10081
+ "optional": true,
10082
+ "description": "List of tabIds which the rule should match. An ID of -1 matches requests which don't originate from a tab. Only supported for session-scoped rules.",
10083
+ "minItems": 1,
10084
+ "items": {
10085
+ "type": "integer"
10086
+ }
10087
+ },
10088
+ "excludedTabIds": {
10089
+ "type": "array",
10090
+ "optional": true,
10091
+ "description": "List of tabIds which the rule should not match. An ID of -1 excludes requests which don't originate from a tab. Only supported for session-scoped rules.",
10092
+ "items": {
10093
+ "type": "integer"
10094
+ }
10095
+ }
10096
+ }
10097
+ },
10098
+ "action": {
10099
+ "type": "object",
10100
+ "description": "The action to take if this rule is matched.",
10101
+ "properties": {
10102
+ "type": {
10103
+ "type": "string",
10104
+ "enum": [
10105
+ "block",
10106
+ "redirect",
10107
+ "allow",
10108
+ "upgradeScheme",
10109
+ "modifyHeaders",
10110
+ "allowAllRequests"
10111
+ ]
10112
+ },
10113
+ "redirect": {
10114
+ "type": "object",
10115
+ "optional": true,
10116
+ "description": "Describes how the redirect should be performed. Only valid when type is 'redirect'.",
10117
+ "properties": {
10118
+ "extensionPath": {
10119
+ "type": "string",
10120
+ "optional": true,
10121
+ "description": "Path relative to the extension directory. Should start with '/'."
10122
+ },
10123
+ "transform": {
10124
+ "$ref": "URLTransform",
10125
+ "optional": true,
10126
+ "description": "Url transformations to perform."
10127
+ },
10128
+ "url": {
10129
+ "type": "string",
10130
+ "format": "url",
10131
+ "optional": true,
10132
+ "description": "The redirect url. Redirects to JavaScript urls are not allowed."
10133
+ },
10134
+ "regexSubstitution": {
10135
+ "type": "string",
10136
+ "optional": true,
10137
+ "description": "Substitution pattern for rules which specify a 'regexFilter'. The first match of regexFilter within the url will be replaced with this pattern. Within regexSubstitution, backslash-escaped digits (\\1 to \\9) can be used to insert the corresponding capture groups. \\0 refers to the entire matching text."
10138
+ }
10139
+ }
10140
+ },
10141
+ "requestHeaders": {
10142
+ "type": "array",
10143
+ "optional": true,
10144
+ "description": "The request headers to modify for the request. Only valid when type is 'modifyHeaders'.",
10145
+ "minItems": 1,
10146
+ "items": {
10147
+ "type": "object",
10148
+ "properties": {
10149
+ "header": {
10150
+ "type": "string",
10151
+ "description": "The name of the request header to be modified."
10152
+ },
10153
+ "operation": {
10154
+ "type": "string",
10155
+ "description": "The operation to be performed on a header.",
10156
+ "enum": [
10157
+ "append",
10158
+ "set",
10159
+ "remove"
10160
+ ]
10161
+ },
10162
+ "value": {
10163
+ "type": "string",
10164
+ "optional": true,
10165
+ "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
10166
+ }
10167
+ }
10168
+ }
10169
+ },
10170
+ "responseHeaders": {
10171
+ "type": "array",
10172
+ "optional": true,
10173
+ "description": "The response headers to modify for the request. Only valid when type is 'modifyHeaders'.",
10174
+ "minItems": 1,
10175
+ "items": {
10176
+ "type": "object",
10177
+ "properties": {
10178
+ "header": {
10179
+ "type": "string",
10180
+ "description": "The name of the response header to be modified."
10181
+ },
10182
+ "operation": {
10183
+ "type": "string",
10184
+ "description": "The operation to be performed on a header.",
10185
+ "enum": [
10186
+ "append",
10187
+ "set",
10188
+ "remove"
10189
+ ]
10190
+ },
10191
+ "value": {
10192
+ "type": "string",
10193
+ "optional": true,
10194
+ "description": "The new value for the header. Must be specified for the 'append' and 'set' operations."
10195
+ }
10196
+ }
10197
+ }
10198
+ }
10199
+ }
10200
+ }
10201
+ }
10202
+ }
10203
+ ],
10204
+ "functions": [
10205
+ {
10206
+ "name": "updateDynamicRules",
10207
+ "type": "function",
10208
+ "description": "Modifies the current set of dynamic rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. These rules are persisted across browser sessions and extension updates.",
10209
+ "async": "callback",
10210
+ "parameters": [
10211
+ {
10212
+ "name": "options",
10213
+ "type": "object",
10214
+ "properties": {
10215
+ "removeRuleIds": {
10216
+ "type": "array",
10217
+ "optional": true,
10218
+ "description": "IDs of the rules to remove. Any invalid IDs will be ignored.",
10219
+ "items": {
10220
+ "type": "integer"
10221
+ }
10222
+ },
10223
+ "addRules": {
10224
+ "type": "array",
10225
+ "optional": true,
10226
+ "description": "Rules to add.",
10227
+ "items": {
10228
+ "$ref": "Rule"
10229
+ }
10230
+ }
10231
+ }
10232
+ },
10233
+ {
10234
+ "name": "callback",
10235
+ "type": "function",
10236
+ "description": "Called when the dynamic rules have been updated",
10237
+ "parameters": []
10238
+ }
10239
+ ]
10240
+ },
10241
+ {
10242
+ "name": "updateSessionRules",
10243
+ "type": "function",
10244
+ "description": "Modifies the current set of session scoped rules for the extension. The rules with IDs listed in options.removeRuleIds are first removed, and then the rules given in options.addRules are added. These rules are not persisted across sessions and are backed in memory.",
10245
+ "async": "callback",
10246
+ "parameters": [
10247
+ {
10248
+ "name": "options",
10249
+ "type": "object",
10250
+ "properties": {
10251
+ "removeRuleIds": {
10252
+ "type": "array",
10253
+ "optional": true,
10254
+ "description": "IDs of the rules to remove. Any invalid IDs will be ignored.",
10255
+ "items": {
10256
+ "type": "integer"
10257
+ }
10258
+ },
10259
+ "addRules": {
10260
+ "type": "array",
10261
+ "optional": true,
10262
+ "description": "Rules to add.",
10263
+ "items": {
10264
+ "$ref": "Rule"
10265
+ }
10266
+ }
10267
+ }
10268
+ },
10269
+ {
10270
+ "name": "callback",
10271
+ "type": "function",
10272
+ "description": "Called when the session rules have been updated",
10273
+ "parameters": []
10274
+ }
10275
+ ]
10276
+ },
10277
+ {
10278
+ "name": "getEnabledRulesets",
10279
+ "type": "function",
10280
+ "description": "Returns the ids for the current set of enabled static rulesets.",
10281
+ "async": "callback",
10282
+ "parameters": [
10283
+ {
10284
+ "name": "callback",
10285
+ "type": "function",
10286
+ "parameters": [
10287
+ {
10288
+ "type": "array",
10289
+ "name": "rulesetIds",
10290
+ "items": {
10291
+ "type": "string"
10292
+ }
10293
+ }
10294
+ ]
10295
+ }
10296
+ ]
10297
+ },
10298
+ {
10299
+ "name": "updateEnabledRulesets",
10300
+ "type": "function",
10301
+ "description": "Returns the ids for the current set of enabled static rulesets.",
10302
+ "async": "callback",
10303
+ "parameters": [
10304
+ {
10305
+ "name": "updateRulesetOptions",
10306
+ "type": "object",
10307
+ "properties": {
10308
+ "disableRulesetIds": {
10309
+ "type": "array",
10310
+ "items": {
10311
+ "type": "string"
10312
+ },
10313
+ "optional": true,
10314
+ "default": []
10315
+ },
10316
+ "enableRulesetIds": {
10317
+ "type": "array",
10318
+ "items": {
10319
+ "type": "string"
10320
+ },
10321
+ "optional": true,
10322
+ "default": []
10323
+ }
10324
+ }
10325
+ },
10326
+ {
10327
+ "name": "callback",
10328
+ "type": "function",
10329
+ "parameters": []
10330
+ }
10331
+ ]
10332
+ },
10333
+ {
10334
+ "name": "getAvailableStaticRuleCount",
10335
+ "type": "function",
10336
+ "description": "Returns the remaining number of static rules an extension can enable",
10337
+ "async": "callback",
10338
+ "parameters": [
10339
+ {
10340
+ "name": "callback",
10341
+ "type": "function",
10342
+ "parameters": [
10343
+ {
10344
+ "name": "count",
10345
+ "type": "integer"
10346
+ }
10347
+ ]
10348
+ }
10349
+ ]
10350
+ },
10351
+ {
10352
+ "name": "getDynamicRules",
10353
+ "type": "function",
10354
+ "description": "Returns the current set of dynamic rules for the extension.",
10355
+ "async": "callback",
10356
+ "parameters": [
10357
+ {
10358
+ "name": "callback",
10359
+ "type": "function",
10360
+ "parameters": [
10361
+ {
10362
+ "name": "dynamicRules",
10363
+ "type": "array",
10364
+ "items": {
10365
+ "$ref": "Rule"
10366
+ }
10367
+ }
10368
+ ]
10369
+ }
10370
+ ]
10371
+ },
10372
+ {
10373
+ "name": "getSessionRules",
10374
+ "type": "function",
10375
+ "description": "Returns the current set of session scoped rules for the extension.",
10376
+ "async": "callback",
10377
+ "parameters": [
10378
+ {
10379
+ "name": "callback",
10380
+ "type": "function",
10381
+ "parameters": [
10382
+ {
10383
+ "name": "sessionRules",
10384
+ "type": "array",
10385
+ "items": {
10386
+ "$ref": "Rule"
10387
+ }
10388
+ }
10389
+ ]
10390
+ }
10391
+ ]
10392
+ },
10393
+ {
10394
+ "name": "isRegexSupported",
10395
+ "type": "function",
10396
+ "description": "Checks if the given regular expression will be supported as a 'regexFilter' rule condition.",
10397
+ "async": "callback",
10398
+ "parameters": [
10399
+ {
10400
+ "name": "regexOptions",
10401
+ "type": "object",
10402
+ "properties": {
10403
+ "regex": {
10404
+ "type": "string",
10405
+ "description": "The regular expresson to check."
10406
+ },
10407
+ "isCaseSensitive": {
10408
+ "type": "boolean",
10409
+ "optional": true,
10410
+ "description": "Whether the 'regex' specified is case sensitive.",
10411
+ "default": false
10412
+ },
10413
+ "requireCapturing": {
10414
+ "type": "boolean",
10415
+ "optional": true,
10416
+ "description": "Whether the 'regex' specified requires capturing. Capturing is only required for redirect rules which specify a 'regexSubstition' action.",
10417
+ "default": false
10418
+ }
10419
+ }
10420
+ },
10421
+ {
10422
+ "name": "callback",
10423
+ "type": "function",
10424
+ "parameters": [
10425
+ {
10426
+ "name": "result",
10427
+ "type": "object",
10428
+ "properties": {
10429
+ "isSupported": {
10430
+ "type": "boolean",
10431
+ "description": "Whether the given regex is supported"
10432
+ },
10433
+ "reason": {
10434
+ "$ref": "UnsupportedRegexReason",
10435
+ "optional": true,
10436
+ "description": "Specifies the reason why the regular expression is not supported. Only provided if 'isSupported' is false."
10437
+ }
10438
+ }
10439
+ }
10440
+ ]
10441
+ }
10442
+ ]
10443
+ },
10444
+ {
10445
+ "name": "testMatchOutcome",
9501
10446
  "type": "function",
9502
- "description": "Deletes a cookie by name.",
10447
+ "description": "Checks if any of the extension's declarativeNetRequest rules would match a hypothetical request.",
10448
+ "permissions": [
10449
+ "declarativeNetRequestFeedback"
10450
+ ],
9503
10451
  "async": "callback",
9504
10452
  "parameters": [
9505
10453
  {
10454
+ "name": "request",
9506
10455
  "type": "object",
9507
- "name": "details",
9508
- "description": "Information to identify the cookie to remove.",
10456
+ "description": "The details of the request to test.",
9509
10457
  "properties": {
9510
10458
  "url": {
9511
10459
  "type": "string",
9512
- "description": "The URL associated with the cookie. If host permissions for this URL are not specified in the manifest file, the API call will fail."
10460
+ "description": "The URL of the hypothetical request."
9513
10461
  },
9514
- "name": {
10462
+ "initiator": {
9515
10463
  "type": "string",
9516
- "description": "The name of the cookie to remove."
10464
+ "description": "The initiator URL (if any) for the hypothetical request.",
10465
+ "optional": true
9517
10466
  },
9518
- "storeId": {
10467
+ "method": {
9519
10468
  "type": "string",
10469
+ "description": "Standard HTTP method of the hypothetical request.",
9520
10470
  "optional": true,
9521
- "description": "The ID of the cookie store to look in for the cookie. If unspecified, the cookie is looked for by default in the current execution context's cookie store."
10471
+ "default": "get"
9522
10472
  },
9523
- "firstPartyDomain": {
9524
- "type": "string",
9525
- "optional": true,
9526
- "description": "The first-party domain associated with the cookie. This attribute is required if First-Party Isolation is enabled."
10473
+ "type": {
10474
+ "$ref": "ResourceType",
10475
+ "description": "The resource type of the hypothetical request."
9527
10476
  },
9528
- "partitionKey": {
9529
- "$ref": "PartitionKey",
10477
+ "tabId": {
10478
+ "type": "integer",
10479
+ "description": "The ID of the tab in which the hypothetical request takes place. Does not need to correspond to a real tab ID. Default is -1, meaning that the request isn't related to a tab.",
9530
10480
  "optional": true,
9531
- "description": "The storage partition, if the cookie is part of partitioned storage. By default, non-partitioned storage is used."
10481
+ "default": -1
9532
10482
  }
9533
10483
  }
9534
10484
  },
9535
10485
  {
9536
- "type": "function",
9537
- "name": "callback",
10486
+ "name": "options",
10487
+ "type": "object",
9538
10488
  "optional": true,
10489
+ "properties": {
10490
+ "includeOtherExtensions": {
10491
+ "type": "boolean",
10492
+ "description": "Whether to account for rules from other installed extensions during rule evaluation.",
10493
+ "optional": true
10494
+ }
10495
+ }
10496
+ },
10497
+ {
10498
+ "name": "callback",
10499
+ "type": "function",
10500
+ "description": "Called with the details of matched rules.",
9539
10501
  "parameters": [
9540
10502
  {
9541
- "name": "details",
10503
+ "name": "result",
9542
10504
  "type": "object",
9543
- "description": "Contains details about the cookie that's been removed. If removal failed for any reason, this will be \"null\", and $(ref:runtime.lastError) will be set.",
9544
- "optional": true,
9545
10505
  "properties": {
9546
- "url": {
9547
- "type": "string",
9548
- "description": "The URL associated with the cookie that's been removed."
9549
- },
9550
- "name": {
9551
- "type": "string",
9552
- "description": "The name of the cookie that's been removed."
9553
- },
9554
- "storeId": {
9555
- "type": "string",
9556
- "description": "The ID of the cookie store from which the cookie was removed."
9557
- },
9558
- "firstPartyDomain": {
9559
- "type": "string",
9560
- "description": "The first-party domain associated with the cookie that's been removed."
9561
- },
9562
- "partitionKey": {
9563
- "$ref": "PartitionKey",
9564
- "optional": true,
9565
- "description": "The storage partition, if the cookie is part of partitioned storage. null if not partitioned."
10506
+ "matchedRules": {
10507
+ "type": "array",
10508
+ "description": "The rules (if any) that match the hypothetical request.",
10509
+ "items": {
10510
+ "$ref": "MatchedRule"
10511
+ }
9566
10512
  }
9567
10513
  }
9568
10514
  }
9569
10515
  ]
9570
10516
  }
9571
10517
  ]
9572
- },
9573
- {
9574
- "name": "getAllCookieStores",
9575
- "type": "function",
9576
- "description": "Lists all existing cookie stores.",
9577
- "async": "callback",
9578
- "parameters": [
9579
- {
9580
- "type": "function",
9581
- "name": "callback",
9582
- "parameters": [
9583
- {
9584
- "name": "cookieStores",
9585
- "type": "array",
9586
- "items": {
9587
- "$ref": "CookieStore"
9588
- },
9589
- "description": "All the existing cookie stores."
9590
- }
9591
- ]
9592
- }
9593
- ]
9594
10518
  }
9595
10519
  ],
9596
- "events": [
9597
- {
9598
- "name": "onChanged",
9599
- "type": "function",
9600
- "description": "Fired when a cookie is set or removed. As a special case, note that updating a cookie's properties is implemented as a two step process: the cookie to be updated is first removed entirely, generating a notification with \"cause\" of \"overwrite\" . Afterwards, a new cookie is written with the updated values, generating a second notification with \"cause\" \"explicit\".",
9601
- "parameters": [
9602
- {
9603
- "type": "object",
9604
- "name": "changeInfo",
9605
- "properties": {
9606
- "removed": {
9607
- "type": "boolean",
9608
- "description": "True if a cookie was removed."
9609
- },
9610
- "cookie": {
9611
- "$ref": "Cookie",
9612
- "description": "Information about the cookie that was set or removed."
9613
- },
9614
- "cause": {
9615
- "$ref": "OnChangedCause",
9616
- "description": "The underlying reason behind the cookie's change."
9617
- }
9618
- }
9619
- }
9620
- ]
10520
+ "properties": {
10521
+ "DYNAMIC_RULESET_ID": {
10522
+ "type": "string",
10523
+ "value": "_dynamic",
10524
+ "description": "Ruleset ID for the dynamic rules added by the extension."
10525
+ },
10526
+ "GUARANTEED_MINIMUM_STATIC_RULES": {
10527
+ "type": "number",
10528
+ "description": "The minimum number of static rules guaranteed to an extension across its enabled static rulesets. Any rules above this limit will count towards the global static rule limit."
10529
+ },
10530
+ "MAX_NUMBER_OF_STATIC_RULESETS": {
10531
+ "type": "number",
10532
+ "description": "The maximum number of static Rulesets an extension can specify as part of the rule_resources manifest key."
10533
+ },
10534
+ "MAX_NUMBER_OF_ENABLED_STATIC_RULESETS": {
10535
+ "type": "number",
10536
+ "description": "The maximum number of static Rulesets an extension can enable at any one time."
10537
+ },
10538
+ "MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES": {
10539
+ "type": "number",
10540
+ "description": "The maximum number of dynamic and session rules an extension can add. NOTE: in the Firefox we are enforcing this limit to the session and dynamic rules count separately, instead of enforcing it to the rules count for both combined as the Chrome implementation does."
10541
+ },
10542
+ "MAX_NUMBER_OF_REGEX_RULES": {
10543
+ "type": "number",
10544
+ "description": "The maximum number of regular expression rules that an extension can add. This limit is evaluated separately for the set of session rules, dynamic rules and those specified in the rule_resources file."
10545
+ },
10546
+ "SESSION_RULESET_ID": {
10547
+ "type": "string",
10548
+ "value": "_session",
10549
+ "description": "Ruleset ID for the session-scoped rules added by the extension."
9621
10550
  }
9622
- ]
10551
+ }
9623
10552
  }
9624
10553
  ],
9625
10554
  "dns.json": [
@@ -11579,18 +12508,15 @@
11579
12508
  "enum": [
11580
12509
  "java",
11581
12510
  "js",
11582
- "leaf",
11583
12511
  "mainthreadio",
11584
12512
  "fileio",
11585
12513
  "fileioall",
11586
- "noiostacks",
12514
+ "nomarkerstacks",
11587
12515
  "screenshots",
11588
12516
  "seqstyle",
11589
12517
  "stackwalk",
11590
- "jstracer",
11591
12518
  "jsallocations",
11592
12519
  "nostacksampling",
11593
- "preferencereads",
11594
12520
  "nativeallocations",
11595
12521
  "ipcmessages",
11596
12522
  "audiocallbacktracing",
@@ -11601,6 +12527,7 @@
11601
12527
  "markersallthreads",
11602
12528
  "unregisteredthreads",
11603
12529
  "processcpu",
12530
+ "power",
11604
12531
  "responsiveness"
11605
12532
  ]
11606
12533
  },
@@ -12612,9 +13539,10 @@
12612
13539
  "postprocess": "manifestVersionCheck"
12613
13540
  },
12614
13541
  "applications": {
12615
- "$ref": "BrowserSpecificSettings",
13542
+ "$ref": "DeprecatedApplications",
12616
13543
  "description": "The applications property is deprecated, please use 'browser_specific_settings'",
12617
- "optional": true
13544
+ "optional": true,
13545
+ "max_manifest_version": 2
12618
13546
  },
12619
13547
  "browser_specific_settings": {
12620
13548
  "$ref": "BrowserSpecificSettings",
@@ -12643,7 +13571,8 @@
12643
13571
  },
12644
13572
  "version": {
12645
13573
  "type": "string",
12646
- "optional": false
13574
+ "optional": false,
13575
+ "format": "versionString"
12647
13576
  },
12648
13577
  "homepage_url": {
12649
13578
  "type": "string",
@@ -12739,6 +13668,14 @@
12739
13668
  "$ref": "ExtensionURL"
12740
13669
  }
12741
13670
  },
13671
+ "type": {
13672
+ "optional": true,
13673
+ "type": "string",
13674
+ "enum": [
13675
+ "module",
13676
+ "classic"
13677
+ ]
13678
+ },
12742
13679
  "persistent": {
12743
13680
  "optional": true,
12744
13681
  "type": "boolean",
@@ -12772,11 +13709,13 @@
12772
13709
  "browser_style": {
12773
13710
  "type": "boolean",
12774
13711
  "optional": true,
12775
- "default": true
13712
+ "description": "Defaults to true in Manifest V2; Deprecated in Manifest V3."
12776
13713
  },
12777
13714
  "chrome_style": {
12778
13715
  "type": "boolean",
12779
- "optional": true
13716
+ "optional": true,
13717
+ "max_manifest_version": 2,
13718
+ "description": "chrome_style is ignored in Firefox. Its replacement (browser_style) has been deprecated."
12780
13719
  },
12781
13720
  "open_in_tab": {
12782
13721
  "type": "boolean",
@@ -12784,8 +13723,7 @@
12784
13723
  }
12785
13724
  },
12786
13725
  "additionalProperties": {
12787
- "type": "any",
12788
- "deprecated": "An unexpected property was found in the WebExtension manifest"
13726
+ "$ref": "UnrecognizedProperty"
12789
13727
  }
12790
13728
  },
12791
13729
  "content_scripts": {
@@ -12880,6 +13818,7 @@
12880
13818
  {
12881
13819
  "min_manifest_version": 3,
12882
13820
  "type": "array",
13821
+ "postprocess": "webAccessibleMatching",
12883
13822
  "items": {
12884
13823
  "type": "object",
12885
13824
  "properties": {
@@ -12890,11 +13829,32 @@
12890
13829
  }
12891
13830
  },
12892
13831
  "matches": {
13832
+ "optional": true,
13833
+ "type": "array",
13834
+ "items": {
13835
+ "$ref": "MatchPattern"
13836
+ }
13837
+ },
13838
+ "extension_ids": {
13839
+ "optional": true,
12893
13840
  "type": "array",
12894
13841
  "items": {
12895
- "$ref": "MatchPatternRestricted"
13842
+ "choices": [
13843
+ {
13844
+ "$ref": "ExtensionID"
13845
+ },
13846
+ {
13847
+ "type": "string",
13848
+ "enum": [
13849
+ "*"
13850
+ ]
13851
+ }
13852
+ ]
12896
13853
  }
12897
13854
  }
13855
+ },
13856
+ "additionalProperties": {
13857
+ "$ref": "UnrecognizedProperty"
12898
13858
  }
12899
13859
  }
12900
13860
  }
@@ -12916,12 +13876,6 @@
12916
13876
  "description": "Represents a WebExtension language pack manifest.json file",
12917
13877
  "$import": "ManifestBase",
12918
13878
  "properties": {
12919
- "homepage_url": {
12920
- "type": "string",
12921
- "format": "url",
12922
- "optional": true,
12923
- "preprocess": "localize"
12924
- },
12925
13879
  "langpack_id": {
12926
13880
  "type": "string",
12927
13881
  "pattern": "^[a-zA-Z][a-zA-Z-]+$"
@@ -12989,12 +13943,6 @@
12989
13943
  "description": "Represents a WebExtension dictionary manifest.json file",
12990
13944
  "$import": "ManifestBase",
12991
13945
  "properties": {
12992
- "homepage_url": {
12993
- "type": "string",
12994
- "format": "url",
12995
- "optional": true,
12996
- "preprocess": "localize"
12997
- },
12998
13946
  "dictionaries": {
12999
13947
  "type": "object",
13000
13948
  "patternProperties": {
@@ -13214,6 +14162,41 @@
13214
14162
  }
13215
14163
  }
13216
14164
  },
14165
+ {
14166
+ "id": "GeckoAndroidSpecificProperties",
14167
+ "type": "object",
14168
+ "properties": {
14169
+ "strict_min_version": {
14170
+ "type": "string",
14171
+ "optional": true
14172
+ },
14173
+ "strict_max_version": {
14174
+ "type": "string",
14175
+ "optional": true
14176
+ }
14177
+ },
14178
+ "additionalProperties": {
14179
+ "type": "any"
14180
+ }
14181
+ },
14182
+ {
14183
+ "id": "DeprecatedApplications",
14184
+ "type": "object",
14185
+ "properties": {
14186
+ "gecko": {
14187
+ "$ref": "FirefoxSpecificProperties",
14188
+ "optional": true
14189
+ },
14190
+ "gecko_android": {
14191
+ "$ref": "GeckoAndroidSpecificProperties",
14192
+ "optional": true,
14193
+ "unsupported": true
14194
+ }
14195
+ },
14196
+ "additionalProperties": {
14197
+ "type": "any"
14198
+ }
14199
+ },
13217
14200
  {
13218
14201
  "id": "BrowserSpecificSettings",
13219
14202
  "type": "object",
@@ -13221,6 +14204,10 @@
13221
14204
  "gecko": {
13222
14205
  "$ref": "FirefoxSpecificProperties",
13223
14206
  "optional": true
14207
+ },
14208
+ "gecko_android": {
14209
+ "$ref": "GeckoAndroidSpecificProperties",
14210
+ "optional": true
13224
14211
  }
13225
14212
  },
13226
14213
  "additionalProperties": {
@@ -13997,7 +14984,7 @@
13997
14984
  "browser_style": {
13998
14985
  "type": "boolean",
13999
14986
  "optional": true,
14000
- "default": false
14987
+ "description": "Deprecated in Manifest V3."
14001
14988
  },
14002
14989
  "show_matches": {
14003
14990
  "type": "array",
@@ -15806,15 +16793,9 @@
15806
16793
  "description": "The result of the script execution."
15807
16794
  },
15808
16795
  "error": {
15809
- "type": "object",
16796
+ "type": "any",
15810
16797
  "optional": true,
15811
- "description": "When the injection has failed, the error is exposed to the caller with this property.",
15812
- "properties": {
15813
- "message": {
15814
- "type": "string",
15815
- "description": "A message explaining why the injection has failed."
15816
- }
15817
- }
16798
+ "description": "The error property is set when the script execution failed. The value is typically an (Error) object with a message property, but could be any value (including primitives and undefined) if the script threw or rejected with such a value."
15818
16799
  }
15819
16800
  }
15820
16801
  },
@@ -15941,10 +16922,9 @@
15941
16922
  },
15942
16923
  "persistAcrossSessions": {
15943
16924
  "type": "boolean",
15944
- "enum": [
15945
- false
15946
- ],
15947
- "description": "Specifies if this content script will persist into future sessions. This is currently NOT supported."
16925
+ "optional": true,
16926
+ "default": true,
16927
+ "description": "Specifies if this content script will persist into future sessions. Defaults to true."
15948
16928
  },
15949
16929
  "css": {
15950
16930
  "type": "array",
@@ -16110,10 +17090,7 @@
16110
17090
  "persistAcrossSessions": {
16111
17091
  "type": "boolean",
16112
17092
  "optional": true,
16113
- "enum": [
16114
- false
16115
- ],
16116
- "description": "Specifies if this content script will persist into future sessions. This is currently NOT supported."
17093
+ "description": "Specifies if this content script will persist into future sessions."
16117
17094
  }
16118
17095
  }
16119
17096
  }
@@ -16582,6 +17559,13 @@
16582
17559
  "description": "The maximum size (in bytes) of the managed storage JSON manifest file. Files larger than this limit will fail to load."
16583
17560
  }
16584
17561
  }
17562
+ },
17563
+ "session": {
17564
+ "allowedContexts": [
17565
+ "devtools"
17566
+ ],
17567
+ "$ref": "StorageArea",
17568
+ "description": "Items in the <code>session</code> storage area are kept in memory, and only until the either browser or extension is closed or reloaded."
16585
17569
  }
16586
17570
  }
16587
17571
  }
@@ -16751,7 +17735,7 @@
16751
17735
  {
16752
17736
  "name": "submitPing",
16753
17737
  "type": "function",
16754
- "description": "Submits a custom ping to the Telemetry back-end. See <code>submitExternalPing</code> inside TelemetryController.jsm for more details.",
17738
+ "description": "Submits a custom ping to the Telemetry back-end. See <code>submitExternalPing</code> inside TelemetryController.sys.mjs for more details.",
16755
17739
  "async": true,
16756
17740
  "parameters": [
16757
17741
  {
@@ -17264,9 +18248,8 @@
17264
18248
  ]
17265
18249
  },
17266
18250
  {
17267
- "name": "checkDeepEq",
18251
+ "name": "assertDeepEq",
17268
18252
  "type": "function",
17269
- "unsupported": true,
17270
18253
  "allowAmbiguousOptionalArguments": true,
17271
18254
  "parameters": [
17272
18255
  {
@@ -17276,6 +18259,11 @@
17276
18259
  {
17277
18260
  "type": "any",
17278
18261
  "name": "actual"
18262
+ },
18263
+ {
18264
+ "type": "string",
18265
+ "name": "message",
18266
+ "optional": true
17279
18267
  }
17280
18268
  ]
17281
18269
  },
@@ -18904,6 +19892,7 @@
18904
19892
  "enum": [
18905
19893
  "webRequest",
18906
19894
  "webRequestBlocking",
19895
+ "webRequestFilterResponse",
18907
19896
  "webRequestFilterResponse.serviceWorkerScript"
18908
19897
  ]
18909
19898
  }
@@ -19240,6 +20229,11 @@
19240
20229
  "description": "The key exchange algorithm used in this request if state is \"secure\".",
19241
20230
  "optional": true
19242
20231
  },
20232
+ "secretKeyLength": {
20233
+ "type": "number",
20234
+ "description": "The length (in bits) of the secret key.",
20235
+ "optional": true
20236
+ },
19243
20237
  "signatureSchemeName": {
19244
20238
  "type": "string",
19245
20239
  "description": "The signature scheme used in this request if state is \"secure\".",
@@ -19252,21 +20246,34 @@
19252
20246
  "$ref": "CertificateInfo"
19253
20247
  }
19254
20248
  },
19255
- "isDomainMismatch": {
19256
- "description": "The domain name does not match the certificate domain.",
19257
- "type": "boolean",
20249
+ "overridableErrorCategory": {
20250
+ "description": "The type of certificate error that was overridden for this connection, if any.",
20251
+ "type": "string",
20252
+ "enum": [
20253
+ "trust_error",
20254
+ "domain_mismatch",
20255
+ "expired_or_not_yet_valid"
20256
+ ],
19258
20257
  "optional": true
19259
20258
  },
19260
- "isExtendedValidation": {
20259
+ "isDomainMismatch": {
20260
+ "description": "The domain name does not match the certificate domain.",
19261
20261
  "type": "boolean",
19262
- "optional": true
20262
+ "optional": true,
20263
+ "deprecated": "Please use $(ref:SecurityInfo.overridableErrorCategory)."
19263
20264
  },
19264
20265
  "isNotValidAtThisTime": {
19265
20266
  "description": "The certificate is either expired or is not yet valid. See <code>CertificateInfo.validity</code> for start and end dates.",
19266
20267
  "type": "boolean",
19267
- "optional": true
20268
+ "optional": true,
20269
+ "deprecated": "Please use $(ref:SecurityInfo.overridableErrorCategory)."
19268
20270
  },
19269
20271
  "isUntrusted": {
20272
+ "type": "boolean",
20273
+ "optional": true,
20274
+ "deprecated": "Please use $(ref:SecurityInfo.overridableErrorCategory)."
20275
+ },
20276
+ "isExtendedValidation": {
19270
20277
  "type": "boolean",
19271
20278
  "optional": true
19272
20279
  },
@@ -19292,6 +20299,26 @@
19292
20299
  },
19293
20300
  "description": "list of reasons that cause the request to be considered weak, if state is \"weak\"",
19294
20301
  "optional": true
20302
+ },
20303
+ "usedEch": {
20304
+ "type": "boolean",
20305
+ "description": "True if the TLS connection used Encrypted Client Hello.",
20306
+ "optional": true
20307
+ },
20308
+ "usedDelegatedCredentials": {
20309
+ "type": "boolean",
20310
+ "description": "True if the TLS connection used Delegated Credentials.",
20311
+ "optional": true
20312
+ },
20313
+ "usedOcsp": {
20314
+ "type": "boolean",
20315
+ "description": "True if the TLS connection made OCSP requests.",
20316
+ "optional": true
20317
+ },
20318
+ "usedPrivateDns": {
20319
+ "type": "boolean",
20320
+ "description": "True if the TLS connection used a privacy-preserving DNS transport like DNS-over-HTTPS.",
20321
+ "optional": true
19295
20322
  }
19296
20323
  }
19297
20324
  },
@@ -19320,6 +20347,8 @@
19320
20347
  "fingerprinting_content",
19321
20348
  "cryptomining",
19322
20349
  "cryptomining_content",
20350
+ "emailtracking",
20351
+ "emailtracking_content",
19323
20352
  "tracking",
19324
20353
  "tracking_ad",
19325
20354
  "tracking_analytics",