FullscreenController is currently owned by WebViewImpl in the renderer process, and in an out-of-process iframes scenario there will be multiple of them. Despite this, each tries to manage the global state of whether we're in fullscreen or trying to transition.
This is quite confusing. A more straightforward model would be if the renderer always sent the fullscreen request to the browser, and did not itself know about the current state beyond the fullscreen elements on documents.
Context: https://codereview.chromium.org/2573773002/diff/1/third_party/WebKit/Source/web/FullscreenController.cpp
Comment 1 by sheriffbot@chromium.org
, Feb 16 2018Status: Untriaged (was: Available)