From 1e59eb189b8e79c0fc3826fd7d4c17f260fc4110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Tue, 13 Sep 2016 17:25:46 +0200 Subject: [PATCH] Rewrap to 100 columns --- fullscreen.bs | 498 +++++++++++++++++++----------------------------- fullscreen.html | 246 +++++++++++------------- 2 files changed, 305 insertions(+), 439 deletions(-) diff --git a/fullscreen.bs b/fullscreen.bs index b3a71df..ba608ed 100644 --- a/fullscreen.bs +++ b/fullscreen.bs @@ -45,134 +45,106 @@ urlPrefix: https://w3c.github.io/screen-orientation/#dfn-

Conformance

-

All diagrams, examples, and notes in this specification are -non-normative, as are all sections explicitly marked non-normative. -Everything else in this specification is normative. -

The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and -"OPTIONAL" in the normative parts of this specification are to be -interpreted as described in RFC2119. For readability, these words do -not appear in all uppercase letters in this specification. -[[!RFC2119]] +

All diagrams, examples, and notes in this specification are non-normative, as are all sections +explicitly marked non-normative. Everything else in this specification is normative. + +

The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD +NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this specification are to be +interpreted as described in RFC2119. For readability, these words do not appear in all uppercase +letters in this specification. [[!RFC2119]]

Terminology

-

Most terminology used in this specification is from CSS, DOM, HTML, and -Web IDL. -[[!CSS]] -[[!DOM]] -[[!HTML]] -[[!WEBIDL]] +

Most terminology used in this specification is from CSS, DOM, HTML, and Web IDL. [[!CSS]] +[[!DOM]] [[!HTML]] [[!WEBIDL]] -

The term context object means the object on which the method -or attribute being discussed was called. When the -context object is unambiguous, the term can be omitted. +

The term context object means the object on which the method or attribute being +discussed was called. When the context object is unambiguous, the term can be omitted. -

A browsing context A -is called a descendant browsing context of a -browsing context B if -and only if B is an -ancestor browsing context of -A. +

A browsing context A is called a descendant browsing context of a +browsing context B if and only if B is an +ancestor browsing context of A.

Model

-

All elements have an associated -fullscreen flag. Unless stated otherwise it is unset. +

All elements have an associated fullscreen flag. Unless stated otherwise it is +unset. -

All <{iframe}> -elements have an associated -iframe fullscreen flag. Unless stated otherwise it is unset. +

All <{iframe}> elements have an associated iframe fullscreen flag. Unless +stated otherwise it is unset. -

All documents -have an associated fullscreen element. The fullscreen element is -the topmost element in the -document's top layer +

All documents have an associated fullscreen element. The +fullscreen element is the topmost element in the document's top layer whose fullscreen flag is set, if any, and null otherwise. -

To fullscreen an element within a document, set -the element's fullscreen flag and -add it to document's +

To fullscreen an element within a document, set the +element's fullscreen flag and add it to document's top layer. -

To unfullscreen an element within a document, -unset the element's fullscreen flag and -iframe fullscreen flag (if any), and -remove it from document's -top layer. +

To unfullscreen an element within a document, unset the +element's fullscreen flag and iframe fullscreen flag (if any), and +remove it from document's top layer.

To unfullscreen a document, -unfullscreen all -elements, within -document's top layer, whose fullscreen flag is -set. +unfullscreen all elements, within document's +top layer, whose fullscreen flag is set.


-

To fully exit fullscreen a -document document, run these -steps: +

To fully exit fullscreen a document document, run these steps:

    -
  1. If document's fullscreen element is null, terminate these - steps. +

  2. If document's fullscreen element is null, terminate these steps. -

  3. Unfullscreen elements whose - fullscreen flag is set, within document's top layer, except - for document's fullscreen element. +

  4. Unfullscreen elements whose fullscreen flag is + set, within document's top layer, except for document's + fullscreen element.

  5. Exit fullscreen document.

-

Whenever the -removing steps run with an -oldNode, run these steps: +

Whenever the removing steps run with an oldNode, run these steps:

    -
  1. Let nodes be oldNode's - inclusive descendants - that have their fullscreen flag set, in - tree order. +

  2. Let nodes be oldNode's inclusive descendants that have their + fullscreen flag set, in tree order.

  3. For each node in nodes, run these substeps:

      -
    1. If node is its - node document's - fullscreen element, exit fullscreen that - document. - -

    2. Otherwise, - unfullscreen node within - its node document. +

    3. If node is its node document's fullscreen element, + exit fullscreen that document. + +

    4. Otherwise, unfullscreen node within its + node document.

