diff --git a/specification/index.html b/specification/index.html new file mode 100644 index 00000000..759946f3 --- /dev/null +++ b/specification/index.html @@ -0,0 +1,636 @@ + + + + + Web Extensions + + + + + + + + + + + + +
+

+

Web Extensions

+

Draft Community Group Report,

+
+ More details about this document +
+
+
This version: +
https://w3c.github.io/webextensions +
Issue Tracking: +
GitHub +
Inline In Spec +
Editors: +
(Microsoft Corporation) +
(Mozilla) +
+
+
+
+ +
+
+
+

Abstract

+

[Placeholder] Abstract.

+
+

Status of this document

+
+

This specification was published by the WebExtensions Community Group. + It is not a W3C Standard nor is it on the W3C Standards Track. + + Please note that under the W3C Community Contributor License Agreement (CLA) there is a limited opt-out and other conditions apply. + + Learn more about W3C Community and Business Groups.

+

+
+
+ +
+

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

+

A Manifest file.

+

_locales subdirectory

+

An optional directory containing strings as defined in localization.

+

Other files

+

An extension may also contain other files, such as those referenced in the content_scripts and background part of the Manifest.

+

Manifest

+

A WebExtension must have a manifest file at its root directory.

+

Manifest file

+

A manifest file is a [JSON] document named manifest.json. Malformed JSON files are not supported.

+

Manifest keys

+

If manifest keys that are not defined in this specification are specified, implementors must ignore those keys.

+

If manifest keys that are defined in this specification are specified with a different JSON type than defined in this specification, implementors must ignore those keys.

+

The following keys must be considered valid:

+ +

The following keys must be considered valid in Manifest V3:

+ +
Key manifest_version
+

This key must be present.

+
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
+

This key must be present.

+
Key permissions
+

This key may be present.

+
Key optional_permissions
+

This key may be present.

+
Key host_permissions
+

This key may be present.

+
Key optional_host_permissions
+

This key may be present.

+
Key default_locale
+

This key must be present if the _locales subdirectory is present, must be absent otherwise.

+
Key background
+

This key may be present.

+
Key commands
+

This key may be present.

+
Key content_scripts
+

This key may be present.

+
Key content_security_policy
+

This key may be present.

+
Key description
+

This key may be present.

+
Key icons
+

This key may be present.

+
Key options_ui
+

This key may be present.

+
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
+

This key may be present.

+
Key externally_connectable
+

This key may be present.

+
Key devtools_page
+

This key may be present.

+

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.

+

Specify localization handling. [Issue #62]

+

Host permissions

+

Cross-origin fetch

+

Match patterns

+

Concepts

+

Uniqueness of extension IDs

+

Promises and 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

+ +

Version number handling

+
+
+

Conformance

+

Document conventions

+

Conformance requirements are expressed + with a combination of descriptive assertions + and RFC 2119 terminology. + The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” + in the normative parts of this document + are to be interpreted as described in RFC 2119. + However, for readability, + these words do not appear in all uppercase letters in this specification.

+

All of the text of this specification is normative + except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

+

Examples in this specification are introduced with the words “for example” + or are set apart from the normative text + with class="example", + like this:

+
+ +

This is an example of an informative example.

+
+

Informative notes begin with the word “Note” + and are set apart from the normative text + with class="note", + like this:

+

Note, this is an informative note.

+
+ +

References

+

Normative References

+
+
[JSON] +
T. Bray, Ed.. The JavaScript Object Notation (JSON) Data Interchange Format. December 2017. Internet Standard. URL: https://www.rfc-editor.org/rfc/rfc8259 +
[RFC2119] +
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119 +
+

Issues Index

+
+
Specify localization handling. [Issue #62]
+
\ No newline at end of file