diff --git a/specification/window.browser.bs b/specification/window.browser.bs new file mode 100644 index 00000000..3dbbe9b8 --- /dev/null +++ b/specification/window.browser.bs @@ -0,0 +1,77 @@ +
+Title: window.browser
+Shortname: wecg-browser
+Level: 1
+Group: wecg
+Status: UD
+URL: https://w3c.github.io/webextensions/specification/window.browser.html
+Editor: Patrick Kettner, Google, patrickkettner@google.com
+Abstract: This specification reserves the window.browser namespace for use by WebExtensions.
+Repository: w3c/webextensions
+Complain About: accidental-2119 on, missing-example-ids on
+
+ + + +
+spec: html; urlPrefix: https://html.spec.whatwg.org/multipage/
+    type: dfn; text: valid non-empty URL; url: valid-non-empty-url-potentially-surrounded-by-spaces
+
+ +
+ ## Introduction + This section is non-normative. + + Browser extensions are programs to extend the capabilities of web browsers. + Although not standardized at first, web browsers have independently implemented a common interoperable set of extension APIs, called WebExtensions. + + Modern WebExtensions are an evolution of a system originally introduced in + Chromium. In that system, any API that was added was put under the + chrome namespace. When WebExtensions were adopted outside of + Chromium, other vendors used the more neutral browser namespace. + That browser is now considered the canonically correct namespace + for all WebExtension APIs. Some interactions with WebExtensions (such as + external messaging from websites to background processes) necessitate + the exposure of this namespace to the web. + + Given that, this document defines window.browser as reserved for + the use of APIs designed to interact with WebExtensions. The specifics of what + APIs within window.browser are at present intentionally undefined, + and are left up to User Agent implementation. +
+ + +
+

+ window.browser API +

+ + {{browser}} is UA defined attribute exposed on {{window}}. When implemented, + it MUST be used only for WebExtension related functionality. +
+ + +
+  partial interface Window {
+   attribute object browser;
+  };
+
+
+ +
+

+ Worker API +

+ + When {{browser}} is defined on {{window}}, it SHOULD also be exposed on {{ServiceWorkerGlobalScope}} + of origins associated with WebExtensions. + It MUST be used exclusively for WebExtension purposes, however the contents of each instance of {{browser}} is UA defined. +
+ +
+  partial interface ServiceWorkerGlobalScope {
+    attribute object browser;
+  };
+
diff --git a/specification/window.browser.html b/specification/window.browser.html new file mode 100644 index 00000000..c7185bc8 --- /dev/null +++ b/specification/window.browser.html @@ -0,0 +1,1665 @@ + + + + + window.browser + + + + + + + + + + + + + + + + +
+

+

window.browser

+

Unofficial Proposal Draft,

+
+ More details about this document +
+
+
This version: +
https://w3c.github.io/webextensions/specification/window.browser.html +
Issue Tracking: +
GitHub +
Editor: +
(Google) +
+
+
+
+ +
+
+
+

Abstract

+

This specification reserves the window.browser namespace for use by WebExtensions.

+
+

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.

+

+
+
+ +
+
+

Introduction

+ This section is non-normative. +

Browser extensions are programs to extend the capabilities of web browsers. + Although not standardized at first, web browsers have independently implemented a common interoperable set of extension APIs, called WebExtensions.

+

Modern WebExtensions are an evolution of a system originally introduced in + Chromium. In that system, any API that was added was put under the chrome namespace. When WebExtensions were adopted outside of + Chromium, other vendors used the more neutral browser namespace. + That browser is now considered the canonically correct namespace + for all WebExtension APIs. Some interactions with WebExtensions (such as + external messaging from websites to background processes) necessitate + the exposure of this namespace to the web.

+

Given that, this document defines window.browser as reserved for + the use of APIs designed to interact with WebExtensions. The specifics of what + APIs within window.browser are at present intentionally undefined, + and are left up to User Agent implementation.

+
+
+

window.browser API

+

browser is UA defined attribute exposed on window. When implemented, + it MUST be used only for WebExtension related functionality.

+
+
partial interface Window {
+ attribute object browser;
+};
+
+
+
+

Worker API

+

When browser is defined on window, it SHOULD also be exposed on ServiceWorkerGlobalScope of origins associated with WebExtensions. + It MUST be used exclusively for WebExtension purposes, however the contents of each instance of browser is UA defined.

+
+
partial interface ServiceWorkerGlobalScope {
+  attribute object browser;
+};
+
+
+
+

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.

+
+ +

Index

+

Terms defined by this specification

+ +

Terms defined by reference

+ +

References

+

Normative References

+
+
[HTML] +
Anne van Kesteren; et al. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/ +
[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 +
[SERVICE-WORKERS] +
Jake Archibald; Marijn Kruisselbrink. Service Workers. URL: https://w3c.github.io/ServiceWorker/ +
[WEBIDL] +
Edgar Chen; Timothy Gu. Web IDL Standard. Living Standard. URL: https://webidl.spec.whatwg.org/ +
+

IDL Index

+
partial interface Window {
+ attribute object browser;
+};
+
+
+partial interface ServiceWorkerGlobalScope {
+  attribute object browser;
+};
+
+
+ + + \ No newline at end of file