It seems to me that "being fullscreen" is a property of the top-level browsing context. All that is potentially associated with a document is the "fullscreen element". If you have a document A with two sub-documents B and C, it does not make much sense to me that if you go fullscreen from B, C would not report as "being fullscreen". I mean sure, there is no "fullscreen element" but it is definitely rendered fullscreen.

As the proposed spec is written so far, I think Document.fullscreen is meant to convey that:

 1. If the document's full-screen element is in the document, the
    full-screen element is rendered at viewport dimensions with browser
    UI hidden, or
 2. if the document's full-screen element is not in the document, the
    document is rendered at viewport dimensions.


Does it make any sense to say there is a fullscreen "element" ? Documents are fullscreen, elements wrap some content and add structure.

How can 1. be achieved in a predictable non-magic manner ? If you have a video element with a custom UI, the custom UI, which will be nothing more than some elements, needs to stretch, and then if you use javascript to query layout information, that needs to be visible.

So, the only thing that the user agent should do (which they do now already) is to remove the browser chrome.

The webpage can then with a fragment if css stretch whatever needs stretching.

# .my-fullscreen-video.container { position:fixed;z-index:999;left:0;top:0;width:100%;height:100% }

Or do something even more complex. So, the user agent should not do any kind of implicit resizing of elements.

The key is the :full-screen psuedo-class, for which the suggested UA style rules enables the full-screen element appear to "break out" of containing frames and be rendered at the view-port size (assuming the browser window is made viewport dimensions by the UA).

The :full-screen pseudo-class is defined to also apply to "an <iframe>, <object> or <embed> element whose child browsing context's Document is in the full-screen state". So if a child document in an iframe doesn't have its full-screen element in the document, unless the document reports being in full-screen state the :full-screen pseudo-class won't apply to that document, and that document thus won't be rendered at viewport dimensions.

If we specified a Document.currentFullScreenElement attribute, then Document.fullScreen would be equivalent to (Document.currentFullScreenElement != null).


Why the need for a :full-screen selector ? Aren't media queries enough or even more semantically correct ?

And then why the need for document.fullScreen ? The media query API that Anne was writing should work too to query if fullscreen is enabled. [1]

# var in_fullscreen = matchMedia("(fullscreen:on)").matches

If the use cases can be cleanly represented using just CSS and generic APIs, then better,

[1] http://dev.w3.org/csswg/cssom-view/#the-mediaquerylist-interface


Lastly, where is the specification ? If there an official working draft ?

Reply via email to