New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 631245 link

Starred by 8 users

Issue metadata

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



Sign in to add a comment

fullscreening video element fullscreens the page, not the video

Project Member Reported by crouleau@chromium.org, Jul 25 2016

Issue description

Version: 51.0.2704.106 for linux, 51.0.2704.103 for mac, 51.0.2704.106 for mac

What steps will reproduce the problem?
(1) go to http://www.nytimes.com/2016/07/19/arts/television/jon-stewart-late-show-stephen-colbert.html?_r=0
(2) play the twitter video (not any of the other videos on the page. The twitter video is the one directly above the text ".@StephenAtHome kicked off #ColbertRNC with a good old-fashioned song and dance number. #ChristmasInJuly")
(3) click to fullscreen the video
(4) observe that the video does not fullscreen, but the page does instead. 

This problem does not occur on Safari. 


Please use labels and text to provide additional information.

 
Also, "document.getElementsByTagName('video')[0].webkitRequestFullscreen()" has the same effect.

Comment 2 by foolip@chromium.org, Jul 26 2016

Cc: rbyers@chromium.org
Labels: Needs-Bisect
I thought that this might be another regression from https://codereview.chromium.org/2107233002 (fullscreen top layer rewrite,  issue 240576 ) but it looks like this would actually be *fixed* by that. Unfortunately it was reverted.

Was there a Chrome version where this worked? Rick, is adding the Needs-Bisect label the only thing I need to do for someone to come along and help me out?

Comment 3 by rbyers@chromium.org, Jul 26 2016

Labels: Needs-TestConfirmation
I think Needs-Bisect is enough, but adding Needs-TestConfirmation as well just in case (since there is already a component here).
Cc: mlamouri@chromium.org
Components: -Blink>Media>Video
Labels: M-54 M-52
Status: Available (was: Untriaged)
Doesn't seem related to video: random div will also produce the full page to go fullscreen.

I was able to reproduce this issue on M52 and M53 on Linux.

Comment 5 by ajha@chromium.org, Jul 27 2016

Cc: ajha@chromium.org
Labels: -Type-Bug -Needs-TestConfirmation -M-52 -Needs-Bisect -M-51 hasbisect OS-Windows Type-Bug-Regression
Owner: perkj@chromium.org
Status: Assigned (was: Available)
Able to reproduce the issue on the latest stable(52.0.2743.82) and the latest canary(54.0.2809.0) on Windows-7, Mac OS 10.11.5 and Linux Ubuntu 14.04.

This is a regression issue broken in M-36.

Last good build: 36.0.1922.0
First bad build: 36.0.1924.0 (Changelog URL shows error when considering 36.0.1923.2(no trunk build of 1923) as good and 36.0.1924.0)

Changelog:
=========
https://chromium.googlesource.com/chromium/src/+log/36.0.1922.0..36.0.1924.0?pretty=fuller&n=10000

Unable to provide the tool result as Chromium is showing 'This Browser does not support video playback' when tried to play the twitter video. Even after passing the flash related parameters in the bisect script 'browser does not support video playback' message persists.

Manually inspecting the above changelog range, perkj@: Could this be related to https://codereview.chromium.org/212973002



Cc: msrchandra@chromium.org yini...@chromium.org dalecur...@chromium.org
 Issue 631017  has been merged into this issue.
There may also be (only be?) a general serving problem on Twitter's side, but we haven't narrowed it down yet, see  issue 629866 .

Comment 8 by perkj@chromium.org, Aug 15 2016

Owner: dalecur...@chromium.org
The pointed out cl refactors code that is used by the effects plugin that can modify a VideoTrack in a MediaStream and has nothing to do with video playback of normal video content. 

dale, does this belong to your team? 
Owner: ----
Status: Available (was: Assigned)
No, see c#4. 
Owner: foolip@chromium.org
Status: Assigned (was: Available)
This is a P1 regression. Assigning to foolip for fullscreen.
Cc: dstockwell@chromium.org
I have bisected the regression to this Blink commit:

commit c4fac69d2f8958023d864e53686fe1ede8d6a306
Author: dstockwell@chromium.org <dstockwell@chromium.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538>
Date:   Thu Apr 3 06:03:53 2014 +0000

    Enable unprefixed CSS Transforms by default
    
    As discussed on blink-dev[1]. This change enables unprefixed CSS
    Transforms[2] properties by default, it does not remove the
    prefixed versions.
    
    [1] https://groups.google.com/a/chromium.org/d/topic/blink-dev/vjyd8It--3Y/discussion
    [2] http://www.w3.org/TR/css3-transforms/
    
    BUG= 154772 
    
    Review URL: https://codereview.chromium.org/223243002
    
    git-svn-id: svn://svn.chromium.org/blink/trunk@170738 bbb929c8-8fbe-4397-9dbb-9b2b20218538

(Before the repo merge, rewritten commit is 0c329fa6ac4f8c96e8054243dbc21dfe5f323f30)

Getting the build to work at all was pretty hairy as a number of DEPS pointed to git commits that no longer exist, presumably due to rewritten history. I had to manually guess what commit to check out instead based on dates and commit messages of the rolls. Also had to comment out some things in net/third_party/nss/ssl/ssl3con.c that mysteriously failed.

Anyway, next step is to figure out why unprefixing CSS Transforms caused this regression. Maybe there's a simple fix in fullscreen.css pending  issue 240576 .
Minimizing that site was very painful, but here it is:

<!DOCTYPE html>
<div style="width: 600px; padding-bottom: 300px">
 <iframe srcdoc="<div>word" allowfullscreen></iframe>
