New issue
Advanced search Search tips

Issue 680467 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression

Blocking:
issue 402376



Sign in to add a comment

Twitter iframe with video is removed when entering fullscreen, page is left in fullscreen

Project Member Reported by krajshree@chromium.org, Jan 12 2017

Issue description

Chrome Version: 57.0.2979.0
OS: Win-7, Ubuntu 14.04, Mac 10.12.2

What steps will reproduce the problem?
(1)Navigate to Twitter.com
(2)Scroll down to find a video of Star sports #JollyLLB2
(3)Click on the video to play.
(4)Click on the full screen button on extreme right.

What is the expected result?
The video should play in full screen mode.

What happens instead?
The video stops playing in full screen mode, but the twitter page remains in full screen.

Attaching screen casts for reference.


Providing the Bisect information which is as follows:

Bisect Information:
=====================
Good Build: 57.0.2956.0	 Revision(439388)

Bad Build : 57.0.2957.0	 Revision(439663)

Change Log URL: 
https://chromium.googlesource.com/chromium/src/+log/c689031affc2246cb94c98a707d5ab7c7b737993..e1d42d636990425056ede44086ef49a1f8c6a0a5

From the above change log suspecting below change

Review url: https://codereview.chromium.org/2573773002


foolip@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner.

Adding stable blocker as this is a recent regression, please feel free to remove if required.

Thanks...!!
 
Expected_result_Video.ogv
11.2 MB View Download
Actual_Result_Video.ogv
16.1 MB Download
Cc: ligim...@chromium.org
Labels: -ReleaseBlock-Stable ReleaseBlock-Beta
Updating it to Releaseblock-Beta as its a recent regression.
Feel free to modify if not appropriate.

Comment 2 by ajha@chromium.org, Jan 13 2017

Cc: mlamouri@chromium.org alex...@chromium.org
Cc'ing the reviewers of the CL as well for more inputs on this.

Comment 3 by ajha@chromium.org, Jan 16 2017

 Issue 680940  has been merged into this issue.

Comment 4 by ajha@chromium.org, Jan 16 2017

Can we get an update on this issue as this is marked as Beta blocker. M-57 gets branched in few days from now and would be good to have this fixed before branch point. 
I have the same issue in a local application of I've developed. The video will not get the full width and height of the viewport. Also other elements on the page will not be hidden. And on top, the other elements all get a static positioning, which makes the entire application to crash. I can even reproduce this in Chrome 49.

Comment 6 by ajha@chromium.org, Jan 18 2017

Just to update, M-57 gets branched tomorrow and would probably go to Beta during 1st week of Feb.

Please adjust or update the blocker accordingly.

Comment 7 by foolip@chromium.org, Jan 18 2017

I am working on a Fullscreen regression for M-56, but will get to this as soon as I can, but quite likely not before the branch point this Friday.
Labels: Needs-triage-Mobile

Comment 9 by gov...@chromium.org, Jan 23 2017


A friendly reminder that M57 Beta launch is coming soon on February 2nd! Your bug is labelled as Beta ReleaseBlock, pls make sure to land the fix and get it merged into the release branch (2987) ASAP so it gets enough baking time in Dev (before Beta promotion). Thank you!
Ack #9, the M-56 regressions mentioned in #7 are now basically under control (although fixes not landed) so I take a look this week and revert if it's too involved.

Comment 11 by ajha@chromium.org, Jan 24 2017

Just to update the behavior of this issue on Clank devices.

1. Samsung Galaxy J7 Handset,Android 6.0.1 SM-J700F Build/MMB29k.
==================================================================
>57.0.2979.3(no 57.0.2979.0 on Android): Browser crash is seen, navigating to twitter.com on the reported version Crash id: 8a6fc3e580000000.

>57.0.2987.8: This worked fine on most of the twitter videos as the URL redirects to https://mobile.twitter.com.
              Issue is seen on twitter videos when 'Request desktop site' is checked under Wrench menu.

2. Nexus 7 Tablet, Android 5.0.2 Nexus 7 Build/LRX22G
=======================================================
>57.0.2987.8: Works fine on https://mobile.twitter.com.
              Issue is seen on twitter videos when 'Request desktop site' is checked under Wrench menu.   
