|
|
Created:
3 years, 11 months ago by wkorman Modified:
3 years, 11 months ago CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1 Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionValidate objects are a box when clipping layers for clip-path.
http://crrev.com/2558633005 modified
LayoutObject::hasClipRelatedProperty() to consider clip path,
unintentionally introducing this issue.
BUG=675081
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/5a83553e83c5f8cdc3d7cb54d00210238e4dd83e
Cr-Commit-Position: refs/heads/master@{#440825}
Patch Set 1 #
Messages
Total messages: 22 (14 generated)
Description was changed from ========== Validate objects are a box when clipping containing layer for css-clip. BUG=675081 ========== to ========== Validate objects are a box when clipping containing layer for css-clip. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== Validate objects are a box when clipping containing layer for css-clip. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Validate objects are a box when clipping containing layer for css-clip. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
Description was changed from ========== Validate objects are a box when clipping containing layer for css-clip. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Validate objects are a box when clipping containing layer for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
wkorman@chromium.org changed reviewers: + trchen@chromium.org
For discussion -- this fixes the test case, but I wonder whether we should instead be returning false if not a box and not even getting to this point. See other calls to hasClipRelatedProperty() in CompositingInputsUpdater, CompositingRequirementsUpdater, and PaintLayerCompositor::clipsCompositingDescendants(): https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/layout/La... I am not yet an expert (or even pseudo-adept) in the ways of clip-path.
On 2016/12/27 at 23:13:23, wkorman wrote: > For discussion -- this fixes the test case, but I wonder whether we should instead be returning false if not a box and not even getting to this point. > > See other calls to hasClipRelatedProperty() in CompositingInputsUpdater, CompositingRequirementsUpdater, and PaintLayerCompositor::clipsCompositingDescendants(): > > https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/layout/La... > > I am not yet an expert (or even pseudo-adept) in the ways of clip-path. Or, are we going to miss clipping in some cases where we should by just skipping if not-isBox? https://www.w3.org/TR/css-masking-1/#propdef-clip-path states clip-path applies to all elements. Perhaps we should do something to compute the box of the inline and clip by that rather than just skipping clipping. But if that's the case, we are already broken, so this change would not make things worse.
The CQ bit was checked by wkorman@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Validate objects are a box when clipping containing layer for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Validate objects are a box when clipping layers for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ==========
On 2016/12/27 23:18:45, wkorman wrote: > On 2016/12/27 at 23:13:23, wkorman wrote: > > For discussion -- this fixes the test case, but I wonder whether we should > instead be returning false if not a box and not even getting to this point. > > > > See other calls to hasClipRelatedProperty() in CompositingInputsUpdater, > CompositingRequirementsUpdater, and > PaintLayerCompositor::clipsCompositingDescendants(): > > > > > https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/layout/La... > > > > I am not yet an expert (or even pseudo-adept) in the ways of clip-path. > > Or, are we going to miss clipping in some cases where we should by just skipping > if not-isBox? > > https://www.w3.org/TR/css-masking-1/#propdef-clip-path > > states clip-path applies to all elements. Perhaps we should do something to > compute the box of the inline and clip by that rather than just skipping > clipping. > > But if that's the case, we are already broken, so this change would not make > things worse. Wow this is crazy. I didn't know clip-path applies to inline elements as well. I just did a few experiments on jsbin. I think on inline elements the enclosing rect of layout overflow is being used as the "object bounding box" for clip-path layout reference. Anyway lgtm because the CL only converts undefined behavior into silent failure, which IMO is strictly better.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
wkorman@chromium.org changed reviewers: + wangxianzhu@chromium.org
+xianzhu for OWNERS.
The CQ bit was checked by wangxianzhu@chromium.org
lgtm
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 1, "attempt_start_ts": 1482892822768240, "parent_rev": "b81519c620b0310df83c980b898c4c6b078394c7", "commit_rev": "1c2eab21a9b4765862edbe45a65803d50563d051"}
Message was sent while issue was closed.
Description was changed from ========== Validate objects are a box when clipping layers for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 ========== to ========== Validate objects are a box when clipping layers for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2602823002 ==========
Message was sent while issue was closed.
Committed patchset #1 (id:1)
Message was sent while issue was closed.
Description was changed from ========== Validate objects are a box when clipping layers for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2602823002 ========== to ========== Validate objects are a box when clipping layers for clip-path. http://crrev.com/2558633005 modified LayoutObject::hasClipRelatedProperty() to consider clip path, unintentionally introducing this issue. BUG=675081 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/5a83553e83c5f8cdc3d7cb54d00210238e4dd83e Cr-Commit-Position: refs/heads/master@{#440825} ==========
Message was sent while issue was closed.
Patchset 1 (id:??) landed as https://crrev.com/5a83553e83c5f8cdc3d7cb54d00210238e4dd83e Cr-Commit-Position: refs/heads/master@{#440825} |