</div>
<button>click me</button>
<script>
var div = document.querySelector('div');
var iframe = document.querySelector('iframe');
var button = document.querySelector('button');
var root = div.createShadowRoot();
root.appendChild(iframe);
// It matters that this is set via CSSOM and not in the style attribute above.
div.style.transform = "rotate(0deg)";
// With this added things are also broken before shipping unprefixed transforms,
// although then the text ("word") is visible inside the iframe.
//div.style.webkitTransform = "rotate(0deg)";
button.onclick = function() {
  iframe.contentDocument.body.firstChild.webkitRequestFullscreen();
};
</script>

Blockedon: 240576
Diagnosis: The site uses only the unprefixed transform attribute via CSSOM, but the bug wasn't really introduced by the unprefixing. Rather, the problem is that Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries stops at shadow boundaries, and thus the elements in the light DOM in this case don't get marked, the :-webkit-full-screen-ancestor pseudo-class doesn't match, and the needed transform:none override doesn't happen.

This has been the problem once before as well, but I can't find that issue now.
https://codereview.chromium.org/2287353002 fixes this and I've confirmed that it also fixes the original site in a release build.

However, both with and without the fix, LayoutObject::assertLaidOut() fails for an element inside the iframe:
LayoutView 0x358224809290              	#document

  LayoutBlockFlow 0x358224a1c3b0       	HTML

    LayoutBlockFlow 0x358224a1c4d0     	BODY

      LayoutBlockFlow (anonymous) (relative positioned) 0x358224a50010
      LayoutFullScreen (anonymous) (positioned) 0x358224890c88
        LayoutBlockFlow (relative positioned) 0x358224a1c5f0	DIV id="playerContainer" class="player-container full-screen-enabled video-played video-playing showing-controls"

          LayoutBlockFlow 0x358224a1c710	DIV class="player-wrapper first-play-reported"

*           LayoutBlockFlow 0x358224a1c830	DIV class="video-display" style="display: block;"

              LayoutVideo 0x35822497c140	VIDEO class="visible playing" style="width: 100%; height: 100%;"

                LayoutFlexibleBox (relative positioned) 0x35822486a210	DIV

                  LayoutFlexibleBox (relative positioned) 0x35822486a3d0	DIV

                  LayoutBlockFlow 0x358224a1cb90	DIV

          LayoutBlockFlow (positioned) 0x358224a39330	DIV class="all-controls player-controls bg-play-pause visible-controls" style="display: block;"

            LayoutBlockFlow (positioned) 0x358224a39c30	DIV class="player-controls-bottom-container"

              LayoutBlockFlow 0x358224a39d50	DIV class="player-controls-bottom"

                LayoutBlockFlow (relative positioned) (floating) 0x358224a39e70	DIV class="player-controls-bottom-left"

                  LayoutBlockFlow (floating) 0x358224a39f90	A class="play-button pause" style="display: block;"

                    LayoutText 0x358224a44180	#text "\n                "

                    LayoutBlockFlow 0x358224a3a1d0	SPAN class="rosetta-icon rosetta-icon-pause"

                      LayoutInline 0x3582249ba210	<pseudo:before>

                        LayoutTextFragment (anonymous) 0x358224a08e10 "?" 
                    LayoutText 0x358224a44238	#text "\n                "

                    LayoutText 0x358224a442f0	#text "\n              "

                LayoutBlockFlow (relative positioned) (floating) 0x358224a3a2f0	DIV class="player-controls-bottom-right"

                  LayoutBlockFlow (floating) 0x358224a1ccb0	DIV class="time-display time-display-progress time-display-populated"

                    LayoutText 0x3582249dfe98	#text "0:03 / 3:09"

                  LayoutBlockFlow (floating) 0x358224a3a410	DIV class="sound-button sound-on"

                    LayoutBlockFlow 0x358224a3a530	SPAN class="rosetta-icon rosetta-icon-sound-on"

                      LayoutInline 0x3582249ba2d0	<pseudo:before>

                        LayoutTextFragment (anonymous) 0x358224a08ef0 "?" 
                    LayoutText 0x358224a443a8	#text "\n                "

                    LayoutText 0x358224a44460	#text "\n              "

                  LayoutBlockFlow (floating) 0x358224a3a650	A class="full-screen-button shrink"

                    LayoutText 0x358224a44518	#text "\n                "

                    LayoutBlockFlow 0x358224a1cdd0	SPAN class="rosetta-icon rosetta-icon-shrink"

                      LayoutInline 0x3582249ba150	<pseudo:before>

                        LayoutTextFragment (anonymous) 0x358224838a70 "?" 
                    LayoutText 0x358224a445d0	#text "\n              "

                LayoutBlockFlow (relative positioned) 0x358224a3a890	DIV class="player-controls-bottom-center"

                  LayoutBlockFlow 0x358224a3a9b0	DIV class="scrubber-background scrubber"

                    LayoutBlockFlow (relative positioned) 0x358224a3aad0	DIV class="scrubber-track"

                      LayoutBlockFlow (positioned) 0x358224a3abf0	DIV class="scrubber-track-played" style="width: 1.82397%;"

                      LayoutBlockFlow (positioned) 0x358224a3ad10	DIV class="scrubber-thumb" style="left: 1.82397%;"
Cc: -dstockwell@chromium.org
Status: Fixed (was: Assigned)
Blockedon: -240576
Cc: skobes@chromium.org bokan@chromium.org
 Issue 643996  has been merged into this issue.

Sign in to add a comment