Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Issue 2641173008: [SPv2] Add CSS mask support (Closed)

Created:
3 years, 11 months ago by trchen
Modified:
3 years, 10 months ago
Reviewers:
chrishtr, pdr.
CC:
blink-reviews, blink-reviews-paint_chromium.org, chromium-reviews, dshwang
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[SPv2] Add CSS mask support This CL adds CSS mask support for SPv2. The following changes have been made: * Presence of a mask will ensure the main effect node, although the mask is not applied to it directly. * The mask itself will paint into a child isolated group of the main effect node, with kDstIn blend mode. * CSS filter has been moved to a dedicated effect node. This is because the mask must composite on top of filtered contents but before applying other effects. * Mask will also create an accompanied output clip, because masked contents outside of the mask's extent shall be considered masked out. * Currently both the main effect nodes and the mask will have forced compositing reason, which diverges from SPv1 behavior. This is due to the PaintArtifactCompositor doesn't handle grouping correctly yet. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2641173008 Cr-Commit-Position: refs/heads/master@{#451263} Committed: https://chromium.googlesource.com/chromium/src/+/24ffc96f66c428a9820e839af5c47887ce2042b7

Patch Set 1 #

Total comments: 6

Patch Set 2 : fix transform space application, split filter from effect node, rename hasCompositedMask, temporari… #

Patch Set 3 : fix missed effect --> filter replacement for outputClip #

Patch Set 4 : update layout test expectation && add unit tests #

Total comments: 17

Patch Set 5 : update comments, add Ahem support to RenderingTests #

Total comments: 2

Patch Set 6 : rebase & fix windows build issue #

Patch Set 7 : test data path issue? #

Patch Set 8 : rebase #

Patch Set 9 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+452 lines, -116 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 View 1 2 3 4 5 6 7 7 chunks +9 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/css/FontFace.h View 1 2 3 4 5 2 chunks +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/css/FontFaceSet.h View 1 2 3 4 1 chunk +5 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTestHelper.h View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTestHelper.cpp View 1 2 3 4 5 6 2 chunks +20 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.h View 1 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinder.cpp View 1 2 3 4 5 1 chunk +24 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BoxPainter.cpp View 1 2 3 4 5 1 chunk +4 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp View 1 1 chunk +7 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintProperties.h View 1 2 3 4 5 chunks +58 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 2 3 4 5 6 7 1 chunk +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp View 1 2 3 4 5 4 chunks +38 lines, -25 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 2 3 4 5 6 7 8 6 chunks +146 lines, -36 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 2 3 4 5 6 7 8 4 chunks +123 lines, -8 lines 0 comments Download

Messages

Total messages: 46 (29 generated)
trchen
WIP, not ready for review.
3 years, 11 months ago (2017-01-21 01:02:42 UTC) #3
trchen
https://codereview.chromium.org/2641173008/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2641173008/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode2677 third_party/WebKit/Source/core/paint/PaintLayer.cpp:2677: bool PaintLayer::hasCompositedMask() const { Is it obvious to you ...
3 years, 11 months ago (2017-01-21 01:27:08 UTC) #4
chrishtr
Looking great! Needs unittests also. :) https://codereview.chromium.org/2641173008/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2641173008/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode2677 third_party/WebKit/Source/core/paint/PaintLayer.cpp:2677: bool PaintLayer::hasCompositedMask() const ...
3 years, 11 months ago (2017-01-24 01:16:28 UTC) #5
trchen
Now ready for review. PTAL, thanks! https://codereview.chromium.org/2641173008/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2641173008/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode2677 third_party/WebKit/Source/core/paint/PaintLayer.cpp:2677: bool PaintLayer::hasCompositedMask() const ...
3 years, 10 months ago (2017-02-11 02:35:45 UTC) #9
chrishtr
https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h File third_party/WebKit/Source/core/paint/ObjectPaintProperties.h (right): https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h#newcode94 third_party/WebKit/Source/core/paint/ObjectPaintProperties.h:94: // The hierarchy of the effect subtree created by ...
3 years, 10 months ago (2017-02-11 23:55:11 UTC) #12
trchen
The unittest failure is probably due to font differences. I'll change font to Ahem and ...
3 years, 10 months ago (2017-02-13 21:12:02 UTC) #13
chrishtr
https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode2654 third_party/WebKit/Source/core/paint/PaintLayer.cpp:2654: bool PaintLayer::maskBlendingAppliedByCompositor() const { On 2017/02/13 at 21:12:02, trchen ...
3 years, 10 months ago (2017-02-13 23:23:49 UTC) #14
trchen
https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode425 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:425: // TODO(trchen): Figure out what to do with SVG. ...
3 years, 10 months ago (2017-02-14 01:37:30 UTC) #15
chrishtr
https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode445 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:445: maximumMaskRegion = toLayoutInline(object).linesBoundingBox(); On 2017/02/14 at 01:37:30, trchen wrote: ...
3 years, 10 months ago (2017-02-14 02:11:33 UTC) #18
trchen
https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2641173008/diff/60001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode445 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:445: maximumMaskRegion = toLayoutInline(object).linesBoundingBox(); On 2017/02/14 02:11:33, chrishtr wrote: > ...
3 years, 10 months ago (2017-02-14 02:22:04 UTC) #19
chrishtr
lgtm
3 years, 10 months ago (2017-02-14 02:24:23 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2641173008/120001
3 years, 10 months ago (2017-02-16 20:07:03 UTC) #33
commit-bot: I haz the power
Failed to apply patch for third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp: While running git apply --index -p1; error: patch failed: ...
3 years, 10 months ago (2017-02-16 22:36:58 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2641173008/140001
3 years, 10 months ago (2017-02-16 22:55:07 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/392377)
3 years, 10 months ago (2017-02-17 03:28:06 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2641173008/160001
3 years, 10 months ago (2017-02-17 04:37:11 UTC) #43
commit-bot: I haz the power
3 years, 10 months ago (2017-02-17 07:36:39 UTC) #46
Message was sent while issue was closed.
Committed patchset #9 (id:160001) as
https://chromium.googlesource.com/chromium/src/+/24ffc96f66c428a9820e839af5c4...

Powered by Google App Engine
This is Rietveld 408576698