New issue
Advanced search Search tips

Issue 606342 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocking:
issue 561713



Sign in to add a comment

[CSS Containment] contain: paint conflicts with will-change: transform

Reported by a...@scirra.com, Apr 25 2016

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2715.0 Safari/537.36

Example URL:
https://dl.dropboxusercontent.com/u/15217362/bugs/contain-paint-bug.html

Steps to reproduce the problem:
Visit the URL. It demonstrates 3 scrolling boxes. Scroll the third box (Case 3: contain: paint; will-change: transform).

What is the expected behavior?
The text should still be visible, as per in case 2 (contain: paint only).

What went wrong?
When you scroll case 3, text not in the initial viewport is not drawn.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? No 

Did this work before? No 

Does this work in other browsers? N/A 

Chrome version: 52.0.2715.0  Channel: canary
OS Version: 10.0
Flash Version: Shockwave Flash 21.0 r0

If you click and try to select text in case 3, it does a partial repaint. Sometimes all the text appears to come back too, but if you scroll again the same problem has happened, the rest of the text is still invisible.
 

Comment 1 by jianli@chromium.org, Apr 25 2016

Components: -Blink Blink>CSS Blink>Paint
Labels: Needs-TestConfirmation
Can't repro this on Windows 7. Could someone please try to repro this on Windows 10?
Labels: -Needs-TestConfirmation
Status: Untriaged (was: Unconfirmed)
I can repro this on Linux when the CSSContainment feature is turned on.
Blocking: 561713
Labels: M-52
Owner: le...@chromium.org
Status: Assigned (was: Untriaged)
If an overflow:auto object with contains:paint is composited, then we incorrectly apply a clip to its overflow contents.

Comment 4 by le...@chromium.org, Apr 25 2016

Labels: OS-Linux
Doesn't repro on Mac.

Comment 5 by le...@chromium.org, Apr 26 2016

Cc: chrishtr@chromium.org wangxianzhu@chromium.org
Labels: OS-Mac
Actually it does, but only with lo-DPI.

Also: selecting the text causes the text to appear. This seems like a paint invalidation bug?
I can repro on linux even with --enable-blink-features=CSSContainment  --enable-prefer-compositing-to-lcd-text

Comment 7 by e...@chromium.org, May 10 2016

Components: -Blink>Paint -Blink>CSS Blink>Paint>Invalidation
Owner: ----
Status: Untriaged (was: Assigned)

Comment 8 by e...@chromium.org, May 16 2016

Cc: e...@chromium.org
Labels: -OS-Linux -OS-Windows -OS-Mac OS-All
This is the last remaining blocker for shipping CSS Containment. I plan to start looking into it tomorrow, if you have any pointers as to where we apply the clip I'd appreciate it.
Cc: -wangxianzhu@chromium.org
Owner: wangxianzhu@chromium.org
Status: Started (was: Untriaged)
I think the problem is at https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp&rcl=1463411924&l=215:

    if ((layoutObject.hasOverflowClip() && shouldRespectOverflowClip(context))
        || (layoutObject.styleRef().containsPaint() && layoutObject.isBox())) {
       // apply overflow clip.

When the object containsPaint, we don't respect the IgnoreOverflowClip flag passed from CompositedLayerMapping for the composited scrolling box.

Will upload a patch soon.
Components: -Blink>Paint>Invalidation Blink>Paint
Status: Fixed (was: Started)

Sign in to add a comment