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

Issue 759440 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Incorrect paint of clip-path after resize if child has position: absolute

Reported by johanrin...@gmail.com, Aug 28 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/60.0.3112.78 Chrome/60.0.3112.78 Safari/537.36

Steps to reproduce the problem:
1. Create a visible element and set its `clip-path` to a value
2. Create a child of the previous element and set its `position` to `absolute`.
3. Resize the browser to a wider size

Example JSFiddle: https://jsfiddle.net/ykbfrz0g/

What is the expected behavior?
The polygon is drawn correctly.

What went wrong?
The polygon is drawn chunked, or in multiple different sized instances.

Did this work before? N/A 

Does this work in other browsers? Yes

Chrome version: 60.0.3112.78  Channel: n/a
OS Version: Ubuntu 16.04
Flash Version: 

Note that the polygon is drawn correctly if you switch tabs, and then switch back to the tab containing the clip-path'd element.
 
clip-path-resize.html
577 bytes View Download
clip-path-resize.png
24.3 KB View Download
Tested to work correctly in Firefox 55.0.2, Ubuntu 16.04
Screencast showing resizing, incorrect drawing and correct drawing after switching tabs.
clip-path-resize.gif
950 KB View Download
Cc: brajkumar@chromium.org
Components: Blink>Paint
Labels: -Type-Bug -Pri-2 M-63 Needs-Triage-M60 hasbisect OS-Mac Pri-1 Type-Bug-Regression
Owner: yigu@chromium.org
Status: Assigned (was: Unconfirmed)
Able to reproduce on Mac OS 10.12.6 and Ubuntu 14.04 using chrome stable M61-61.0.3163.79. This issue is not seen on Windows-10

Note: Unable to perform per revision bisect, few builds are not invoked correctly hence proving chromium bisect information below.

Bisect Information:
=====================
Good build: 60.0.3096.0 (470759)
Bad Build : 60.0.3098.0 (471507)

Change Log URL: 
https://chromium.googlesource.com/chromium/src/+log/0e283fb794e782da9af62dac7cd2aa8800db359a..6c53f5db1411329c6662a40b4973a3af20b80ab5

From the above change log suspecting below change
https://chromium.googlesource.com/chromium/src/+/fca776d5b4979b1f9d86926bfb6d3fb14a0343f3

yigu@ - 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.

Thanks!
Cc: chrishtr@chromium.org
Components: -Blink>Paint Blink>Paint>Invalidation
Labels: BugSource-User PaintTeamTriaged-20170907
Could also be an invalidation error, so this:

https://chromium.googlesource.com/chromium/src/+/6c53f5db1411329c6662a40b4973a3af20b80ab5
Labels: M-60
Owner: flackr@chromium.org
Rob could you please take this bug while Yi is out?

Comment 7 by flackr@chromium.org, Sep 28 2017

Cc: flackr@chromium.org
Owner: wangxianzhu@chromium.org
From running bisect-builds.py I got the following:

You are probably looking for a change made after 430092 (known good), but no later than 430107 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/f8bcc22581f4d86b555ce46cd1075828996702ac..722f30f115b2ba519d003cdeac6ba75c7ac1a8e5

Then I did a manual bisect which pointed at 1bddf0ae1615f5c67ca034d7e08dfdb1ea5846c4 https://codereview.chromium.org/2483483003

Out of curiosity how did we get the bisect in #3? Both builds seem bad to me.
Labels: -Pri-1 -Type-Bug-Regression -M-60 Pri-2 Type-Bug
Lowering priority and removing Bug-Regression because the regression is too old. Also I think the bug is even older than the regression. It was exposed by https://codereview.chromium.org/2483483003, and there might be cases that can trigger the bug without the CL.
Project Member

Comment 9 by bugdroid1@chromium.org, Oct 16 2017

Labels: Merge-Request-63
Project Member

Comment 11 by sheriffbot@chromium.org, Oct 17 2017

Labels: -Merge-Request-63 Hotlist-Merge-Approved Merge-Approved-63
Your change meets the bar and is auto-approved for M63. Please go ahead and merge the CL to branch 3239 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 17 2017

Labels: -merge-approved-63 merge-merged-3239
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae976088cf52357807cbdf9cdcb50bbbcedce3df

commit ae976088cf52357807cbdf9cdcb50bbbcedce3df
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Tue Oct 17 22:28:18 2017

Invalidate whole box having clip-path on resize

The clip-path may depend on the box size, for which incremental
invalidation is not applicable.

TBR=wangxianzhu@chromium.org

(cherry picked from commit b74f734b985b115fb11ad51bf406980bbfb866ac)

Bug:  759440 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie16f5a03c4ca9186111c4729ca4ae106425e8486
Reviewed-on: https://chromium-review.googlesource.com/713399
Reviewed-by: Philip Rogers <pdr@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#509184}
Reviewed-on: https://chromium-review.googlesource.com/724217
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/branch-heads/3239@{#40}
Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578}
[add] https://crrev.com/ae976088cf52357807cbdf9cdcb50bbbcedce3df/third_party/WebKit/LayoutTests/paint/invalidation/clip-path-resize-expected.html
[add] https://crrev.com/ae976088cf52357807cbdf9cdcb50bbbcedce3df/third_party/WebKit/LayoutTests/paint/invalidation/clip-path-resize-expected.txt
[add] https://crrev.com/ae976088cf52357807cbdf9cdcb50bbbcedce3df/third_party/WebKit/LayoutTests/paint/invalidation/clip-path-resize.html
[modify] https://crrev.com/ae976088cf52357807cbdf9cdcb50bbbcedce3df/third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp
[modify] https://crrev.com/ae976088cf52357807cbdf9cdcb50bbbcedce3df/third_party/WebKit/Source/core/paint/BoxPaintInvalidatorTest.cpp

Status: Fixed (was: Assigned)

Sign in to add a comment