Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1162)

Issue 2654083006: Revert of Sync requestFullscreen() and exitFullscreen() algorithms with the spec (Closed)

Created:
3 years, 11 months ago by foolip
Modified:
3 years, 10 months ago
CC:
darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-animation_chromium.org, blink-reviews-css, blink-reviews-dom_chromium.org, blink-reviews-html_chromium.org, blink-reviews-layout_chromium.org, blink-reviews-style_chromium.org, blink-reviews-w3ctests_chromium.org, chromium-reviews, dcheng, dglazkov+blink, eae+blinkwatch, eric.carlson_apple.com, Eric Willigers, feature-media-reviews_chromium.org, feature-vr-reviews_chromium.org, fs, gasubic, haraken, jchaffraix+rendering, kinuko+watch, leviw+renderwatch, mlamouri+watch-blink_chromium.org, pdr+renderingwatchlist_chromium.org, rjwright, rwlbuis, shans, sof, nessy, Srirama, szager+layoutwatch_chromium.org, tfarina, vcarbune.chromium, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Revert of Sync requestFullscreen() and exitFullscreen() algorithms with the spec (patchset #3 id:40001 of https://codereview.chromium.org/2573773002/ ) Reason for revert: Delaying fullscreen element stack changes until the animation frame after resize, and thus after resize-triggered scroll events, caused a regression with twitter video embeds that may require spec changes to fix: https://github.com/whatwg/fullscreen/issues/74 BUG=680467 Original issue's description: > 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} TBR=mlamouri@chromium.org,alexmos@chromium.org,eae@chromium.org,esprehn@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=402376, 402421 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2654083006 Cr-Commit-Position: refs/heads/master@{#446643} Committed: https://chromium.googlesource.com/chromium/src/+/675e4f2fe55c349ac3ba67405c15c36ec7419cb6

Patch Set 1 #

Patch Set 2 : adapt to changes since original CL #

Patch Set 3 : back out accidental change #

Patch Set 4 : add failing test expectations #

Unified diffs Side-by-side diffs Delta from patch set Stats (+937 lines, -728 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html View 1 chunk +34 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html View 1 2 chunks +11 lines, -16 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html View 1 chunk +36 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html View 1 chunk +27 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html View 1 chunk +29 lines, -0 lines 0 comments Download
D third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-prefixed.html View 1 chunk +0 lines, -28 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html View 1 chunk +24 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html View 1 chunk +28 lines, -0 lines 0 comments Download
D third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-prefixed.html View 1 chunk +0 lines, -23 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html View 1 chunk +29 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html View 1 1 chunk +7 lines, -7 lines 0 comments Download
M third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover.html View 1 1 chunk +15 lines, -23 lines 0 comments Download
M third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover-expected.txt View 1 1 chunk +0 lines, -2 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition.html View 1 chunk +40 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition-expected.txt View 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/fullscreen/full-screen-stacking-context.html View 1 chunk +1 line, -3 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt View 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSDefaultStyleSheets.cpp View 1 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/SelectorChecker.cpp View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/dom/DocumentFullscreen.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DocumentFullscreen.cpp View 1 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/dom/DocumentFullscreen.idl View 1 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 6 chunks +51 lines, -33 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Fullscreen.cpp View 1 2 9 chunks +434 lines, -487 lines 0 comments Download
M third_party/WebKit/Source/core/dom/LayoutTreeBuilder.cpp View 1 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 1 chunk +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp View 1 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/page/ChromeClient.h View 1 1 chunk +1 line, -2 lines 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 1 chunk +1 line, -2 lines 0 comments Download
M third_party/WebKit/Source/web/FullscreenController.h View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/web/FullscreenController.cpp View 1 4 chunks +22 lines, -24 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 1 chunk +13 lines, -10 lines 0 comments Download
M third_party/WebKit/Source/web/WebViewImpl.h View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/web/tests/WebFrameTest.cpp View 1 16 chunks +38 lines, -41 lines 0 comments Download
M third_party/WebKit/Source/web/tests/WebViewTest.cpp View 1 7 chunks +1 line, -10 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 23 (15 generated)
foolip
Created Revert of Sync requestFullscreen() and exitFullscreen() algorithms with the spec
3 years, 11 months ago (2017-01-26 18:44:12 UTC) #1
eae
LGTM
3 years, 11 months ago (2017-01-26 18:45:12 UTC) #3
foolip
wangxianzhu@, this is just a revert, but I had to change your code from https://codereview.chromium.org/2599573002 ...
3 years, 11 months ago (2017-01-26 19:33:13 UTC) #9
Xianzhu
On 2017/01/26 19:33:13, foolip_UTC7 wrote: > wangxianzhu@, this is just a revert, but I had ...
3 years, 11 months ago (2017-01-26 19:48:56 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2654083006/340001
3 years, 10 months ago (2017-01-27 06:27:51 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/379476)
3 years, 10 months ago (2017-01-27 09:36:56 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2654083006/340001
3 years, 10 months ago (2017-01-27 09:46:55 UTC) #20
commit-bot: I haz the power
3 years, 10 months ago (2017-01-27 11:06:13 UTC) #23
Message was sent while issue was closed.
Committed patchset #4 (id:340001) as
https://chromium.googlesource.com/chromium/src/+/675e4f2fe55c349ac3ba67405c15...

Powered by Google App Engine
This is Rietveld 408576698