fullscreening video element fullscreens the page, not the video |
||||||||||||||
Issue descriptionVersion: 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.
,
Jul 26 2016
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?
,
Jul 26 2016
I think Needs-Bisect is enough, but adding Needs-TestConfirmation as well just in case (since there is already a component here).
,
Jul 26 2016
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.
,
Jul 27 2016
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
,
Jul 29 2016
Issue 631017 has been merged into this issue.
,
Jul 29 2016
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 .
,
Aug 15 2016
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?
,
Aug 15 2016
No, see c#4.
,
Aug 17 2016
This is a P1 regression. Assigning to foolip for fullscreen.
,
Aug 23 2016
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 .
,
Aug 26 2016
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>
,
Aug 26 2016
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.
,
Aug 29 2016
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%;"
,
Aug 29 2016
,
Sep 2 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a2a0e98d3249fe12469ea5ede7658b02c88113e9 commit a2a0e98d3249fe12469ea5ede7658b02c88113e9 Author: foolip <foolip@chromium.org> Date: Fri Sep 02 15:27:44 2016 Cross shadow DOM boundaries for :-webkit-full-screen-ancestor BUG= 631245 Review-Url: https://codereview.chromium.org/2287353002 Cr-Commit-Position: refs/heads/master@{#416267} [add] https://crrev.com/a2a0e98d3249fe12469ea5ede7658b02c88113e9/third_party/WebKit/LayoutTests/fullscreen/full-screen-ancestor-shadow.html [modify] https://crrev.com/a2a0e98d3249fe12469ea5ede7658b02c88113e9/third_party/WebKit/Source/core/dom/Element.cpp
,
Sep 2 2016
,
Sep 2 2016
,
Sep 8 2016
|
||||||||||||||
►
Sign in to add a comment |
||||||||||||||
Comment 1 by crouleau@chromium.org
, Jul 25 2016Also, "document.getElementsByTagName('video')[0].webkitRequestFullscreen()" has the same effect.