#5, if you have an issue that reproduced on Chrome 49, then it is not related to this regression. Can you file a separate issue?
Labels: -ReleaseBlock-Beta ReleaseBlock-Stable Needs-Reduction
Thanks for the report, I have taken a look now! In the videos, it looks like the problem is that the video element isn't going fullscreen at all, i.e. not just a problem with the playback state of the video.

Unfortunately, I cannot get this version of twitter.com, logged in our in an incognito tab. To work on this issue, I'll either access to the page itself or a standalone test case. Adding Needs-Reduction in hope of the latter.

I have tried playing videos on twitter.com with the version that I get served and can not reproduce the problem. The change in question is an important part of unprefixing the Fullscreen API and there will be some time to address it in the M57 time frame, so changing to ReleaseBlock-Stable rather than reverting at this time.

Comment 14 by ajha@chromium.org, Jan 25 2017

foolip@: Could you please give a try on https://twitter.com/BCCI and play the video with description 'The @msdhoni challenge for Jasprit Bumrah - #INDvENG'.
#14, thank you, with this case I can reproduce the issue. I'll take a look.
This is reminiscent of  issue 631245 , where a twitter embed has a similar-looking problem.
Looks like it's an unrelated issue. The problem is that the iframe with the video is removed as soon as we enter fullscreen. The code for this is in https://abs.twimg.com/k/en/27.commons.en.0d54e050ef4a25cadcc3.js (attached) with the following relevant bits:

this.processWatchedMedia = function() {
    this.isInFullscreen() || this.$media.each(function(t, i) {
        var s = e(i)
          , n = o.isWithinBounds(this.$container, s, this.attr.playableMediaLoadThreshold)
          , a = s.hasClass("playable-media-loaded");
        !a && n ? s.trigger("uiLoadPlayableMedia") : a && !n && s.trigger("uiUnloadPlayableMedia")
    }
    .bind(this))
}
,
this.isInFullscreen = function() {
    return document.webkitFullscreenElement || document.msFullscreenElement || document.fullscreenElement || document.mozFullScreenElement
}

With processWatchedMedia on the stack we end up in this code:

teardown: function() {
    this.eventCallbacks = {},
    i.removeChild(this.videoIframe),
    this.videoIframe = void 0,
    delete r[this.playerId]
}

When the problem happens, we were dispatching a scroll event and document.webkitFullscreenElement was false.
27.commons.en.0d54e050ef4a25cadcc3.js
481 KB View Download
So, this is probably code to destroy video players that scroll out of view, with an exception added to avoid precisely this happening while entering fullscreen. The timing of the fullscreen state changes and events have changed, so probably there is now a scroll event due to entering fullscreen before the fullscreenchange event and before document.fullscreenElement changes, which to the page looks like any other scroll.
https://html.spec.whatwg.org/multipage/webappapis.html#event-loop-processing-model requires that scroll events are fired before the fullscreenchange event, so we may now be in line with what the spec requires, but it does seem like a problem that a page cannot easily know that it's in the process of entering fullscreen. Need to test other browsers.
I have done a bit of testing using the attached test, which is tall enough that scrolling happens when you enter fullscreen, with Chrome 55 (well before my change), Edge 14, Safari 10 and Firefox 54 (Nightly).

In Edge, the scroll event is fired after the fullscreenchange event, and so naturally the fullscreen element has already changed. It would not get this bug.

In Firefox, the scroll event is fired before the fullscreenchange event when the fullscreen element has not yet changed. It might also be susceptible to this bug.

In Chrome and Safari, the scroll event is fired before the fullscreenchange event, and yet document.webkitFullscreenElement is already the new element. https://codereview.chromium.org/2573773002 was precisely to fix this weird mismatch between state changes and events firing.
fullscreen-scroll.html
1.0 KB View Download
Summary: Twitter iframe with video is removed when entering fullscreen, page is left in fullscreen (was: Video not playing upon entering full screen mode on twitter.com)
I've filed https://github.com/whatwg/fullscreen/issues/74 for spec-side discussion.
Blocking: 402376
Project Member

Comment 24 by bugdroid1@chromium.org, Jan 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/675e4f2fe55c349ac3ba67405c15c36ec7419cb6

commit 675e4f2fe55c349ac3ba67405c15c36ec7419cb6
Author: foolip <foolip@chromium.org>
Date: Fri Jan 27 11:05:34 2017

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}

