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

Issue 645412 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 548184
Owner: ----
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 2
Type: Bug



Sign in to add a comment

video element in a div with transform:translateZ() hides absolutely positioned overlay

Reported by ibc@aliax.net, Sep 9 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36

Example URL:
https://jsfiddle.net/7krah57v/11/

Steps to reproduce the problem:
1.  Open https://jsfiddle.net/7krah57v/11/ in Chrome

2. Check the HTML, there is <div id='overlay'> that is not rendered on top of the video.

3. Open the same link in Firefox, it works.

4. Again in Chrome, modify the CSS in any of the following ways:

- In #container element remove the perspective CSS property.
- In #wrapper element remove overflow:hidden (this is however a different bug in Chrome).
- In #wrapper element set transform: translateZ(250px) instead of 350px.

With any of these changes the overlay div becomes visible.

What is the expected behavior?
The overlay element has position:absolute and z-index:1000 so it should ALWAYS be visible on top of the video.

What went wrong?
Depending on certain CSS properties on video's parent elements, the overlay becomes hidden by the video element.

Does it occur on multiple sites: N/A

Is it a problem with a plugin? N/A 

Did this work before? N/A 

Does this work in other browsers? N/A 

Chrome version: 55.0.2855.0 canary (64-bit)  Channel: canary
OS Version: OS X 10.11.5
Flash Version: Shockwave Flash 22.0 r0

It fails in Chrome Stable (53.0.2785.101), in Chrome Android and in Chrome Canary.

It fails in the exact same way in Safari (OSX).

It works in Firefox.
 
Cc: ajuma@chromium.org rnimmagadda@chromium.org
Components: Blink>CSS
Labels: -Type-Compat M-53 OS-Linux OS-Windows Type-Bug-Regression
Owner: vollick@chromium.org
Status: Assigned (was: Unconfirmed)
====================================

Good Build:

32.0.1652.0    Base Position: 225260 


Bad Build:

33.0.1701.0    Base Position: 233147  

=====================================

Able to repro this issue on Windows 7, MAC (10.11.6) & Ubuntu Trusty (14.04) for the Google Chrome Stable Version - 53.0.2785.101

This is a regression issue broken in M55, below mentioned is the bisect info:

CHANGELOG URL: https://chromium.googlesource.com/chromium/src/+log/32.0.1652.0..33.0.1701.0?pretty=fuller&n=10000

Suspecting Commit: f4d2b9010b399a4c764a5f23ba0c1493448bdd78

Review URL: https://codereview.chromium.org/26116004

@vollick/ajuma: Could you please look into the issue, and if it has nothing to do with your changes and if possible please do assign it to the concerned owner.

Thank you.

Comment 2 by ibc@aliax.net, Sep 12 2016

I want to add that, when using CSS perspective, if an element has a video element a some "position:absolute" element on top of it, and its transform:rotateX or transform:rotateY is 0deg, then the overlay becomes hidden by the video, or it becomes non-clickable, etc. But, if I manually replace 0deg with 360deg (or any other 360xN value) it is properly displayed.

This is hard to show. It's happening to me in a complex app I'm building and it's very hard to show the issue in a jsfiddle, but I expect the issue to be 100% related to the one reported here. And the same code works perfectly in Firefox.

Comment 3 by meade@chromium.org, Oct 13 2016

Labels: Needs-Bisect Hotlist-Interop
Thats a really old CL - 3 years ago, and seems unrelated. Can we try the bisect again?
Cc: vollick@chromium.org
Labels: -M-53 -Needs-Bisect M-55
Owner: sungmann...@navercorp.com
Able to repro the issue on mac 10.11.6 win10 and Linux chrome version 54.0.2840.59 and canary 56.0.2891.7 - the overlay becomes hidden by the video element

This is a regression in M36 and below is the bisect info

Good Build: 36.0.1921.0
Bad Build: 36.0.1922.0

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

Possible suspect : https://codereview.chromium.org/208263010

Please reassign if this is not related to your change

Comment 5 by phistuck@gmail.com, Oct 18 2016

This build range is much too big (and the suspect does not seem relevant). Why did you not bisect it further?
Components: -Blink>CSS Blink>Layout
Labels: -Type-Bug-Regression Type-Bug
Owner: ----
Status: Untriaged (was: Assigned)
Chrome 32/36 is probably too old to really consider this a regression (we're not going to get a good bisect from that far back).  Maybe triage as a new layout issue?

Comment 7 by skobes@chromium.org, Nov 13 2016

Cc: -rnimmagadda@chromium.org chrishtr@chromium.org
Components: -Blink>Layout Blink>Compositing Blink>Media>Video Blink>Paint
Status: Available (was: Untriaged)
As a workaround, you can set transform: translateZ(0) on the #overlay element.
Mergedinto: 548184
Status: Duplicate (was: Available)

Comment 9 by ibc@aliax.net, Apr 29 2018

Confirmed that using "transform: translateZ(0)" on the #overlay element does work. Thanks.

Said that, if the workaround is known, shouldn't the fix be possible?

Sign in to add a comment