|
|
Created:
4 years, 8 months ago by hyunjunekim2 Modified:
4 years, 7 months ago CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, krit, eae+blinkwatch, f(malita), gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, szager+layoutwatch_chromium.org, zoltan1 Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionIf the <use> is hidden and the child of it is visible, should clip the non-resource.
If <use> element that is child of <clipPath> element is hidden
and the child of it is visible, should clip the non-resource element.
Because check the child of <use> element whether is visible or not.
If it is visible, contains on clip boundaries.
There is the change one more on this test named
'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change.
Because if the clipping target doesn't need clipping,
doesn't contain clip boundary about <use> element on
calculateClipContentPaintInvalidationRect function.
And remove reportError() to print error info for <clipPath> usage
on SVGUseElement.
BUG=590153
Committed: https://crrev.com/53cbed151cea16f4d27cc887a272d9e672c41b75
Cr-Commit-Position: refs/heads/master@{#390669}
Patch Set 1 : wrong #Patch Set 2 : #Patch Set 3 : #Patch Set 4 : #Patch Set 5 : #Patch Set 6 : #Patch Set 7 : #Patch Set 8 : #Patch Set 9 : #
Total comments: 24
Patch Set 10 : #Patch Set 11 : #Patch Set 12 : #Patch Set 13 : #Patch Set 14 : #Patch Set 15 : #
Total comments: 22
Patch Set 16 : #Patch Set 17 : #Patch Set 18 : #Patch Set 19 : #
Total comments: 2
Patch Set 20 : #Messages
Total messages: 75 (62 generated)
Description was changed from ========== WIP BUG=590153 ========== to ========== WIP BUG=590153 ==========
Description was changed from ========== WIP BUG=590153 ========== to ========== If children of <clipPath> element is invisible, dosen't clip non-resource element. BUG=590153 ==========
Description was changed from ========== If children of <clipPath> element is invisible, dosen't clip non-resource element. BUG=590153 ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. BUG=590153 ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. BUG=590153 ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. BUG=590153 ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. BUG=590153 ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. BUG=590153 ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. BUG=590153 ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. BUG=590153 ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. BUG=590153 ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered[1]. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered[1]. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element [1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element [1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And specifying 'visibility:hidden' on a ‘use’ element does not guarantee that the referenced content will not be rendered. However, if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
hyunjune.kim@samsung.com changed reviewers: + fs@opera.com, pdr@chromium.org
Could you check PS9? And Could you give me advice? Thank you.
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible', then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on ‘use’ element, then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on ‘use’ element, then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the ‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:hidden' event if the use’ element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:hidden' event if the use’ element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’ element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’ element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element is invisible, don't clip non-resource element When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
I have a hard time making something out of the description/commit message. I think what you want to write is something about how the 'visibility' of the target of the <use> is what needs to be considered. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element-expected.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element-expected.html:1: <!DOCTYPE HTML> This could just be a green 100x100 <div>. No need to have an SVG: <!DOCTYPE html> <div style="width: 100px; height: 100px; background-color: green"></div> https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element.html:2: <div style="visibility: hidden;"> Having this <div> wrapper doesn't seem relevant for this test. You could as well specify visibility on the <svg> or the <defs>. (The visibility on the clipped <rect> isn't relevant to this test either, because if it was 'hidden', that <rect> would not be rendered.) https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element.html:6: <rect x="0" y="0" width="400" height="300"></rect> I would have the geometries in this test be so that it would be obvious if the clip is applied or not (as compared being considered empty for example.) So: <rect width="100" height="100"/> here and <rect width="200" height="200" .../> below (Per above this test is invalid though.) https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html:1: <!DOCTYPE HTML> Same as the other ref. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:1: <!DOCTYPE HTML> Same comments on this test as the one above. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:89: if (!style || style->display() == NONE) I went looking through the various specs (CSS Masking [1], SVG 1.1 2ed [2]), and they all said: "If a child element is made invisible by display or visibility it does not contribute to the clipping path." So now I'm a little bit confused as to what the current state of affairs is here... So I went digging and found [3] - and nothing changing that behavior again. So I think the behavior should not change (except for <use> of course.) (If you want to reference anything here, then [1] might be the most relevant - more so than the <use> element reference.) [1] https://drafts.fxtf.org/css-masking-1/#ClipPathElement [2] https://www.w3.org/TR/SVG/masking.html#EstablishingANewClippingPath [3] https://www.w3.org/2009/07/01-svg-minutes.html#item02 https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:183: bool isUseElement = isSVGUseElement(*childElement); You need to fix this code-path too. The easiest way to end up in this code-path is likely to use a nested <clipPath>: <clipPath id="nested"> ... </clipPath> <clipPath id="clip" clip-path="url(#nested)"> ... </clipPath> https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:224: if (!style || style->display() == NONE) Same comment here as in calculateClipContentPathIfNeeded(). https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/svg/SVGUseElement.cpp (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:483: Node* n = userAgentShadowRoot()->firstChild(); This should probably just be using targetGraphicsElementForClipping, to filter out any non-graphics element descendants. It also looks like we could merge this with targetGraphicsElementForClipping and get something like: const SVGGraphicsElement* visibleTargetGraphicsElementForClipping() const; which checks for a LayoutObject etc. too before returning the element, so we don't need to duplicate this all over the place. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:505: const ComputedStyle* style = element->layoutObject() ? element->layoutObject()->style() : nullptr; element->layoutObject() has already been null-checked here (just above.) https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:506: if (style && style->visibility() != VISIBLE) This should be: !style || style->visibility() != VISIBLE But I don't don't see when we'd call this and have a LayoutObject that haven't had it's ComputedStyle attached yet, so using styleRef() here and removing the null-check should be ok.
Description was changed from ========== If children of <clipPath> element is invisible, don't clip non-resource element When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> element that is <use> is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> element that is <use> is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. When children of <clipPath> element is invisible except <use> element, can't clip non-resource element. Because contain children that is invisible on clip-path except <use> element on the clip boundaries. And if the referenced element instead specifies 'visibility:visible' on‘use’element, then that element will be visible even if the‘use’ element specifies 'visibility:hidden'.[1] Because clip the boundary of referenced element specifies 'visibility:visible' event if the use’element specifies 'visibility:hidden'. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, don't clip the non-resource element. Because after check the child of <use> element whether visible or not, clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, don't clip the non-resource element. Because after check the child of <use> element whether visible or not, clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, don't clip the non-resource element. Because after check the child of <use> element whether visible or not, clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
fs, Could you give me feedback and advice? Thank you. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element-expected.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element-expected.html:1: <!DOCTYPE HTML> On 2016/04/19 10:17:27, fs wrote: > This could just be a green 100x100 <div>. No need to have an SVG: > > <!DOCTYPE html> > <div style="width: 100px; height: 100px; background-color: green"></div> Done. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element.html:2: <div style="visibility: hidden;"> On 2016/04/19 10:17:27, fs wrote: > Having this <div> wrapper doesn't seem relevant for this test. You could as well > specify visibility on the <svg> or the <defs>. (The visibility on the clipped > <rect> isn't relevant to this test either, because if it was 'hidden', that > <rect> would not be rendered.) Done. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-geometry-element.html:6: <rect x="0" y="0" width="400" height="300"></rect> Remove this test. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html:1: <!DOCTYPE HTML> On 2016/04/19 10:17:27, fs wrote: > Same as the other ref. Done. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:1: <!DOCTYPE HTML> On 2016/04/19 10:17:27, fs wrote: > Same comments on this test as the one above. Done. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:89: if (!style || style->display() == NONE) So Just check child of <use> element whether visible or not. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:183: bool isUseElement = isSVGUseElement(*childElement); Added a test and fixed it. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:224: if (!style || style->display() == NONE) On 2016/04/19 10:17:27, fs wrote: > Same comment here as in calculateClipContentPathIfNeeded(). Done. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/svg/SVGUseElement.cpp (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:483: Node* n = userAgentShadowRoot()->firstChild(); Merged this function. But occurred to console error on a test called 'clip-path-referencing-use2-expected.txt'. Because There is a code to print document error on targetGraphicsElementForClipping(). Such as, if (!isDirectReference(element)) { // Spec: Indirect references are an error (14.3.5) document().accessSVGExtensions().reportError("Not allowed to use indirect reference in <clip-path>"); return nullptr; } https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:505: const ComputedStyle* style = element->layoutObject() ? element->layoutObject()->style() : nullptr; On 2016/04/19 10:17:27, fs wrote: > element->layoutObject() has already been null-checked here (just above.) Done. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:506: if (style && style->visibility() != VISIBLE) On 2016/04/19 10:17:27, fs wrote: > This should be: !style || style->visibility() != VISIBLE > > But I don't don't see when we'd call this and have a LayoutObject that haven't > had it's ComputedStyle attached yet, so using styleRef() here and removing the > null-check should be ok. Done.
Please work in the subject/description/commit message. It'd seem like a good thing to have 'visibility' and 'hidden' included since that's what this CL is about. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/svg/SVGUseElement.cpp (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:483: Node* n = userAgentShadowRoot()->firstChild(); On 2016/04/27 at 12:18:40, hyunjunekim2 wrote: > Merged this function. But occurred to console error on a test called > 'clip-path-referencing-use2-expected.txt'. > Because There is a code to print document error on targetGraphicsElementForClipping(). > Such as, > if (!isDirectReference(element)) { > // Spec: Indirect references are an error (14.3.5) > document().accessSVGExtensions().reportError("Not allowed to use indirect reference in <clip-path>"); > return nullptr; > } Personally I'd be fine with just removing this reportError() call - it seems more likely to result in log spam than in any help to the author. We definitely don't want to emit this error several times per resource-layout... If removing this reportError() result in lots of baselines to update, then we should do it as a separate CL I think. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html:1: <!DOCTYPE HTML> Peefer lowercase 'html' here. Same on the other ref. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:3: <defs visibility="hidden"> I think it'd be more obvious to just specify this on the <clipPath> directly. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:4: <rect id="rect" x="0" y="0" width="400" height="300" visibility="visible"></rect> Drop x=0 and y=0. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:9: <rect x="0" y="0" width="100" height="100" fill="green" visibility="visible" clip-path="url(#clip)"></rect> No need for the 'visibility' here. Also, drop x=0 and y=0 and switch the dimension between the rects so that this one is larger than the clip. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:1: <!DOCTYPE HTML> You should probably include "hidden" and/or "visibility" in the filename. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:3: <defs visibility="hidden"> To avoid all the visibility=... you could have two <defs> - one with visibility=hidden and one "plain" (and hence with visibility=visible since it's the default.) Or just remove all the visiblity=... except the one on the <use>. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:4: <rect id="rect" x="0" y="0" width="100" height="100" visibility="visible"></rect> x="0" y="0" is the default, so drop. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:6: <rect x="0" y="0" width="100" height="100" visibility="visible"/> Ditto. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:12: <rect y="0" x="0" height="100" width="100" fill="green" clip-path="url(#clip0)"/> Ditto. Also, make this <rect> larger than the clip. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:226: if (isSVGUseElement(childElement) && !toSVGUseElement(*childElement).visibleTargetGraphicsElementForClipping()) *childElement https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/svg/SVGUseElement.cpp (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:487: if (!element || !element->layoutObject()) You should move the second part of this condition into visibleTargetGraphicsElementForClipping too - it's already there, so this will be redundant.
On 2016/04/27 at 14:14:40, fs wrote: ... > https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... > third_party/WebKit/Source/core/svg/SVGUseElement.cpp:483: Node* n = userAgentShadowRoot()->firstChild(); > On 2016/04/27 at 12:18:40, hyunjunekim2 wrote: > > Merged this function. But occurred to console error on a test called > > 'clip-path-referencing-use2-expected.txt'. I think the more interesting bit to "explain" about the change to this test is the "50x50" -> "0x0" change.
Description was changed from ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. If <use> element that is child of <clipPath> element is hidden and child of it is visible, don't clip the non-resource element. Because after check the child of <use> element whether visible or not, clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. (... ...) BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If children of <clipPath> that is <use> is invisible, don't clip non-resource element. (... ...) BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> referred by <clipPath> is hidden and the child of it is visible, should clip the non-resource. (... ...) BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> referred by <clipPath> is hidden and the child of it is visible, should clip the non-resource. (... ...) BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. (... ...) BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. (... ...) BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change about clip-boundaries. Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change about clip-boundaries. Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change about clip-boundaries. Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change about clip-boundaries. Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change about clip-boundaries. Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change about clip-boundaries. Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change . Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change . Because if it's not clipping target, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change . Because if <use> element is not clipping target, don't contain clip Boundaries on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change . Because if <use> element is not clipping target, don't contain clip Boundaries on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change . Because if the clipping target don't need clipping, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change . Because if the clipping target don't need clipping, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target don't need clipping, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target don't need clipping, don't contain clip Boundaries about <use> element on |LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect|. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target don't need clipping, don't contain clip Boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Could you check PS19? Thank you. https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/svg/SVGUseElement.cpp (right): https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:483: Node* n = userAgentShadowRoot()->firstChild(); Done. Remove it. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element-expected.html:1: <!DOCTYPE HTML> On 2016/04/27 14:14:39, fs wrote: > Peefer lowercase 'html' here. Same on the other ref. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:3: <defs visibility="hidden"> On 2016/04/27 14:14:39, fs wrote: > I think it'd be more obvious to just specify this on the <clipPath> directly. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:4: <rect id="rect" x="0" y="0" width="400" height="300" visibility="visible"></rect> On 2016/04/27 14:14:39, fs wrote: > Drop x=0 and y=0. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/invisible-clip-path-as-use-element.html:9: <rect x="0" y="0" width="100" height="100" fill="green" visibility="visible" clip-path="url(#clip)"></rect> On 2016/04/27 14:14:39, fs wrote: > No need for the 'visibility' here. Also, drop x=0 and y=0 and switch the > dimension between the rects so that this one is larger than the clip. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:1: <!DOCTYPE HTML> Done. Changed file name. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:3: <defs visibility="hidden"> On 2016/04/27 14:14:39, fs wrote: > To avoid all the visibility=... you could have two <defs> - one with > visibility=hidden and one "plain" (and hence with visibility=visible since it's > the default.) Or just remove all the visiblity=... except the one on the <use>. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:4: <rect id="rect" x="0" y="0" width="100" height="100" visibility="visible"></rect> On 2016/04/27 14:14:39, fs wrote: > x="0" y="0" is the default, so drop. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:6: <rect x="0" y="0" width="100" height="100" visibility="visible"/> On 2016/04/27 14:14:39, fs wrote: > Ditto. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/nested-clip-path-as-use-element.html:12: <rect y="0" x="0" height="100" width="100" fill="green" clip-path="url(#clip0)"/> On 2016/04/27 14:14:39, fs wrote: > Ditto. > > Also, make this <rect> larger than the clip. Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp:226: if (isSVGUseElement(childElement) && !toSVGUseElement(*childElement).visibleTargetGraphicsElementForClipping()) On 2016/04/27 14:14:39, fs wrote: > *childElement Done. https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... File third_party/WebKit/Source/core/svg/SVGUseElement.cpp (right): https://codereview.chromium.org/1839973003/diff/280001/third_party/WebKit/Sou... third_party/WebKit/Source/core/svg/SVGUseElement.cpp:487: if (!element || !element->layoutObject()) Done. Moved to visibleTargetGraphicsElementForClipping function.
On 2016/04/27 14:16:13, fs wrote: > On 2016/04/27 at 14:14:40, fs wrote: > ... > > > https://codereview.chromium.org/1839973003/diff/160001/third_party/WebKit/Sou... > > third_party/WebKit/Source/core/svg/SVGUseElement.cpp:483: Node* n = > userAgentShadowRoot()->firstChild(); > > On 2016/04/27 at 12:18:40, hyunjunekim2 wrote: > > > Merged this function. But occurred to console error on a test called > > > 'clip-path-referencing-use2-expected.txt'. > > I think the more interesting bit to "explain" about the change to this test is > the "50x50" -> "0x0" change. I expect "0x0". Because don't contain this boundary on LayoutSVGResourceClipper::calculateClipContentPaintInvalidationRect.
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target don't need clipping, don't contain clip Boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, don't contain clip Boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, don't contain clip Boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip Boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip Boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundaries about <use> element on calculateClipContentPaintInvalidationRect function. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundaries about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundaries about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 [1] https://www.w3.org/TR/SVG/struct.html#UseElement ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ==========
LGTM w/ nit https://codereview.chromium.org/1839973003/diff/360001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/visible-nested-clip-path-as-hidden-use-element.html (right): https://codereview.chromium.org/1839973003/diff/360001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/visible-nested-clip-path-as-hidden-use-element.html:4: <rect id="rect" x="0" y="0" width="100" height="100" visibility="visible"/> Nit: Remove x=0 y=0
Done. https://codereview.chromium.org/1839973003/diff/360001/third_party/WebKit/Lay... File third_party/WebKit/LayoutTests/svg/clip-path/visible-nested-clip-path-as-hidden-use-element.html (right): https://codereview.chromium.org/1839973003/diff/360001/third_party/WebKit/Lay... third_party/WebKit/LayoutTests/svg/clip-path/visible-nested-clip-path-as-hidden-use-element.html:4: <rect id="rect" x="0" y="0" width="100" height="100" visibility="visible"/> On 2016/04/29 13:36:13, fs wrote: > Nit: Remove x=0 y=0 Done.
fs, Go ahead. Thank you.
The CQ bit was checked by hyunjune.kim@samsung.com
The patchset sent to the CQ was uploaded after l-g-t-m from fs@opera.com Link to the patchset: https://codereview.chromium.org/1839973003/#ps380001 (title: " ")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1839973003/380001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1839973003/380001
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ==========
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check the child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ==========
Message was sent while issue was closed.
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check the child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check the child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ==========
Message was sent while issue was closed.
Committed patchset #20 (id:380001)
Message was sent while issue was closed.
Patchset 20 (id:??) landed as https://crrev.com/53cbed151cea16f4d27cc887a272d9e672c41b75 Cr-Commit-Position: refs/heads/master@{#390669}
Message was sent while issue was closed.
Description was changed from ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check the child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 ========== to ========== If the <use> is hidden and the child of it is visible, should clip the non-resource. If <use> element that is child of <clipPath> element is hidden and the child of it is visible, should clip the non-resource element. Because check the child of <use> element whether is visible or not. If it is visible, contains on clip boundaries. There is the change one more on this test named 'clip-path-referencing-use2.svg' is "50x50" -> "0x0" change. Because if the clipping target doesn't need clipping, doesn't contain clip boundary about <use> element on calculateClipContentPaintInvalidationRect function. And remove reportError() to print error info for <clipPath> usage on SVGUseElement. BUG=590153 Committed: https://crrev.com/53cbed151cea16f4d27cc887a272d9e672c41b75 Cr-Commit-Position: refs/heads/master@{#390669} ========== |