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

Issue 747511 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression



Sign in to add a comment

fast/clip/css-clip-filter-order.html.html failing with spv2

Project Member Reported by pdr@chromium.org, Jul 21 2017

Issue description

Comment 1 by trchen@chromium.org, Jul 21 2017

Cc: chrishtr@chromium.org
Labels: -Pri-3 Pri-1
Owner: trchen@chromium.org
Status: Started (was: Assigned)
It is related to this: https://chromium-review.googlesource.com/c/567520/

That CL changed filter/clip interaction in SPv1 and changed the test reference to match it. Specifically, whether an inherited clip is applied to the filter output, or the filter input, or both. Previously inherited clip only applies to filter output, now it affects both with that CL applied.

The spec doesn't say which behavior is standard. I have documented our behavior here: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp?rcl=f970265e015bcf489f828967962e41ec431edfff&l=655
IMO our behavior is generally more useful, consider the combination of scroll+blur:
<div style="overflow:scroll; width:300px; height:200px;">
  <div style="filter:blur(10px);">
    lorem ipsum...
  </div>
</div>

I feel this behavior change is beyond what's required to fix the original bug  crbug.com/734116  . It seems to me the original bug was that even the filter output wasn't clipped, which is definitely undesirable. I'll investigate how to fix it without changing the clip semantics.
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/21cfe2d238708828554124c8a6f98895e3f39577

commit 21cfe2d238708828554124c8a6f98895e3f39577
Author: Tien-Ren Chen <trchen@chromium.org>
Date: Fri Jul 28 01:58:10 2017

[Blink] Restore CSS clip and filter application order

There was a previous bug [1] that prevented overflow clip from being
applied in the presence of a filter on the same element. The CL [2]
fixed the overflow/filter interaction but inadvertently changed
clip/filter interaction:

Buggy behavior prior to [2]:
output <-- clip/clip-path/mask <-- filter <-- children

Buggy behavior after [2]:
output <-- clip/clip-path/mask <-- filter <-- clip <-- overflow <-- children

This CL restores clip/filter interaction so that they will be applied
in the following order:
output <-- clip/clip-path/mask <-- filter <-- overflow <-- children

[1]  https://crbug.com/734116 
[2] https://chromium-review.googlesource.com/c/567520

BUG= 734116 , 747511 

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1b2e1441de89fd486f50bba10c8a20108d557dc2
Reviewed-on: https://chromium-review.googlesource.com/588137
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Tien-Ren Chen <trchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490201}
[modify] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/fast/clip/css-clip-filter-order-expected.html
[add] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/paint/filters/clip-filter-overflow-clip-expected.html
[add] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/paint/filters/clip-filter-overflow-clip.html
[add] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/paint/filters/clip-under-filter-2-expected.html
[add] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/paint/filters/clip-under-filter-2.html
[modify] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/LayoutTests/paint/filters/clip-under-filter-expected.png
[modify] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
[modify] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp
[modify] https://crrev.com/21cfe2d238708828554124c8a6f98895e3f39577/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp

Labels: -Type-Bug ReleaseBlock-Stable M-61 Type-Bug-Regression
Please merge this fix to M61 also.

Comment 4 by gov...@chromium.org, Jul 28 2017

Pls apply appropriate OSs. Thank you.
Labels: Merge-Request-61 OS-All
Project Member

Comment 6 by sheriffbot@chromium.org, Jul 29 2017

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

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

Comment 7 by gov...@chromium.org, Jul 30 2017

Pls merge you change to M61 branch 3163 before 3:00 PM PT on Monday so we can take it in for next week last M61 Dev release. Thank you.
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 31 2017

Labels: -merge-approved-61 merge-merged-3163
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f6679fa0478c177d446ec6679e3135f5eaef352

commit 9f6679fa0478c177d446ec6679e3135f5eaef352
Author: Tien-Ren Chen <trchen@chromium.org>
Date: Mon Jul 31 22:03:46 2017

[Blink] Restore CSS clip and filter application order

There was a previous bug [1] that prevented overflow clip from being
applied in the presence of a filter on the same element. The CL [2]
fixed the overflow/filter interaction but inadvertently changed
clip/filter interaction:

Buggy behavior prior to [2]:
output <-- clip/clip-path/mask <-- filter <-- children

Buggy behavior after [2]:
output <-- clip/clip-path/mask <-- filter <-- clip <-- overflow <-- children

This CL restores clip/filter interaction so that they will be applied
in the following order:
output <-- clip/clip-path/mask <-- filter <-- overflow <-- children

[1]  https://crbug.com/734116 
[2] https://chromium-review.googlesource.com/c/567520

BUG= 734116 , 747511 
TBR=trchen@chromium.org

(cherry picked from commit 21cfe2d238708828554124c8a6f98895e3f39577)

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I1b2e1441de89fd486f50bba10c8a20108d557dc2
Reviewed-on: https://chromium-review.googlesource.com/588137
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Commit-Queue: Tien-Ren Chen <trchen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#490201}
Reviewed-on: https://chromium-review.googlesource.com/595107
Reviewed-by: Tien-Ren Chen <trchen@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#189}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/LayoutTests/fast/clip/css-clip-filter-order-expected.html
[add] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/LayoutTests/paint/filters/clip-filter-overflow-clip-expected.html
[add] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/LayoutTests/paint/filters/clip-filter-overflow-clip.html
[add] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/LayoutTests/paint/filters/clip-under-filter-2-expected.html
[add] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/LayoutTests/paint/filters/clip-under-filter-2.html
[modify] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/LayoutTests/paint/filters/clip-under-filter-expected.png
[modify] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/Source/core/paint/PaintLayerClipper.cpp
[modify] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/Source/core/paint/PaintLayerClipperTest.cpp
[modify] https://crrev.com/9f6679fa0478c177d446ec6679e3135f5eaef352/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp

Status: Fixed (was: Started)

Sign in to add a comment