diff --git a/fullscreen.bs b/fullscreen.bs index 70c585f..0cf2fca 100644 --- a/fullscreen.bs +++ b/fullscreen.bs @@ -110,8 +110,8 @@ and add it to its node document's top layer.
Whenever the removing steps run with an oldNode, run these steps:
Let nodes be oldNode's inclusive descendants that have their - fullscreen flag set, in tree order. +
Let nodes be oldNode's shadow-including inclusive descendants + that have their fullscreen flag set, in shadow-including tree order.
For each node in nodes, run these substeps: @@ -153,7 +153,6 @@ partial interface Element { partial interface Document { [LenientSetter] readonly attribute boolean fullscreenEnabled; - [LenientSetter] readonly attribute Element? fullscreenElement; [LenientSetter] readonly attribute boolean fullscreen; // historical Promise<void> exitFullscreen(); @@ -161,6 +160,10 @@ partial interface Document { attribute EventHandler onfullscreenchange; attribute EventHandler onfullscreenerror; }; + +partial interface DocumentOrShadowRoot { + [LenientSetter] readonly attribute Element? fullscreenElement; +};
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. + +
document . {{DocumentOrShadowRoot/fullscreenElement}}
+ Returns document's fullscreen element. + +
shadowroot . {{DocumentOrShadowRoot/fullscreenElement}}
+ Returns shadowroot's fullscreen element.
A fullscreen element ready check for an element element returns true
@@ -190,7 +196,7 @@ if all of the following are true, and false otherwise:
MathML math
element. [[!SVG]] [[!MATHML]]
-
element is in a document. +
element is connected.
element's node document is allowed to use the feature indicated by
attribute name allowfullscreen
.
@@ -283,14 +289,21 @@ these steps:
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 fullscreen
attribute's getter must return
false if context object's fullscreen element is null, and true otherwise.
-
Use
-document.fullscreenElement
instead.
+
Use {{DocumentOrShadowRoot/fullscreenElement}} instead. + +
The
+fullscreenElement
+attribute's getter must run the following steps and return the result accordingly.
+
To collect documents to unfullscreen given doc, run these steps: @@ -461,8 +474,8 @@ following characteristics: 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
.
+ rendered if its shadow-including inclusive ancestor has the display
property
+ set to none
.
If its specified display
property is contents
, it computes to
block
.
@@ -505,9 +518,15 @@ properties apply to this pseudo-element either.
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 fullscreenElement API, which returns +returns the topmost fullscreen element.. + +For each node tree, if the result of retargeting its shadow-including root's +fullscreen element against the root of the node tree is not null and +the result is in the same tree, :fullscreen pseudo-class must match the result. +
In other words, :fullscreen matches all the non-null results of +{{DocumentOrShadowRoot/fullscreenElement}} API for each node tree.
Let nodes be oldNode’s inclusive descendants that have their fullscreen flag set, in tree order.
+Let nodes be oldNode’s shadow-including inclusive descendants that have their fullscreen flag set, in shadow-including tree order.
For each node in nodes, run these substeps:
promise = element . requestFullscreen()
@@ -197,13 +200,16 @@ Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise.
-document . fullscreenElement
- Returns document’s fullscreen element.
promise = document . exitFullscreen()
Stops document’s fullscreen element from being displayed fullscreen and fulfills promise when done.
+document . fullscreenElement
+ Returns document’s fullscreen element.
+shadowroot . fullscreenElement
+ Returns shadowroot’s fullscreen element.
A fullscreen element ready check for an element element returns true if all of the following are true, and false otherwise:
@@ -211,7 +217,7 @@element’s namespace is the HTML namespace or element is an SVG svg
or MathML math
element. [SVG] [MATHML]
element is in a document.
+element is connected.
element’s node document is allowed to use the feature indicated by
attribute name allowfullscreen
.
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 fullscreen
attribute’s getter must return
false if context object’s fullscreen element is null, and true otherwise.
Use document.fullscreenElement
instead.
Use fullscreenElement
instead.
The fullscreenElement
attribute’s getter must run the following steps and return the result accordingly.
To collect documents to unfullscreen given doc, run these steps:
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
.
display
property
+ set to none
.
If its specified display
property is contents
, it computes to block
.
:fullscreen
pseudo-classThe :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 +returns the topmost fullscreen element..
+For each node tree, if the result of retargeting its shadow-including root’s fullscreen element against the root of the node tree is not null and +the result is in the same tree, :fullscreen pseudo-class must match the result.
+In other words, :fullscreen matches all the non-null results of fullscreenElement
API for each node tree.
@namespace "http://www.w3.org/1999/xhtml"; @@ -483,7 +498,7 @@N
- [SVG]
- Jon Ferraiolo. Scalable Vector Graphics (SVG) 1.0 Specification. 4 September 2001. REC. URL: https://www.w3.org/TR/SVG/
- [WEBIDL] -
- Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 8 March 2016. CR. URL: https://heycam.github.io/webidl/ +
- Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 15 September 2016. PR. URL: https://heycam.github.io/webidl/