[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html
[delete] https://crrev.com/c0a2365a06eb4f8fae329b9dc973dc7e29ec3bc1/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-prefixed.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html
[delete] https://crrev.com/c0a2365a06eb4f8fae329b9dc973dc7e29ec3bc1/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-prefixed.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover-expected.txt
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition.html
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/fullscreen/full-screen-stacking-context.html
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt
[add] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/css/CSSDefaultStyleSheets.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/css/SelectorChecker.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/DocumentFullscreen.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/DocumentFullscreen.h
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/DocumentFullscreen.idl
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/Fullscreen.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/Fullscreen.h
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/dom/LayoutTreeBuilder.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/html/shadow/MediaControlsOrientationLockDelegateTest.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/core/page/ChromeClient.h
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/ChromeClientImpl.h
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/FullscreenController.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/FullscreenController.h
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/WebViewImpl.h
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
[modify] https://crrev.com/675e4f2fe55c349ac3ba67405c15c36ec7419cb6/third_party/WebKit/Source/web/tests/WebViewTest.cpp

Project Member

Comment 25 by bugdroid1@chromium.org, Jan 31 2017

Labels: merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/147957308fafe758c8cec0035595cb307775d880

commit 147957308fafe758c8cec0035595cb307775d880
Author: Philip Jägenstedt <foolip@chromium.org>
Date: Tue Jan 31 05:51:16 2017

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
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}
(cherry picked from commit 40a515a53aa3510c608fe60c572045850632e720)

Review-Url: https://codereview.chromium.org/2667913002 .
Cr-Commit-Position: refs/branch-heads/2987@{#216}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/external/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-twice.html
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/document-exit-fullscreen-vs-request.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/document-fullscreen-element.html
[delete] https://crrev.com/8844a6395ed1a3fdfc09d12fe5b24437d4aa31ca/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-prefixed.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-move.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html
[delete] https://crrev.com/8844a6395ed1a3fdfc09d12fe5b24437d4aa31ca/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove-prefixed.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-and-remove.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-twice.html
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-two-iframes.html
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/api/element-request-fullscreen-vs-exit.html
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover-expected.txt
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/enter-exit-full-screen-hover.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/full-screen-remove-ancestor-during-transition.html
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/fullscreen/full-screen-stacking-context.html
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-exit-fullscreen-twice-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/document-fullscreen-element-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-and-remove-manual-expected.txt
[add] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/LayoutTests/imported/wpt/fullscreen/api/element-request-fullscreen-twice-manual-expected.txt
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/css/CSSDefaultStyleSheets.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/css/SelectorChecker.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/DocumentFullscreen.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/DocumentFullscreen.h
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/DocumentFullscreen.idl
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/Fullscreen.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/Fullscreen.h
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/dom/LayoutTreeBuilder.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/html/shadow/MediaControlsOrientationLockDelegateTest.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/core/page/ChromeClient.h
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/ChromeClientImpl.h
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/FullscreenController.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/FullscreenController.h
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/WebPluginContainerImpl.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/WebViewImpl.h
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
[modify] https://crrev.com/147957308fafe758c8cec0035595cb307775d880/third_party/WebKit/Source/web/tests/WebViewTest.cpp

Status: Fixed (was: Assigned)
Fixed by reverting "Sync requestFullscreen() and exitFullscreen() algorithms with the spec"

Comment 27 by canb...@gmail.com, Jan 31 2017

is this fix merged with m-57? 

issue still exists on latest dev Version 57.0.2987.19 dev (64-bit)
Labels: TE-Verified-M57 TE-Verified-57.0.2987.21
Verified this issue on Windows 10, Ubuntu 14.04 and Mac OS 10.12.2 using chrome latest Beta M57-57.0.2987.21 by following steps mentioned in the comment #0. 
Observed that videos are playing in the full screen mode

Hence adding TE-verified labels.
Issue 680467.mp4
13.7 MB View Download
#27, is has been merged to M-57, initially in 57.0.2987.20.
In a new attempt with  issue 402376  where the fullscreenElement changes immediately on resize and the events are fired at the next animation frame, this problem is fixed. The test in #20 behaves the same way with and without my planned changes.

Sign in to add a comment