[Bug 26676] New: Non-fullscreen documents can end up with non-empty fullscreen element stacks

https://www.w3.org/Bugs/Public/show_bug.cgi?id=26676

            Bug ID: 26676
           Summary: Non-fullscreen documents can end up with non-empty
                    fullscreen element stacks
           Product: WebAppsWG
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Fullscreen
          Assignee: annevk@annevk.nl
          Reporter: philipj@opera.com
        QA Contact: public-webapps-bugzilla@w3.org
                CC: mike@w3.org, public-webapps@w3.org

Splitting this from https://www.w3.org/Bugs/Public/show_bug.cgi?id=26673#c0 as
I don't think the root problem is tied to topDoc.

The problem is that it's possible to end up with a document with a non-empty
fullscreen element stack that is no longer displayed in fullscreen. The easiest
way to do it currently is to remove or move an iframe which has fullscreen
elements in it. exitFullscreen() will be invoked on the document that contained
the iframe element, but the iframe's document won't be in descendantDocs later.

One fix would be to check if oldNode is an iframe, and if so also invoke
exitDocument() on iframe.contentDocument.

Another fix would be to change how descendantDocs is populated to instead
follow iframe elements in the fullscreen element stack, regardless of how where
those iframes are now.

Either fix can still leave you with an untruthful document.fullscreen while
waiting for the next animation frame. I'm not sure that's a problem or not.

Since node removal is the only way to (temporarily) end up with an inconsistent
fullscreen element stack, it's also worth considering instead modifying the
fullscreen element stack synchronously (and recursively) upon node removal. But
that may have other consequences.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Received on Tuesday, 26 August 2014 21:49:26 UTC