From 3ca07851d775bb5cd0d5954482dff3301ae9a84f Mon Sep 17 00:00:00 2001 From: Simeon Vincent Date: Mon, 13 Nov 2023 11:53:58 -0800 Subject: [PATCH 1/3] Add sections from TPAC 2023 draft During TPAC 2023 we held a breakout session to discuss what content we should include in the specification draft. That content was captured in [this google doc][1]. This commit migrates the draft spec outline in that document to our spec file. [1]: https://docs.google.com/document/d/1q9hQgwTVvyujEhvr52ALeTtuYxyzFhQPfRwPg_hBXlI/edit --- index.bs | 104 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 77 insertions(+), 27 deletions(-) diff --git a/index.bs b/index.bs index ab4d6795..444857b3 100644 --- a/index.bs +++ b/index.bs @@ -11,33 +11,33 @@ Abstract: [Placeholder] Abstract. Markup Shorthands: markdown yes -# File structure +## File structure Once unpacked from the distribution format, a WebExtension is a directory containing a number of files. Note: In some operating systems, filenames are case insensitive. This can lead to naming collisions. -## manifest.json +### manifest.json A Manifest file. -## _locales subdirectory +### _locales subdirectory An optional directory containing strings as defined in localization. -## Other files +### Other files An extension may also contain other files, such as those referenced in the content_scripts and background part of the Manifest. -# Manifest +## Manifest A WebExtension must have a manifest file at its root directory. -## Manifest file +### Manifest file A manifest file is a [[!JSON]] document named `manifest.json`. Malformed JSON files are not supported. -## Manifest keys +### Manifest keys If manifest keys that are not defined in this specification are specified, implementors must ignore those keys. @@ -68,88 +68,138 @@ The following keys must be considered valid in Manifest V3: * `host_permissions`: optional * `optional_host_permissions`: optional -### Key `manifest_version` +#### Key `manifest_version` This key must be present. -### Key `name` +#### Key `name` Name of the extension used in the browser’s user interface. This should be the full name used to identify the extension. See also `short_name`. This key must be present. This property can be localized. -### Key `version` +#### Key `version` This key must be present. -### Key `permissions` +#### Key `permissions` This key may be present. -### Key `optional_permissions` +#### Key `optional_permissions` This key may be present. -### Key `host_permissions` +#### Key `host_permissions` This key may be present. -### Key `optional_host_permissions` +#### Key `optional_host_permissions` This key may be present. -### Key `default_locale` +#### Key `default_locale` This key must be present if the `_locales` subdirectory is present, must be absent otherwise. -### Key `background` +#### Key `background` This key may be present. -### Key `commands` +#### Key `commands` This key may be present. -### Key `content_scripts` +#### Key `content_scripts` This key may be present. -### Key `content_security_policy` +#### Key `content_security_policy` This key may be present. -### Key `description` +#### Key `description` This key may be present. -### Key `icons` +#### Key `icons` This key may be present. -### Key `options_ui` +#### Key `options_ui` This key may be present. -### Key `short_name` +#### Key `short_name` The short name of the extension. This value should be used in contexts where `name` is too long to use in full. If `short_name` is not provided, manifest consumers should use a truncated version of `name`. This key may be present. This property can be localized. -### Key `web_accessible_resources` +#### Key `web_accessible_resources` This key may be present. -### Key `externally_connectable` +#### Key `externally_connectable` This key may be present. -### Key `devtools_page` +#### Key `devtools_page` This key may be present. -# Localization +### Reserved file names + +Filenames beginning with an underscore (`_`) are reserved for use by user agent. + +## Isolated worlds + +## Unavailable APIs + +## The `browser` global + +## Extension origin + +## Localization The _locales subdirectory of a WebExtension can contain strings for internationalization purposes. Issue(62): Specify localization handling. + +## Host permissions + +### Cross-origin fetch + +## Match patterns + +## Concepts + +### Uniqueness of extnsion IDs + +### Promises & callbacks + +### User gestures and activeTab + +### Extension permissions and web perissions + +## Content security policy + +## Architecture + +### Background content + +### Content scripts + +#### Isolated worlds + +### Extension pages + +## Classes of security risk + +## Web accessible resources + +## Interaction with the web + +### Current behavior of cookie partitioning + +## Version number handling From 99dafb560ec0872a08731f297a6825cbd9d28367 Mon Sep 17 00:00:00 2001 From: Simeon Vincent Date: Fri, 8 Dec 2023 08:41:23 -0800 Subject: [PATCH 2/3] Update index.bs Co-authored-by: Oliver Dunk --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 444857b3..2c937a36 100644 --- a/index.bs +++ b/index.bs @@ -174,7 +174,7 @@ Issue(62): Specify localization handling. ## Concepts -### Uniqueness of extnsion IDs +### Uniqueness of extension IDs ### Promises & callbacks From 1ca491c65b8aa9e844cc99c125d851d5bc5803e2 Mon Sep 17 00:00:00 2001 From: Simeon Vincent Date: Fri, 8 Dec 2023 08:41:32 -0800 Subject: [PATCH 3/3] Update index.bs Co-authored-by: Oliver Dunk --- index.bs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 2c937a36..e11c271e 100644 --- a/index.bs +++ b/index.bs @@ -176,7 +176,7 @@ Issue(62): Specify localization handling. ### Uniqueness of extension IDs -### Promises & callbacks +### Promises and callbacks ### User gestures and activeTab