-

Whenever the unloading document cleanup steps run with a -document, fully exit fullscreen document. +

Whenever the unloading document cleanup steps run with a document, +fully exit fullscreen document.


-

Fullscreen is supported if there is no previously-established user -preference, security risk, or platform limitation. +

Fullscreen is supported if there is no previously-established user preference, +security risk, or platform limitation.

An algorithm is allowed to request fullscreen if one of the following is true:

+

API

@@ -194,54 +166,45 @@ partial interface Document {
 
 
promise = element . {{Element/requestFullscreen()}} -

Displays element fullscreen and fulfills promise when - done. +

Displays element fullscreen and fulfills promise when done.

document . {{Document/fullscreenEnabled}} -

Returns true if document has the ability to display - elements - fullscreen and fullscreen is supported, or false otherwise. +

Returns true if document has the ability to display elements fullscreen + and fullscreen is supported, or false otherwise.

document . {{Document/fullscreenElement}}

Returns document's fullscreen element.

promise = document . {{Document/exitFullscreen()}} -

Stops document's fullscreen element from being - displayed fullscreen and fulfills promise when done. +

Stops document's fullscreen element from being displayed fullscreen and + fulfills promise when done.

-

A fullscreen element ready check for an -element element -returns true if all of the following are true, and false otherwise: +

A fullscreen element ready check for an element element returns true +if all of the following are true, and false otherwise:

-

The requestFullscreen() -method, when invoked, must run these steps: +

The requestFullscreen() method, when invoked, must run +these steps:

  1. Let pending be the context object. @@ -254,230 +217,182 @@ method, when invoked, must run these steps:

    If any of the following conditions are true, set error to true:

    -
  2. Return promise, and run the remaining steps - in parallel. +

  3. Return promise, and run the remaining steps in parallel.

  4. If error is false: Resize pending's - top-level browsing context's - document's viewport's - dimensions to match the dimensions of the screen of the output device. Optionally display - a message how the end user can revert this. + top-level browsing context's document's viewport's dimensions to match the dimensions + of the screen of the output device. Optionally display a message how the end user can revert this.

  5. As part of the next animation frame task, run these substeps:

      -
    1. If either error is true or the - fullscreen element ready check for pending returns false, - fire an event named - fullscreenerror on pending's - node document, - reject promise with a TypeError exception, and terminate these - steps. +

    2. If either error is true or the fullscreen element ready check for + pending returns false, fire an event named fullscreenerror on + pending's node document, reject promise with a + TypeError exception, and terminate these steps. -

    3. Let fullscreenElements be an ordered set initially consisting - of pending. +

    4. Let fullscreenElements be an ordered set initially consisting of + pending.

    5. While the first element in fullscreenElements is in a - nested browsing context, prepend its - browsing context container to + nested browsing context, prepend its browsing context container to fullscreenElements.

    6. Let eventDocs be an empty list.

    7. -

      For each element in fullscreenElements, in order, - run these subsubsteps: +

      For each element in fullscreenElements, in order, run these + subsubsteps:

        -
      1. Let doc be element's - node document. +

      2. Let doc be element's node document.

      3. -

        If element is doc's - fullscreen element, terminate these subsubsteps. +

        If element is doc's fullscreen element, terminate these + subsubsteps.

        No need to notify observers when nothing has changed.

      4. Otherwise, append doc to eventDocs. -

      5. If element is pending and - pending is an <{iframe}> - element, set - element's iframe fullscreen flag. +

      6. If element is pending and pending is an <{iframe}> + element, set element's iframe fullscreen flag. -

      7. Fullscreen element - within doc. +

      8. Fullscreen element within doc.

      -
    8. For each doc in eventDocs, in order, - fire an event named +

    9. For each doc in eventDocs, in order, fire an event named fullscreenchange on doc.

    10. Fulfill promise with undefined.

    -

    Animation frame task is not really defined yet, including - relative order within that task, see - bug 26440. +

    Animation frame task is not really defined yet, including relative order + within that task, see bug 26440. -

    Implementations with out-of-process - browsing contexts are left - as an exercise to the reader. Input welcome on potential improvements. +

    Implementations with out-of-process browsing contexts are left as an exercise + to the reader. Input welcome on potential improvements.

-

The fullscreenEnabled -attribute's getter must return true if the context object is -allowed to use the feature indicated by -attribute name allowfullscreen and fullscreen is supported, -and false otherwise. +

The fullscreenEnabled attribute's getter must +return true if the context object is allowed to use the feature indicated by attribute +name allowfullscreen and fullscreen is supported, and false otherwise. -

The fullscreenElement -attribute's getter must return context object's -fullscreen element. +

The fullscreenElement attribute's getter must +return context object's fullscreen element. -

The fullscreen attribute's getter must -return false if context object's fullscreen element is null, and true -otherwise. +

The fullscreen attribute's getter must return +false if context object's fullscreen element is null, and true otherwise. -

Use document.fullscreenElement -instead. +

Use +document.fullscreenElement instead. -

To collect documents to unfullscreen given doc, -run these steps: +

To collect documents to unfullscreen given doc, run these steps:

    -
  1. If doc's top layer consists of more than a single - element that has its - fullscreen flag set, return the empty set. +

  2. If doc's top layer consists of more than a single element that has + its fullscreen flag set, return the empty set.

  3. Let docs be an ordered set consisting of doc. -

  4. While docs's last - document has a - browsing context container whose - node document's - top layer consists of a single - element that has its - fullscreen flag set and does not have its - iframe fullscreen flag set (if any), append that - node document to - docs. +

  5. While docs's last document has a browsing context container whose + node document's top layer consists of a single element that has its + fullscreen flag set and does not have its iframe fullscreen flag set (if any), append + that node document to docs.

  6. Return docs.

-

To exit fullscreen a document -doc, run these steps: +

To exit fullscreen a document doc, run these steps:

  1. Let promise be a new promise. -

  2. If doc's fullscreen element is null, reject - promise with a TypeError exception, and return - promise. +

  3. If doc's fullscreen element is null, reject promise with a + TypeError exception, and return promise.

  4. Let resize be false.

  5. Let docs be the result of - collecting documents to unfullscreen - given doc. + collecting documents to unfullscreen given + doc. -

  6. Let topLevelDoc be doc's - top-level browsing context's +

  7. Let topLevelDoc be doc's top-level browsing context's document. -

  8. If topLevelDoc is in docs, set - resize to true. +

  9. If topLevelDoc is in docs, set resize to true. -

  10. Return promise, and run the remaining steps - in parallel. +

  11. Return promise, and run the remaining steps in parallel. -

  12. If resize is true, resize topLevelDoc's viewport - to its "normal" dimensions. +

  13. If resize is true, resize topLevelDoc's viewport to its "normal" + dimensions.

  14. As part of the next animation frame task, run these substeps:

      +
    1. Let exitDocs be the result of - collecting documents to unfullscreen - given doc. + collecting documents to unfullscreen given + doc.

    2. If resize is true and topLevelDoc is not in exitDocs, fully exit fullscreen topLevelDoc, reject promise with a TypeError exception, and terminate these steps. -

    3. If exitDocs is the empty set, append doc to - exitDocs. +

    4. If exitDocs is the empty set, append doc to exitDocs. -

    5. If exitDocs's last - document has a - browsing context container, append that - browsing context container's - node document to - exitDocs. +

    6. If exitDocs's last document has a browsing context container, + append that browsing context container's node document to exitDocs. -

    7. Let descendantDocs be an ordered set consisting of - doc's - descendant browsing contexts' - documents whose - fullscreen element is non-null, if any, in reverse - tree order. +

    8. Let descendantDocs be an ordered set consisting of doc's + descendant browsing contexts' documents whose fullscreen element is + non-null, if any, in reverse tree order. -

    9. For each descendantDoc in descendantDocs, in - order, +

    10. For each descendantDoc in descendantDocs, in order, unfullscreen descendantDoc.

    11. For each exitDoc in exitDocs, in order, - unfullscreen exitDoc's - fullscreen element. + unfullscreen exitDoc's fullscreen element. -

    12. For each descendantDoc in descendantDocs, in - order, fire an event named - fullscreenchange on descendantDoc. +

    13. For each descendantDoc in descendantDocs, in order, + fire an event named fullscreenchange on descendantDoc. -

    14. For each exitDoc in exitDocs, in order, - fire an event named +

    15. For each exitDoc in exitDocs, in order, fire an event named fullscreenchange on exitDoc.

    16. Fulfill promise with undefined.

    -

    This results in events being fired from the innermost to the outermost - document. +

    This results in events being fired from the innermost to the outermost document.

-

The exitFullscreen() method, when -invoked, must return the result of running exit fullscreen on the -context object. +

The exitFullscreen() method, when invoked, must +return the result of running exit fullscreen on the context object.


-

The following are the event handlers (and their -corresponding -event handler event types) -that must be supported on -documents as attributes: +

The following are the event handlers (and their corresponding +event handler event types) that must be supported on documents as attributes: @@ -497,53 +412,42 @@ that must be supported on

UI

-

User agents are encouraged to implement native media fullscreen controls -in terms of -{{Element/requestFullscreen()}} and -{{Document/exitFullscreen()}}. +

User agents are encouraged to implement native media fullscreen controls in terms of +{{Element/requestFullscreen()}} and {{Document/exitFullscreen()}}. -

If the end user instructs the user agent to end a fullscreen session -initiated via -{{Element/requestFullscreen()}}, -fully exit fullscreen the -top-level browsing context's -document. +

If the end user instructs the user agent to end a fullscreen session initiated via +{{Element/requestFullscreen()}}, fully exit fullscreen the +top-level browsing context's document.

Rendering

-

This section is to be interpreted equivalently to the Rendering section -of HTML. [[!HTML]] +

This section is to be interpreted equivalently to the Rendering section of HTML. [[!HTML]] -

Long term CSS will define the top layer concept -and its associated ::backdrop -pseudo-element as part of CSS' stacking context model. Patching CSS as done -here is sketchy as hell. +

Long term CSS will define the top layer concept and its associated +::backdrop pseudo-element as part of CSS' stacking context model. Patching CSS +as done here is sketchy as hell.

New stacking layer

This specification introduces a new stacking layer to the -Elaborate description of Stacking Contexts -of CSS 2.1. It is called the top layer, comes after step 10 in -the painting order, and is therefore rendered closest to the user within a -viewport. Each document has one -associated viewport and therefore also one top layer. -[[!CSS]] +Elaborate description of Stacking Contexts of CSS +2.1. It is called the top layer, comes after step 10 in the painting order, and is +therefore rendered closest to the user within a viewport. Each document has one associated +viewport and therefore also one top layer. [[!CSS]] -

The terminology used in this and following subsection attempts -to match CSS 2.1 Appendix E. +

The terminology used in this and following subsection attempts to match CSS 2.1 +Appendix E. -

The top layer consists of an ordered set of elements, rendered in the -order they have been added to the set. The last element added is rendered closest to the -user. +

The top layer consists of an ordered set of elements, rendered in the order they have been +added to the set. The last element added is rendered closest to the user. -

The z-index property has no effect in the -top layer. +

The z-index property has no effect in the top layer. -

Each element and ::backdrop pseudo-element in a -top layer has the following characteristics: +

Each element and ::backdrop pseudo-element in a top layer has the +following characteristics:

  • It generates a new stacking context. @@ -554,32 +458,28 @@ user.

  • -

    It is rendered as an atomic unit as if it were a sibling of its - root. +

    It is rendered as an atomic unit as if it were a sibling of its root. -

    Ancestor elements with - overflow, opacity, masks, etc. cannot affect it. +

    Ancestor elements with overflow, opacity, masks, etc. cannot affect + it. -

  • If its position property computes to fixed, - its containing block is the viewport, and the initial containing block otherwise. +

  • If its position property computes to fixed, its containing block + is the viewport, and the initial containing block otherwise. -

  • If it is an element, it and its ::backdrop - pseudo-element are not rendered if its - inclusive ancestor has the - display property set to none. +

  • If it is an element, it and its ::backdrop pseudo-element are not + rendered if its inclusive ancestor has the display property set to + none. -

  • If its specified display property is contents, it - computes to block. +

  • If its specified display property is contents, it computes to + block.

  • If its specified position property is not absolute or fixed, it computes to absolute. -

  • Its outline, if any, is to be rendered before step 10 in the - painting order. +

  • Its outline, if any, is to be rendered before step 10 in the painting order. -

  • Unless overridden by another specification, its static position for - left, right, and - top is zero. +

  • Unless overridden by another specification, its static position for left, + right, and top is zero.

To add an element to a @@ -592,40 +492,32 @@ user.

::backdrop pseudo-element

-

Each element in a top layer has a -::backdrop pseudo-element. -This pseudo-element is a box rendered immediately below the element (and -above the element before the element in the set, if any), within the same -top layer. +

Each element in a top layer has a ::backdrop +pseudo-element. This pseudo-element is a box rendered immediately below the element (and above the +element before the element in the set, if any), within the same top layer. -

The ::backdrop pseudo-element can be used -to create a backdrop that hides the underlying document for an element in a -top layer (such as an element that is displayed fullscreen). +

The ::backdrop pseudo-element can be used to create a backdrop +that hides the underlying document for an element in a top layer (such as an element that is +displayed fullscreen). -

It does not inherit from any element and is not -inherited from. No restrictions are made on what properties apply to this -pseudo-element either. +

It does not inherit from any element and is not inherited from. No restrictions are made on what +properties apply to this pseudo-element either. - +

:fullscreen pseudo-class

-

The :fullscreen -pseudo-class must match any -element that has its -fullscreen flag set. +

The :fullscreen pseudo-class must match any +element that has its fullscreen flag set. -

This makes it different from the -{{Document/fullscreenElement}} API, which returns a -document's -fullscreen element. +

This makes it different from the {{Document/fullscreenElement}} API, +which returns a document's fullscreen element.

User-agent level style sheet defaults

- +
 @namespace "http://www.w3.org/1999/xhtml";
@@ -666,19 +558,15 @@ iframe:fullscreen {
 
 

Security and Privacy Considerations

-

User agents should ensure, e.g. by means of an overlay, that the end user -is aware something is displayed fullscreen. User agents should provide a -means of exiting fullscreen that always works and advertise this to the -user. This is to prevent a site from spoofing the end user by recreating the -user agent or even operating system environment when fullscreen. See also -the definition of +

User agents should ensure, e.g. by means of an overlay, that the end user is aware something is +displayed fullscreen. User agents should provide a means of exiting fullscreen that always works and +advertise this to the user. This is to prevent a site from spoofing the end user by recreating the +user agent or even operating system environment when fullscreen. See also the definition of {{Element/requestFullscreen()}}. -

To enable content in a -nested browsing context to go fullscreen, -it needs to be specifically allowed via the allowfullscreen -attribute of the HTML <{iframe}> element. This prevents e.g. -content from third parties to go fullscreen without explicit permission. +

To enable content in a nested browsing context to go fullscreen, it needs to be +specifically allowed via the allowfullscreen attribute of the HTML <{iframe}> element. +This prevents e.g. content from third parties to go fullscreen without explicit permission. @@ -719,15 +607,13 @@ Vincent Scheib, and Xidorn Quan for also being awesome. -

This standard is written by -Anne van Kesteren +

This standard is written by Anne van Kesteren (Mozilla, annevk@annevk.nl). Tantek Çelik (Mozilla, -tantek@cs.stanford.edu) sorted out legal -hassles. +tantek@cs.stanford.edu) sorted out legal hassles. -

Per CC0, to -the extent possible under law, the editor has waived all copyright and related or -neighboring rights to this work. +

Per CC0, to the extent +possible under law, the editor has waived all copyright and related or neighboring rights to this +work. diff --git a/fullscreen.html b/fullscreen.html index 84d8b91..b10390a 100644 --- a/fullscreen.html +++ b/fullscreen.html @@ -118,42 +118,34 @@

Table of Contents

1. Conformance

-

All diagrams, examples, and notes in this specification are -non-normative, as are all sections explicitly marked non-normative. -Everything else in this specification is normative.

-

The key words "MUST", "MUST NOT", "REQUIRED", - "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and -"OPTIONAL" in the normative parts of this specification are to be -interpreted as described in RFC2119. For readability, these words do -not appear in all uppercase letters in this specification. [RFC2119]

+

All diagrams, examples, and notes in this specification are non-normative, as are all sections +explicitly marked non-normative. Everything else in this specification is normative.

+

The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD +NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative parts of this specification are to be +interpreted as described in RFC2119. For readability, these words do not appear in all uppercase +letters in this specification. [RFC2119]

2. Terminology

-

Most terminology used in this specification is from CSS, DOM, HTML, and -Web IDL. [CSS] [DOM] [HTML] [WEBIDL]

-

The term context object means the object on which the method -or attribute being discussed was called. When the context object is unambiguous, the term can be omitted.

-

A browsing context A is called a descendant browsing context of a browsing context B if -and only if B is an ancestor browsing context of A.

+

Most terminology used in this specification is from CSS, DOM, HTML, and Web IDL. [CSS] [DOM] [HTML] [WEBIDL]

+

The term context object means the object on which the method or attribute being +discussed was called. When the context object is unambiguous, the term can be omitted.

+

A browsing context A is called a descendant browsing context of a browsing context B if and only if B is an ancestor browsing context of A.

3. Model

-

All elements have an associated fullscreen flag. Unless stated otherwise it is unset.

-

All iframe elements have an associated iframe fullscreen flag. Unless stated otherwise it is unset.

-

All documents have an associated fullscreen element. The fullscreen element is -the topmost element in the document’s top layer whose fullscreen flag is set, if any, and null otherwise.

-

To fullscreen an element within a document, set -the element’s fullscreen flag and add it to document’s top layer.

-

To unfullscreen an element within a document, -unset the element’s fullscreen flag and iframe fullscreen flag (if any), and remove it from document’s top layer.

-

To unfullscreen a document, unfullscreen all elements, within document’s top layer, whose fullscreen flag is -set.

+

All elements have an associated fullscreen flag. Unless stated otherwise it is +unset.

+

All iframe elements have an associated iframe fullscreen flag. Unless +stated otherwise it is unset.

+

All documents have an associated fullscreen element. The fullscreen element is the topmost element in the document’s top layer whose fullscreen flag is set, if any, and null otherwise.

+

To fullscreen an element within a document, set the element’s fullscreen flag and add it to document’s top layer.

+

To unfullscreen an element within a document, unset the element’s fullscreen flag and iframe fullscreen flag (if any), and remove it from document’s top layer.

+

To unfullscreen a document, unfullscreen all elements, within document’s top layer, whose fullscreen flag is set.


-

To fully exit fullscreen a document document, run these -steps:

+

To fully exit fullscreen a document document, run these steps:

  1. -

    If document’s fullscreen element is null, terminate these - steps.

    +

    If document’s fullscreen element is null, terminate these steps.

  2. -

    Unfullscreen elements whose fullscreen flag is set, within document’s top layer, except - for document’s fullscreen element.

    +

    Unfullscreen elements whose fullscreen flag is + set, within document’s top layer, except for document’s fullscreen element.

  3. Exit fullscreen document.

@@ -167,14 +159,13 @@

3.

If node is its node document’s fullscreen element, exit fullscreen that document.

  • -

    Otherwise, unfullscreen node within - its node document.

    +

    Otherwise, unfullscreen node within its node document.

    Whenever the unloading document cleanup steps run with a document, fully exit fullscreen document.


    -

    Fullscreen is supported if there is no previously-established user -preference, security risk, or platform limitation.

    +

    Fullscreen is supported if there is no previously-established user preference, +security risk, or platform limitation.

    An algorithm is allowed to request fullscreen if one of the following is true:

  • @@ -378,28 +366,24 @@

    4. fullscreenerror

    5. UI

    -

    User agents are encouraged to implement native media fullscreen controls -in terms of requestFullscreen() and exitFullscreen().

    -

    If the end user instructs the user agent to end a fullscreen session -initiated via requestFullscreen(), fully exit fullscreen the top-level browsing context’s document.

    +

    User agents are encouraged to implement native media fullscreen controls in terms of requestFullscreen() and exitFullscreen().

    +

    If the end user instructs the user agent to end a fullscreen session initiated via requestFullscreen(), fully exit fullscreen the top-level browsing context’s document.

    6. Rendering

    -

    This section is to be interpreted equivalently to the Rendering section -of HTML. [HTML]

    -

    Long term CSS will define the top layer concept -and its associated ::backdrop pseudo-element as part of CSS' stacking context model. Patching CSS as done -here is sketchy as hell.

    +

    This section is to be interpreted equivalently to the Rendering section of HTML. [HTML]

    +

    Long term CSS will define the top layer concept and its associated ::backdrop pseudo-element as part of CSS' stacking context model. Patching CSS +as done here is sketchy as hell.

    6.1. New stacking layer

    -

    This specification introduces a new stacking layer to the Elaborate description of Stacking Contexts of CSS 2.1. It is called the top layer, comes after step 10 in -the painting order, and is therefore rendered closest to the user within a -viewport. Each document has one -associated viewport and therefore also one top layer. [CSS]

    -

    The terminology used in this and following subsection attempts -to match CSS 2.1 Appendix E.

    -

    The top layer consists of an ordered set of elements, rendered in the -order they have been added to the set. The last element added is rendered closest to the -user.

    +

    This specification introduces a new stacking layer to the Elaborate description of Stacking Contexts of CSS +2.1. It is called the top layer, comes after step 10 in the painting order, and is +therefore rendered closest to the user within a viewport. Each document has one associated +viewport and therefore also one top layer. [CSS]

    +

    The terminology used in this and following subsection attempts to match CSS 2.1 +Appendix E.

    +

    The top layer consists of an ordered set of elements, rendered in the order they have been +added to the set. The last element added is rendered closest to the user.

    The z-index property has no effect in the top layer.

    -

    Each element and ::backdrop pseudo-element in a top layer has the following characteristics:

    +

    Each element and ::backdrop pseudo-element in a top layer has the +following characteristics:

    To add an element to a top layer, add, or move if already present, element on top of top layer.

    To remove an element from a top layer, remove element from top layer.

    6.2. ::backdrop pseudo-element

    -

    Each element in a top layer has a ::backdrop pseudo-element. -This pseudo-element is a box rendered immediately below the element (and -above the element before the element in the set, if any), within the same top layer.

    -

    The ::backdrop pseudo-element can be used -to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen).

    -

    It does not inherit from any element and is not -inherited from. No restrictions are made on what properties apply to this -pseudo-element either.

    +

    Each element in a top layer has a ::backdrop pseudo-element. This pseudo-element is a box rendered immediately below the element (and above the +element before the element in the set, if any), within the same top layer.

    +

    The ::backdrop pseudo-element can be used to create a backdrop +that hides the underlying document for an element in a top layer (such as an element that is +displayed fullscreen).

    +

    It does not inherit from any element and is not inherited from. No restrictions are made on what +properties apply to this pseudo-element either.

    6.3. :fullscreen pseudo-class

    The :fullscreen pseudo-class must match any element that has its fullscreen flag set.

    -

    This makes it different from the fullscreenElement API, which returns a document’s fullscreen element.

    +

    This makes it different from the fullscreenElement API, +which returns a document’s fullscreen element.

    6.4. User-agent level style sheet defaults

    @namespace "http://www.w3.org/1999/xhtml";
     
    @@ -476,15 +459,13 @@ 

    7. Security and Privacy Considerations

    -

    User agents should ensure, e.g. by means of an overlay, that the end user -is aware something is displayed fullscreen. User agents should provide a -means of exiting fullscreen that always works and advertise this to the -user. This is to prevent a site from spoofing the end user by recreating the -user agent or even operating system environment when fullscreen. See also -the definition of requestFullscreen().

    -

    To enable content in a nested browsing context to go fullscreen, -it needs to be specifically allowed via the allowfullscreen attribute of the HTML iframe element. This prevents e.g. -content from third parties to go fullscreen without explicit permission.

    +

    User agents should ensure, e.g. by means of an overlay, that the end user is aware something is +displayed fullscreen. User agents should provide a means of exiting fullscreen that always works and +advertise this to the user. This is to prevent a site from spoofing the end user by recreating the +user agent or even operating system environment when fullscreen. See also the definition of requestFullscreen().

    +

    To enable content in a nested browsing context to go fullscreen, it needs to be +specifically allowed via the allowfullscreen attribute of the HTML iframe element. +This prevents e.g. content from third parties to go fullscreen without explicit permission.

    References

    Normative References

    @@ -533,9 +514,8 @@

    Ac Vincent Scheib, and Xidorn Quan for also being awesome.

    -

    This standard is written by Anne van Kesteren (Mozilla, annevk@annevk.nl). Tantek Çelik (Mozilla, tantek@cs.stanford.edu) sorted out legal -hassles.

    -

    Per CC0, to -the extent possible under law, the editor has waived all copyright and related or -neighboring rights to this work.

    +

    This standard is written by Anne van Kesteren (Mozilla, annevk@annevk.nl). Tantek Çelik (Mozilla, tantek@cs.stanford.edu) sorted out legal hassles.

    +

    Per CC0, to the extent +possible under law, the editor has waived all copyright and related or neighboring rights to this +work.

    \ No newline at end of file