|
Sync requestFullscreen() and exitFullscreen() algorithms with the spec
The central change is the timing for when the fullscreen element stack
is modified and when the events fire. This makes it possible to make
webkitCurrentFullScreenElement an alias of fullscreenElement, as the old
notion of a single fullscreen element is gone.
Previously, fullscreen requests did:
1. In Fullscreen::requestFullscreen(), synchronously modify
m_fullscreenElementStack, visible in document.fullscreenElement, but
not document.webkitCurrentFullScreenElement. Also enqueue events to
fire, without starting the timer to fire them.
2. As soon as the resize happens, in Fullscreen::didEnterFullscreen(),
set m_currentFullScreenElement, affecting :-webkit-full-screen
document.webkitCurrentFullScreenElement. Start the event timer.
3. When the timer fires, events are dispatched. If the tree has changed
since the events were enqueued, additional events may be fired.
And similarly for exit. For errors, requestFullscreen() would itself
start the timer to fire the events.
Now, fullscreen requests will:
1. In Fullscreen::requestFullscreen(), append to a list of pending
requests.
2. When the resize happens, enqueue an animation frame task for each
pending request.
3. In the animation frame task, apply all changes, decide which events
to fire and then fire them.
TEST=run-webkit-tests fullscreen/ imported/wpt/fullscreen/
webkit_unit_tests --gtest_filter=*Fullscreen*
interactive_ui_tests --gtest_filter=SitePerProcessInteractiveBrowserTest.Fullscreen*
BUG= 402376, 402421
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/e1d42d636990425056ede44086ef49a1f8c6a0a5
Cr-Commit-Position: refs/heads/master@{#439607}
Total comments: 48
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+729 lines, -887 lines) |
Patch |
|
M |
third_party/WebKit/LayoutTests/TestExpectations
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html
|
View
|
1
|
1 chunk |
+0 lines, -34 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
|
View
|
|
2 chunks |
+16 lines, -11 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html
|
View
|
|
1 chunk |
+0 lines, -36 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html
|
View
|
1
|
1 chunk |
+0 lines, -27 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html
|
View
|
1
|
1 chunk |
+0 lines, -29 lines |
0 comments
|
Download
|
|
A |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-prefixed.html
|
View
|
|
1 chunk |
+28 lines, -0 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html
|
View
|
1
|
1 chunk |
+0 lines, -24 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html
|
View
|
1
|
1 chunk |
+0 lines, -28 lines |
0 comments
|
Download
|
|
A |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-prefixed.html
|
View
|
|
1 chunk |
+23 lines, -0 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html
|
View
|
1
|
1 chunk |
+0 lines, -29 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html
|
View
|
|
1 chunk |
+7 lines, -7 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover.html
|
View
|
|
1 chunk |
+23 lines, -15 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover-expected.txt
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition.html
|
View
|
|
1 chunk |
+0 lines, -40 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition-expected.txt
|
View
|
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/fullscreen/full-screen-stacking-context.html
|
View
|
|
1 chunk |
+3 lines, -1 line |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual.html
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-timing-manual-expected.txt
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
D |
third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/css/CSSDefaultStyleSheets.cpp
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/DocumentFullscreen.h
|
View
|
|
1 chunk |
+0 lines, -3 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/DocumentFullscreen.cpp
|
View
|
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/DocumentFullscreen.idl
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/Element.cpp
|
View
|
1
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/Fullscreen.h
|
View
|
1
2
|
6 chunks |
+33 lines, -51 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/Fullscreen.cpp
|
View
|
1
2
|
8 chunks |
+486 lines, -411 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/dom/LayoutTreeBuilder.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/html/shadow/MediaControlsOrientationLockDelegateTest.cpp
|
View
|
1
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/layout/LayoutInline.cpp
|
View
|
|
1 chunk |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
View
|
1
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/core/page/ChromeClient.h
|
View
|
1
2
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/modules/vr/VRDisplay.cpp
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/ChromeClientImpl.h
|
View
|
1
2
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/FullscreenController.h
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/FullscreenController.cpp
|
View
|
|
4 chunks |
+24 lines, -22 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
|
View
|
|
1 chunk |
+10 lines, -13 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/WebViewImpl.h
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/tests/WebFrameTest.cpp
|
View
|
1
|
16 chunks |
+41 lines, -38 lines |
0 comments
|
Download
|
|
M |
third_party/WebKit/Source/web/tests/WebViewTest.cpp
|
View
|
1
|
7 chunks |
+10 lines, -1 line |
0 comments
|
Download
|
Total messages: 34 (15 generated)
|