From 5784209c45fc4874876eba7ab04e74fc72b972b3 Mon Sep 17 00:00:00 2001 From: "zimmermann@webkit.org" Date: Wed, 18 Jan 2012 08:45:17 +0000 Subject: [PATCH] RenderSVGRoot should inherit from RenderReplaced https://bugs.webkit.org/show_bug.cgi?id=76446 Reviewed by Zoltan Herczeg. Source/WebCore: Let RenderSVGRoot inherit from RenderReplaced, instead of faking RenderReplaced, by inherting from RenderBox and calling setReplaced(true) in the constructor. The outermost element is a replaced element in the sense of CSS, and thus this is just a logical move. It fixes some issues where the root appeared as selection leaf, covered by existing tests. It allows us to simplify the painting, as outlines, etc. are painted by RenderReplaced now. While I was it, speed up the local to border box computations by caching the result. * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::paint): * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::RenderSVGRoot): (WebCore::RenderSVGRoot::layout): (WebCore::RenderSVGRoot::paintReplaced): (WebCore::RenderSVGRoot::willBeDestroyed): (WebCore::RenderSVGRoot::styleWillChange): (WebCore::RenderSVGRoot::styleDidChange): (WebCore::RenderSVGRoot::updateFromElement): (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform): (WebCore::RenderSVGRoot::localToParentTransform): (WebCore::RenderSVGRoot::computeFloatRectForRepaint): (WebCore::RenderSVGRoot::mapLocalToContainer): (WebCore::RenderSVGRoot::nodeAtPoint): * rendering/svg/RenderSVGRoot.h: (WebCore::RenderSVGRoot::canHaveChildren): (WebCore::RenderSVGRoot::canBeSelectionLeaf): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::setupInitialView): LayoutTests: Update test results after making RenderSVGRoot inherit from RenderReplaced. * platform/chromium/test_expectations.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Text layout changed, we didn't relayout the tree when entering a new view before. * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Ditto. * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.png: Ditto. * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt: Ditto. * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.png: Ditto. * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-container-expected.png: Moving the circle, triggered a selection before, where it shouldn't. It's gone now. * platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.png: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-root-expected.png: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.png: Ditto. * platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt: Ditto. * platform/mac/svg/custom/pointer-events-image-css-transform-expected.png: Caret position which is reported changed, due the selection leaf changes. * platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt: Ditto. * platform/mac/svg/custom/pointer-events-image-expected.png: Ditto. * platform/mac/svg/custom/pointer-events-image-expected.txt: Ditto. * platform/mac/svg/custom/pointer-events-text-css-transform-expected.png: Ditto. * platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt: Ditto. * platform/mac/svg/custom/pointer-events-text-expected.png: Ditto. * platform/mac/svg/custom/pointer-events-text-expected.txt: Ditto. * platform/mac/svg/foreignObject/text-tref-02-b-expected.png: This now reports a valid size for the RenderSVGRoot in the subtree. * svg/foreignObject/text-tref-02-b-expected.txt: Ditto. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105247 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 35 +++++++ .../platform/chromium/test_expectations.txt | 21 ++++ .../mac/svg/custom/linking-a-03-b-all-expected.png | Bin 26159 -> 25474 bytes .../mac/svg/custom/linking-a-03-b-all-expected.txt | 24 ++--- .../svg/custom/linking-a-03-b-viewBox-expected.png | Bin 22775 -> 22016 bytes .../svg/custom/linking-a-03-b-viewBox-expected.txt | 24 ++--- .../linking-a-03-b-viewBox-transform-expected.png | Bin 26159 -> 25474 bytes .../linking-a-03-b-viewBox-transform-expected.txt | 24 ++--- .../mouse-move-on-svg-container-expected.png | Bin 19697 -> 17489 bytes .../mouse-move-on-svg-container-expected.txt | 3 +- ...e-move-on-svg-container-standalone-expected.png | Bin 19697 -> 17489 bytes ...e-move-on-svg-container-standalone-expected.txt | 3 +- .../svg/custom/mouse-move-on-svg-root-expected.png | Bin 18025 -> 16600 bytes .../svg/custom/mouse-move-on-svg-root-expected.txt | 3 +- .../mouse-move-on-svg-root-standalone-expected.png | Bin 18025 -> 16600 bytes .../mouse-move-on-svg-root-standalone-expected.txt | 3 +- ...pointer-events-image-css-transform-expected.png | Bin 88706 -> 87896 bytes ...pointer-events-image-css-transform-expected.txt | 2 +- .../svg/custom/pointer-events-image-expected.png | Bin 88706 -> 87896 bytes .../svg/custom/pointer-events-image-expected.txt | 2 +- .../pointer-events-text-css-transform-expected.png | Bin 58789 -> 57979 bytes .../pointer-events-text-css-transform-expected.txt | 2 +- .../svg/custom/pointer-events-text-expected.png | Bin 62899 -> 62089 bytes .../svg/custom/pointer-events-text-expected.txt | 2 +- .../svg/foreignObject/text-tref-02-b-expected.png | Bin 32264 -> 31454 bytes .../svg/foreignObject/text-tref-02-b-expected.txt | 2 +- Source/WebCore/ChangeLog | 36 +++++++ Source/WebCore/rendering/RenderReplaced.cpp | 2 +- Source/WebCore/rendering/svg/RenderSVGRoot.cpp | 114 +++++++-------------- Source/WebCore/rendering/svg/RenderSVGRoot.h | 17 ++- Source/WebCore/svg/SVGSVGElement.cpp | 33 +++--- 31 files changed, 196 insertions(+), 156 deletions(-) diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index 6dcb026..dc1b966 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,38 @@ +2012-01-17 Nikolas Zimmermann + + RenderSVGRoot should inherit from RenderReplaced + https://bugs.webkit.org/show_bug.cgi?id=76446 + + Reviewed by Zoltan Herczeg. + + Update test results after making RenderSVGRoot inherit from RenderReplaced. + + * platform/chromium/test_expectations.txt: + * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Text layout changed, we didn't relayout the tree when entering a new view before. + * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Ditto. + * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.png: Ditto. + * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt: Ditto. + * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.png: Ditto. + * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-container-expected.png: Moving the circle, triggered a selection before, where it shouldn't. It's gone now. + * platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.png: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-root-expected.png: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.png: Ditto. + * platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt: Ditto. + * platform/mac/svg/custom/pointer-events-image-css-transform-expected.png: Caret position which is reported changed, due the selection leaf changes. + * platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt: Ditto. + * platform/mac/svg/custom/pointer-events-image-expected.png: Ditto. + * platform/mac/svg/custom/pointer-events-image-expected.txt: Ditto. + * platform/mac/svg/custom/pointer-events-text-css-transform-expected.png: Ditto. + * platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt: Ditto. + * platform/mac/svg/custom/pointer-events-text-expected.png: Ditto. + * platform/mac/svg/custom/pointer-events-text-expected.txt: Ditto. + * platform/mac/svg/foreignObject/text-tref-02-b-expected.png: This now reports a valid size for the RenderSVGRoot in the subtree. + * svg/foreignObject/text-tref-02-b-expected.txt: Ditto. + 2012-01-17 Sheriff Bot Unreviewed, rolling out r105244. diff --git a/LayoutTests/platform/chromium/test_expectations.txt b/LayoutTests/platform/chromium/test_expectations.txt index f087272..ac33851 100644 --- a/LayoutTests/platform/chromium/test_expectations.txt +++ b/LayoutTests/platform/chromium/test_expectations.txt @@ -3878,3 +3878,24 @@ BUGWK65711 : svg/text/append-text-node-to-tspan.html = IMAGE+TEXT IMAGE // Uint8ClampedArray still not implemented. BUGWK74455 : fast/js/dfg-uint8clampedarray.html = TEXT + +// Text layout should have changed, kerning should look more natural. We previously didn't relayout +// the text when moving to a new view target, and thus didn't update the scaledFont. +BUGWK76446 : svg/custom/linking-a-03-b-all.svg = IMAGE+TEXT +BUGWK76446 : svg/custom/linking-a-03-b-viewBox-transform.svg = IMAGE+TEXT +BUGWK76446 : svg/custom/linking-a-03-b-viewBox.svg = IMAGE+TEXT + +// Selection should have disappeared, a side-effect of moving RenderSVGRoot to RenderReplaced (a progression!) +BUGWK76446 : svg/custom/mouse-move-on-svg-container-standalone.svg = IMAGE+TEXT +BUGWK76446 : svg/custom/mouse-move-on-svg-container.xhtml = IMAGE+TEXT +BUGWK76446 : svg/custom/mouse-move-on-svg-root-standalone.svg = IMAGE+TEXT +BUGWK76446 : svg/custom/mouse-move-on-svg-root.xhtml = IMAGE+TEXT + +// Caret position reported differently, should start at 0 instead of 18. +BUGWK76446 : svg/custom/pointer-events-image-css-transform.svg = TEXT +BUGWK76446 : svg/custom/pointer-events-image.svg = TEXT +BUGWK76446 : svg/custom/pointer-events-text-css-transform.svg = TEXT +BUGWK76446 : svg/custom/pointer-events-text.svg = TEXT + +// RenderSVGRoot now reports a correct size. +BUGWK76646 : svg/foreignObject/text-tref-02-b.svg = TEXT diff --git a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-all-expected.png b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-all-expected.png index ca3bff97e823740e2eba56a8d71359902a97b611..10f7e2076ecb2925a2ac22191a01705acb6f1af5 100644 GIT binary patch literal 25474 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 Bvikr4 diff --git a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-all-expected.txt b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-all-expected.txt index be3ad61..8ea7456 100644 --- a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-all-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-all-expected.txt @@ -3,21 +3,21 @@ layer at (0,0) size 800x600 layer at (0,0) size 480x360 RenderSVGRoot {svg} at (0,0) size 480x360 RenderSVGContainer {g} at (0,0) size 480x360 - RenderSVGText {text} at (100,9) size 184x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 184x14 - chunk 1 text run 1 at (100.00,20.00) startOffset 0 endOffset 41 width 184.00: "Some circles with ids, for linking tests." + RenderSVGText {text} at (100,9) size 188x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 188x14 + chunk 1 text run 1 at (100.00,20.00) startOffset 0 endOffset 41 width 188.00: "Some circles with ids, for linking tests." RenderSVGPath {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=220.00] [cy=140.00] [r=35.00] - RenderSVGText {text} at (203,87) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (203.00,99.00) startOffset 0 endOffset 8 width 40.00: "circle-1" + RenderSVGText {text} at (203,87) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (203.00,99.00) startOffset 0 endOffset 8 width 38.40: "circle-1" RenderSVGPath {circle} at (5,84) size 239x239 [stroke={[type=SOLID] [color=#00FF00] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=100.00] [cy=260.00] [r=20.00] - RenderSVGText {text} at (80,283) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (80.00,295.00) startOffset 0 endOffset 8 width 40.00: "circle-2" + RenderSVGText {text} at (80,283) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (80.00,295.00) startOffset 0 endOffset 8 width 38.40: "circle-2" RenderSVGRect {rect} at (0,20) size 322x340 [stroke={[type=SOLID] [color=#000000]}] [x=64.00] [y=227.00] [width=72.00] [height=72.00] RenderSVGPath {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF] [stroke width=10.00]}] [cx=340.00] [cy=260.00] [r=50.00] - RenderSVGText {text} at (320,320) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (320.00,332.00) startOffset 0 endOffset 8 width 40.00: "circle-3" + RenderSVGText {text} at (320,320) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (320.00,332.00) startOffset 0 endOffset 8 width 38.40: "circle-3" RenderSVGContainer {g} at (0,0) size 480x360 RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00] diff --git a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.png b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.png index 4ce10e18f73b7d579cdc27e47d214015877d045f..706125c5d9a8934d2be9b253e39fee6d9b815627 100644 GIT binary patch literal 22016 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 diff --git a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt index f52265f..1301509 100644 --- a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt @@ -3,21 +3,21 @@ layer at (0,0) size 800x600 layer at (0,0) size 480x360 RenderSVGRoot {svg} at (0,0) size 480x360 RenderSVGContainer {g} at (57,0) size 423x360 - RenderSVGText {text} at (100,9) size 184x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 184x14 - chunk 1 text run 1 at (100.00,20.00) startOffset 0 endOffset 41 width 184.00: "Some circles with ids, for linking tests." + RenderSVGText {text} at (100,9) size 188x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 188x14 + chunk 1 text run 1 at (100.00,20.00) startOffset 0 endOffset 41 width 188.00: "Some circles with ids, for linking tests." RenderSVGPath {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=220.00] [cy=140.00] [r=35.00] - RenderSVGText {text} at (203,87) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (203.00,99.00) startOffset 0 endOffset 8 width 40.00: "circle-1" + RenderSVGText {text} at (203,87) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (203.00,99.00) startOffset 0 endOffset 8 width 38.40: "circle-1" RenderSVGPath {circle} at (130,55) size 220x220 [stroke={[type=SOLID] [color=#00FF00] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=100.00] [cy=260.00] [r=20.00] - RenderSVGText {text} at (80,283) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (80.00,295.00) startOffset 0 endOffset 8 width 40.00: "circle-2" + RenderSVGText {text} at (80,283) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (80.00,295.00) startOffset 0 endOffset 8 width 38.40: "circle-2" RenderSVGRect {rect} at (57,0) size 366x360 [stroke={[type=SOLID] [color=#000000]}] [x=64.00] [y=227.00] [width=72.00] [height=72.00] RenderSVGPath {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF] [stroke width=10.00]}] [cx=340.00] [cy=260.00] [r=50.00] - RenderSVGText {text} at (320,320) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (320.00,332.00) startOffset 0 endOffset 8 width 40.00: "circle-3" + RenderSVGText {text} at (320,320) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (320.00,332.00) startOffset 0 endOffset 8 width 38.40: "circle-3" RenderSVGContainer {g} at (0,0) size 480x360 RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00] diff --git a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.png b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.png index ca3bff97e823740e2eba56a8d71359902a97b611..10f7e2076ecb2925a2ac22191a01705acb6f1af5 100644 GIT binary patch literal 25474 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 Bvikr4 diff --git a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt index be3ad61..8ea7456 100644 --- a/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt @@ -3,21 +3,21 @@ layer at (0,0) size 800x600 layer at (0,0) size 480x360 RenderSVGRoot {svg} at (0,0) size 480x360 RenderSVGContainer {g} at (0,0) size 480x360 - RenderSVGText {text} at (100,9) size 184x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 184x14 - chunk 1 text run 1 at (100.00,20.00) startOffset 0 endOffset 41 width 184.00: "Some circles with ids, for linking tests." + RenderSVGText {text} at (100,9) size 188x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 188x14 + chunk 1 text run 1 at (100.00,20.00) startOffset 0 endOffset 41 width 188.00: "Some circles with ids, for linking tests." RenderSVGPath {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FF0000]}] [cx=220.00] [cy=140.00] [r=35.00] - RenderSVGText {text} at (203,87) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (203.00,99.00) startOffset 0 endOffset 8 width 40.00: "circle-1" + RenderSVGText {text} at (203,87) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (203.00,99.00) startOffset 0 endOffset 8 width 38.40: "circle-1" RenderSVGPath {circle} at (5,84) size 239x239 [stroke={[type=SOLID] [color=#00FF00] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FFFF00]}] [cx=100.00] [cy=260.00] [r=20.00] - RenderSVGText {text} at (80,283) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (80.00,295.00) startOffset 0 endOffset 8 width 40.00: "circle-2" + RenderSVGText {text} at (80,283) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (80.00,295.00) startOffset 0 endOffset 8 width 38.40: "circle-2" RenderSVGRect {rect} at (0,20) size 322x340 [stroke={[type=SOLID] [color=#000000]}] [x=64.00] [y=227.00] [width=72.00] [height=72.00] RenderSVGPath {circle} at (0,0) size 0x0 [stroke={[type=SOLID] [color=#0000FF] [stroke width=10.00]}] [cx=340.00] [cy=260.00] [r=50.00] - RenderSVGText {text} at (320,320) size 40x14 contains 1 chunk(s) - RenderSVGInlineText {#text} at (0,0) size 40x14 - chunk 1 text run 1 at (320.00,332.00) startOffset 0 endOffset 8 width 40.00: "circle-3" + RenderSVGText {text} at (320,320) size 39x14 contains 1 chunk(s) + RenderSVGInlineText {#text} at (0,0) size 39x14 + chunk 1 text run 1 at (320.00,332.00) startOffset 0 endOffset 8 width 38.40: "circle-3" RenderSVGContainer {g} at (0,0) size 480x360 RenderSVGRect {rect} at (0,0) size 480x360 [stroke={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=478.00] [height=358.00] diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.png b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.png index 18c26ce3fc9dd673ea6b7c53f536a70e1780d0dc..9e853892ea0a344f4130d25aa9a104547c7c42a1 100644 GIT binary patch literal 17489 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 T2mB2)n(J5eFBe_9{owxqSXyad diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt index 4bdf67c..47273b9 100644 --- a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt @@ -11,5 +11,4 @@ layer at (0,0) size 800x410 chunk 1 (middle anchor) text run 1 at (48.50,50.00) startOffset 0 endOffset 49 width 303.00: "The circle should stay in the bottom-right corner" RenderText {#text} at (0,0) size 0x0 RenderText {#text} at (0,0) size 0x0 -selection start: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of body -selection end: position 24 of child 0 {#text} of child 3 {text} of child 1 {svg} of body +caret: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of body diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.png b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.png index 18c26ce3fc9dd673ea6b7c53f536a70e1780d0dc..9e853892ea0a344f4130d25aa9a104547c7c42a1 100644 GIT binary patch literal 17489 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 T2mB2)n(J5eFBe_9{owxqSXyad diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt index 5acbadf..245767b 100644 --- a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt @@ -7,5 +7,4 @@ layer at (0,0) size 406x406 RenderSVGText {text} at (48,36) size 303x18 contains 1 chunk(s) RenderSVGInlineText {#text} at (0,0) size 303x18 chunk 1 (middle anchor) text run 1 at (48.50,50.00) startOffset 0 endOffset 49 width 303.00: "The circle should stay in the bottom-right corner" -selection start: position 0 of child 0 {#text} of child 3 {text} of child 0 {svg} of document -selection end: position 24 of child 0 {#text} of child 3 {text} of child 0 {svg} of document +caret: position 0 of child 0 {#text} of child 3 {text} of child 0 {svg} of document diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.png b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.png index b0e1396add88997f9a1f5631aef9b9d2a3ee83b6..65225e6806f7f9356cd2d9df386d6c8a5bc419a9 100644 GIT binary patch literal 16600 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 kea8O`a$5b^p#jZ+-uN03yH74*&oF literal 18025 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 diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt index b19efde..e8ff39d 100644 --- a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt @@ -10,5 +10,4 @@ layer at (0,0) size 800x410 chunk 1 (middle anchor) text run 1 at (93.00,50.00) startOffset 0 endOffset 34 width 214.00: "The circle should be in the middle" RenderText {#text} at (0,0) size 0x0 RenderText {#text} at (0,0) size 0x0 -selection start: position 16 of child 0 {#text} of child 3 {text} of child 1 {svg} of body -selection end: position 34 of child 0 {#text} of child 3 {text} of child 1 {svg} of body +caret: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of body diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.png b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.png index b0e1396add88997f9a1f5631aef9b9d2a3ee83b6..65225e6806f7f9356cd2d9df386d6c8a5bc419a9 100644 GIT binary patch literal 16600 zcmeHvc{tQv{5De_B2q$Gr&Ll|B1@JT<&jD#vSb&PHDqTNDpW)(*-|O{zHc*Rn@ULb zZ3Yv%bWp?XQVg`Gop=tD*l*#pLVJ!lhd-pqWq;`LJ z6u5JT#D$T(`|m4vTfbTB!8MQEYr=YnuD*>yHjm}LQ1Q5Zdxk)#UXUZGcr<_KI5eLQ zSAgtf50{@@&BRJT$P1^R-|0$OOqC5sXTGVWa4NnV%Zq3%tloBImiK1)1 zv%)-!rEB!n+7c`!t1e5fPp!*I^!i+9mRT*O%PR2{taGs-k#@>&)${I~thKtb(cZhm z2x872(?)351+BMy1ayUcPZ8*nb#8gJTq+L<%L#;C ziA#0jHTC>fLNGcxGSrIxPxR0&>3|!)H9T*BTr5JbEuuxSbV^Q(eKrA%&3@1xE)wti zW8FGEzi$Q;Z=I`X3w@chzh3HbMf!cWE%xiX;@#W;Z}yqNEQUy=%1`-VC4O6&Qn=SG{f@rqrXr}sQH?Q5*s(k89eC|0#vuz#M1B}=WTIJIf_q0EBj^c*y>hCRbLhszZ~6r7ywTRADBNKRJ7NKl&y zR2|<&GyFdKWEI`X%qO4@t3-&Ecbb^xqve#1#^&{MVq*~x0v)TF}OMQP-f!33Pct5m6jtngIAr!Y}*YDU#cM)}9bPLEYs%ecxhBEJ1r23g2{4f7+LNuUm;rLh=4d`&+g_(d3xp(uj4{t<49_KD zvsQHc)tW!EiuSJ#^H+6e;Pb`}-={?TBM?8})LQs_l$3=j9Hs1KScRD}ly;oN)mNqS z4`3#OJ&?%!A{@oY=F{R=Jybr{HNHTZ>yyv-)4297qE#fCN(?~Ly3lIgYWRhJqN@<3 zm8Do>vu}VG^>1W=5FAEd1O5=Cs3;2MU zm9neC-1yZb_(~G~3GYdNLu=B2-&jJCJ9X{lQe|9el*tch*SV6&nKn;H(ONf~=AA2R z5p{_hWI-k-&__KTEvemWxm3d+A{MDCdtG|A7Qi4WPfpHI8e5x#qGZf|l156@5oTxd z8>J4t4N7G{S(R7m>-;qmHJ>zFn4*@2&0?3Q8(kq8cADiHUeJ#qe{c!yYBBAI2mn9Dp;dY(&# zl&kf9e@l4>VOWSb_E;KE@>l543PKtaHwyG0FQ_1gFn*5h$L*eF$yqR$P zQfxzx8cKB{FB0jD48O95rBN)rIt;z6Cub7BwH)Xj4kHbC_qmX!$tEG>xyS*T=^6kW z%HCOPdyAL$mU&Hf>Xa$E2R^3rS?L;DCBjLyKsFvDe%5@$xd0+q*dgQ&oGTq zs7R_R`5#ZG#3kRZUF(!AXo!ssTI=2dn_Q#MtaZ-t)wTTE)0-Yic{qcd33xCaRf$xN zOw_e-uPJDOsnq%093D5b^?f9LndmP5(xpSoy~d?vfG<6gDR{t#fWbOZ$c4(!>iUu^ zXw)(I9r^$5|d$5l;)PClz24a6fWW|bmqb&{yZHq@tX)ZhAu zy`qtOAKj^&5FKkpU!g94Gseo2D(9LhElcj{zVUynid|RDFzO!`A}3kU4Bj^wR4j}E zX5x>a;$P6U9wr+Y@75bjM5E$Az$k8BSCJ;g&NtSftH84UYWv!B*izuqC$Em6xuLQa z5)1NDR-1RnyD7D{bs z`Q1(!c2{VXK)rHO{)-JKO#6$Ldtljh^VXB78$6%k(+MpSc^w3)ru~pOBZGYTtj-M7$@+R z7_&Ud%TM3Y7|?;Um?$`8C>;_&CSC9NJcOB8mGHL$m^HCVYpkMb=O~w!izF!@`{47L zg+E*kH5@#V@Z6GOAxc4JxLN`<@1Cr{d*d7}IvkuP<&+F@sCFm+xi~_9hUJ%q&fs6*pY<&q}(~f6ylVjbQEq{&hWuwy5Y05$y8m}z6|{P ziF&!H`hu&5tbtv3`UT>w`-2y;iy$) zV4mPIof}an{(8`mI59<5N;rpW4j0Y%+WQv+gAfDcd+Q}c31w*zT_X}+gj$#%2Kf?1 z08$XuRwu$JtvAVmOtLyMJ^+c;Ls^7&{2UrJQ~sk7lYvG}u5Z%%BS>q3Mh%T~9siHA z)+jl=3McQA?MjbpK540JN@y``mxDZZ6Qe z+XiiWXgwkAw{vK_%C^qn-fiR1HZcAN7=xzb-u^)Byl`%CA;5JHymBgZD7G(Wm*8|i zw}LaC`z~gzGj|-TV>1`kWYd^a{E)R6b~U=ZmMUCxe~SNMFb7|VrivuHw$BX#qf_R4 zjY!zTLb*$UZi6p&)D9=`N7m%GZ!j%3?gM^7eulvq)N2gByPhru-&J^iu)(VT0JfZ- zF_fQZ&L>6i_3QTSYRH^4E$+*AtIHRwdEOYg8<(kiEEDnlTP9I3ygHTRdmR7T*=5Qo z;RW_#BBL$lN`m7ivl9zN=Lf$fS{;NTr&4Oi(DTc=sJWF3U4@QA>2CcmBROz0XoQky zj)q`DpWV)oL(st88UyiQ{BdxcCQ;y;uFF;zc@+tyZAd|tk9R3OVv=Xk(R&daKoYcE zZ0`zw$#pi3&SqRt5cgDF4)k)l=G%ur?-$&;^O=HYt3XY;&SXst0Vanav5In-72iF0 z={d_B|3hO@>O}77th^27LxctqwZIJ~;}i;J=ESu_OlDCPWfhz|kn z<4dTjl8&bg6x4L$I}dlspz+k%;*=`Mcsi-AHd|%d^q0VXop;jE!1<$8#u-S^IiL%m zhe{&j)e$AOO`1+Ml8gPa_llZ6zQcI;oQ!w>evndeSkA8!$9;eW_;-K#yT1VKc?JCT zs#V<32%<>v^H3TIOL?fRVE*%RWRj5(Z?hlytj+Rtqgfd&%&`P8kZHQ9Fz7({z@h(H z`KR)CAWk_}g1VLg_h?6hJQTjN?G~yc&Gy^2aN?!|NNm@Wc0vsJxz&^Jj=Tl?`(0k` zZNZvLZ{_oKn|wgQWm*1{7F`HK)all_+C(}%6+Ip1RI){RdXEhXKP&bs)SN7vdfQi% zHzq2Wz0|`iY1+{qeXpCy#o?r9A{a%=x0~2=PY56pbpS;LTKurrU2uPgkBXU&8T+Xhey;C=a9U3;~x4yD=>6;EqB4G>G`=tceTn zqwxp_-&S#}{nP$~*>_L*KFR2J2_2|m$*F`2l~KP)z-k8A&YXk>o|$xE9GAQTtnXDn zCaOb(u)H+jfi_;cI4>XaY)xqyUdi)fHZPzQ#M6z|1Xy9vi=FW-86WQ!m3I1m*P?d6 z_JRG>iBM=gZrZbT&+!RFCBRQ7t%UQ;{mckrpid zPQk$%+YJ%V4AI!@#=Ua2TStJU)3U0V-svhJ$G=o_63ZPiu-F~5XYlz>*>fQ|t(7}^zT?df7Tx7xi5i^xr_Vl*n59g6|J^nS+9%I+O|Q4;rsbg*oY95$nza^} z3&WE)PNYD5c0pkG4bMlLUMCJL5`>M`h!bv&Y9)pChP77T-d2zfc4E9Ny1j4~p;qDS z$`XTOCJD|Jnt-lbUx475WA?_eHeDY?uF+vbw#mLPRi*waw|ClC(Z6(OXXTEcF-B&`!NzV&g52RNzW=cHr%w&IX<9Hh-nV^gEH9)e26t&;+@5gAdMNZPY? zlHzHo&NS{gCTP0&8eS!9j>b_qn{LNq)z3sOY=x;hbr%~nsq=YM$K1FRd?26qb%D^r z$o%C`3|v%yrwxiMx?JsH5sI#rC|Z-591bC=?b%p8=o%1l7xGR@ra920J3}dPT_tw% zBa&jhIFasu?K=YO(^oV#YSf&RcI_uI!Y`UTdNSl953-Xv2o<*0<7=t?$~S6R#al80x>*(i2Zl) z81qKi%3KB@aNH|Nv&gyBLnF+{U_pQW1BssYcHOUqIzURAX=&N12`X?v#eP0{$Dj0b zm)E-TWQJT*XCkY<;R!OEDf7~8kpDf;GJkXBw#c~+s_;DlY|E!OLBy{O8K;b)Uo)+= z1RiQXzwt2}^z9Ch!?}Kqqh}9xy=&wD5jGy@w{z1dA7E5}kGKCX$*SI;MLBgXm z&+b5zzMHB`-`25b+L#WS6v*^qZ`;*99H+WbpKFcH1=0g8cfTh5T3;-%dM7ip9pq7l z-%dU$lQ;j{=w64`|7CR4bpDwZ^$RgYftKH6e=u!Ku6}`;`G{EZdl5d9Jh%G)Wwa4V zD)86yc-nFQ(*YV{n*mq`L;?|YK|nlrZJ36$@Nj$$QJ+2&I$T;}%%Pif7%t?ypz8jtSQcL4yF!GJl5pPo1DI)(RhHvyE&J-}Qj zM4fbw6ufyC1(i7gf|Kg`A=pbOkMxKyJ3aI0__-T2eaZFM{k{*-HCSqo!_yZ3nu3rs z1rDnaEh%_Dx>aw(+kw>=0i=qxhIsRlD-Bzm#%kD2J5HaBlt?xGwAmsoxVhEKe~cW; zav!lZ3Nhp`=5+9GyRh25;}3R$jbEF%z~OXu`YW!;&G6Q#$H;?7{i7QufO`5_6ros& zCoaOVLkD%b_^k=ivoAMXa^NTk=d1G88dI);$sf5hBCEx2w~{a)?M0?sHe$jQbd3kp zdzP4F=9rfr(t^WSzE}Gute19;!At~=L4Ju;?4F1CT``dhq2+FZLd!7i85*Ko-X%`)QE4S}aLu>DaP4a%gkQo;k?s&)4q>Iz1pL=07 zg~s51eA#!Gv}6CG#l9WFEEe2$;^lW3t%kWz!|>laO?9 zx3={?@bZ;uq7lQTz9yh;>@h2C4^&44Ax2N%QIIhxNq&@EqgCR6w`e^q@2-Ou-`>n? z?xT8jC6!l;xAK1L2{lvYYILFh2Z4>;f=WUIKf3hGhC;?Fm*R8XKG&R$e=n$^Rcr6C z)lpvosC@M^Evlmou{bgWh@?wTdaRZ1neeEsMxibNT7g7@qfG*!n9ja9Iecr)Yx#nY z_WYdxCdd|D%I#z=fgOlYUHsx!-;!-VG%%w;Nxk zgLT-dMa@_rZ6qlCu zS1Ik9dT~pkC{m@J63hNGlRp!p>AmT)1zTPBGC=stBvTG2e83QXC<9IH$nE2*D01`i zi`wrZMI~}*6z2c?E-!d@%A8{oW;cFl=)SQf^r3T7$!WyjarSoqI_cCPbpAy}*U#RZ za!UFvH4+Z*_n*m2L?;)Q$j5|+7P$z!AVCUzw@%netD9q&Mve*86ERJstSK-eDv zoB8cV92GRH{PtNpj5Qudv_+5{b6*GSHU@k+yQ&AUysIw)BduSzXK{51Sh-ozdmA-W z2b_&dN*C;*2v5pE>w%51CxB?EtoA-JtS_*wpDAB@Sxf)OI~mh_csQ2Wn-sK#Nx|DYtIybNGjuY1J2N1v0nYX;f3&qX8@is6wdgbzviyqociPn=6YT?uG_2$!?xav%xHvpGo z6mh~{Zgu6h32&)+1|MWlI}L>KulEyG`--P(yeSpJDKxx;O`_U@#CtpWeFp$(+I{36 zE2BD=;LOZ*2Jd+xfbDTG=$jjUPxHFy{3HOQpuoU|F8tPfx%2szhzUGUk|l)p_CDTW$l?%%yDhE?Wi#vDis&yk07iq zx&5{bRZuPgGLP|%i;(iOj64CS=K6pRsp$k!s!T+sOwrd$N#fDLjf$4*bSPHr3Tp9I zg(Qd8DV4*jle=2jahb};GX1}&e-#}xf=B|>O*^kP0^waP1j6R=$mw@0Zz&DmR}09J za5je4n>*CZX;VAOIn)_&my;}JPHyBXp*m{&T2JnvK)l~nX_(~F?yqP=h+3(PCZ1_h zdN{Kiso9Mt(}&(2Weu)Zkro-KPY+k$0YbgwOEN>WX@k^?I`dN&Y+vRINSrq-qu{$Z zAQ}2z8)iFhi5w7@<2S%rLRo<0=JhOi|LPmCVUyZdKxzWOU=W_o;!4~6vJ7K>8?clO zr-9Vw8w?2tvgAcYiucA4#@JxMc!TAyl&#OPKG|h(eQ?(dWt*#wUd?k^{R zw9SnFYfD7};%Y4msIRQ>zjrQx%sw-;UbW1L_ELYarAQeJ7s@yac@<9k&wO^^UMK&h zz{UaZ`hi!_D{xTvA}{gZG-L`Q0UGSBzvB-`L!a&AR@awZ*g6+stZ1Rm^i|hU{SPtT zsSk!-Zb1F#Nj^BC?YYEx@n6mzsD4?U>C)HkKfezNRQCpwMkS5;4}0dm2q?D1!PWmf z`2uck?8N1vTO0xyD*=WbwT1uZNe|%aq>q1XezSPP0pRGuj`T+bs6#8jZWG!A|KpO6 zKvZlyY1>KLnY4M>4?t(T+_o`k8@RW-+cpLGw<~P(q-~zGO(wS)_y4UdaX7Vd8T>N= kea8O`a$5b^p#jZ+-uN03yH74*&oF literal 18025 zcmeHvc{r5s8!uA!NOnR=D%r9|mT!tmsC@0qBq7Tf+t?Y(l7u4JsT467*$qP(ON)IQ zSsQ!C7!$)VgY%;0cb)4xzyHp;&bf}i@OYo+ex7^#eD3>sXQFQ!=&~^jFw@Y`uwA=) z`8EyB0Z|$nIy1&Yz(|_U19#xZ8Sg7*-gfux?OeQ|U>aLxSp|pl4$87B_mmx!Z0{+n zT(Gmhr|6)3*Ws?iJ^8!eHGdojRuOj6*1ma7TU+#|C&aM-81sm&Zu-TMYdbaD^(r8nw|@`N^3cZ4=G{z76Vaj_9ZfCtTV8F zdk6_kU~A#BB^N$AabxvFSysA&zJ$?%nzh>T^~DPkvr{%N*F7wHxn$V6jExMN8>vlG zT;o4!ZG^NXsrU6`B6+T#($!+`E%hgqEgu$carIt=jKjC=`qPqFk1Pp^)<0KlI)OER z>15UCef0Z4G$B(?v9bMzmsuV?lZc}V#4Zf`Bv$N&gMy+~8dD=f^CeZiYAux%r|-*b zgB@X9Qxd206QpAroWbu(xsM$qtrxd(>TC({WPH~}=b$9glW?QJCRpi42p98hK|1U|L(KHInD!Y5#;J zT)A*;|B7XTs>$&1RC}%%y2fXVJN^CHC05%syQTv24Icgz*WdIwdH?HQ zsxqKGT#{P@pgIgG=(#%t%WGa-U^ZfHgaUV`IR%GFl4f(7qvta~p zV{${^r;f3rBVR*3&S}82jM`fk#CvY^;Oc-^X<{XZDSma_>Rp>LdVY?!Auq`r1!vsF;Eo~`GTgwjb&+aVfADx|ovH0as59Nz7 z4>Z04ou{D@rMY(bpMU*m@uN)D8OEs+ONrs)T6E#zCqs{iUv8{Ft5910sI>f?QV}C# z&%4gKC+E*T`FdYd)Emww_3pr^out#DoAm!Kh<t@$NG)6Q*!O*A(ju(ns95&a(lc_1YK87TQ2sKMrsskFEzX^%cSpl~xXp?vEg4FLVywo_=!)r` z!4lie;C##xV3t-Ci^_o>EJG;%=S~ z%LhySmP1Q-Oj>gle zePBm^iNeQimvP(6Bv7m21X8R(zs^-otH^RcQtcp;KVOwaENwc zfsrT?no7gJ^9*Qd-xz>hb`HNcbIu(YL9^2gOZ*-Yy_pwEb33oH;;&-8s{zICtLcBA zno2A(W6Wc;nCMJLstUu;_g8a<`9joP#XAEY@0sa-Zm7Iydta5(e>l@o4lQP9@_8$UM> zv!$uY&$A3ao60&batp&;m$uX~k1IBv7P~~0)iJU0lp#G(v3fRa{Vgwg(|1O_G5|iz zwtG?H&=&c3TtN4 zu+-&Fc1>V!aE!J4$Ag<`zQ#7*KR-)Ep%1IM-ZY}FRyDBI66z^0$H#|XYopfcokPf5 zYUsSNDm@j7o(R6EZmCSKlTCL~PHDuC#2yeF^77%h8f9uJY5Ri8c9zR1Fo>3ejGv}X zNNB@GR;<)CY`)oSc;eToB8%%_72>B+bh2h@Yi?CQ>@U~XmJtnQMG>!?ng!x3(7|h? zydl&{ktjat0W-VUlC`nGC_*qH5S!*w%rw5a=!<5NspA-1bD2}m+!p=A^8RhS2Ef7j-+(;U(F@# zq`^gXYVVVe>#hASE^b?q+Y!a@c*eZ8*CN@J3udc-fb%4W_cXs;31K3rOr?yykki?V zR<4txp$awT+0-csbc&o^f^prfI)O&-Squ2yDVqEM_r^(u0D$T9W`gCiy z)E?2maj`W+60WAW4M)^lpukN_M{LO@E8A8&Pd;JNpSctrYk4A=vHevB#brPN>4uxH zjnxO$8iQ@;;?t*Dd}QJx5*PVmCZ#B+4x4<}pun3J9rkss7}%|;@E@h;d7H3Dnr#pN3+l!Y?% z@YrhQGyxwnTQi%*0^0hS3}5o1;H#oCea9{Yt(Il8#cOW)k)9z^x3=?^GrGHZ2m8 z@SEQpv)Mr8M&3)TfbFR6B#(+-12w6_vJO=&gC_YOa$lYXw+3L-sL6Ou4XYqxGxklQ z0W+{kL-IgXeZTPxE~Eu_YHQLZo5@bXl{0IrcSM%*aa>X3aMb|Lrg!;c0&f<}_yv5p z`{?vIi(M;((||m?jCO#GRR)-6O!jy+@JzHm&I(*jT^irUE|l~eKo<1t;-+}zJK3wK zcO6ugUt2a>S6K-bBd3OA%lHx-PbF3{YG!y?@QsnhseQ19^EWce{X01u4eNbPs+TdE zEQX!16K$}G_e?#HM5NimC9@m*rc8!K5UdK-s!-pW)5aEv1gX^x zsT`^rCgHJ-F!i_0O&+n&T;iE|gK;A0VBayW!>T_gv5(?6wW0bq)=*8&KosHD3%DpQ)Wexf{(?uWX9dBg~~H(D!V=iRk%cGP%Xi zK{Vvz!q2ZV>}reEb}AclIp|11H@@2hLd~Goe8Bp2GMt9=K0f$d6Y{PKZbJs^G1fOW z`7Pl9`^A!gU@F;+mCtv?Lzi6JK&dUrSVIwlZOKbm<9E>q2(WDm`uQ271SO&(XmceH z9aq~>wsA!@GJ^ay2(&%Dxgl9E;`41ebg3C)BVgkfa!Z8-6B4p(GuGpIx6G?tx<$5 z=#k%}NiSur0^*tnbr z50%e9`D9`V=0UB23lc{rL)dE{nntk8wh4FswGVT9YAg8QuG2)4TQirHZ{U~&|tu}2V=IV-qo|K%Bv220d|dV+D*xb+O0uZK%ur}QkC!- zVYQISlFedDxP*YCn28T={T8ZfadWW*FC7>mCumSOwhbx+skt4xJxq?3Foo9T-x_zL z2nm@$tPthH!|ZMuKgbA3xn^i4WsJE8mJMmY6tRN9UyQY{aafT{ou;Op?4#p%@V9W%u=TW9`Jh)1j!MU_!&VuwKW0&*ISvx1nl+@QnEPk5$()$GRUgl z1mYVoFtkZj%^6@JPTnQ1ejlwm{I0U)8BsNg+znr>DsGJt0Et_TBJpo!F!fo4dV@O6 zuA#vCal1Wg{PF^wWQd(h$A(G!Ne)E%BS$HpZ}!O=j#edi{vjQCs{u;!`=~Xh`4l!jRHr1Qi6l)W8k%5Gg$-L9{oe;HA=a5p(Vc87Jc#T^ zA`c&Djlw(#Aq|KNt%}9RqW`h&L)tYi$AEC{<=~A)ebDkMWxYjaYqO@v8BELpk6I(g z2{j?0;$Zc0uX^Jm)NGLOubP3x2pCYkL%aSumE4zPYQsO#JZN1-epZ;hwUTGep1eI0 zwA_xii&y7a1ORT@j>t<&ht&J8PbQ7>f1)tlHl>Qi#A|Hahw5LiqY2rft{)Exha)WO zL^UEK{5}R@q-<`8tchgfkj<@|HO=t?Qf^kKw+2N_$SbqKqoAV*et+zGGq!!W?yblB zwQ_d~o2k-+Pmjl%aJ(U2n}UJ8!EwgO@uj)WqK={6T%JYAFI&xW3B0kF$ysf*X!z@_ zSAAPRPbWcBaodUwRhCqj??lz;V#^?*ZOyR>5xFOhf)l#Q6EZ}0^_80{#HORkpxJIx z7J2zyPFz9#v9nuGMDiYEt~IeVRDE+upSSmjC3hDWvwQ$K2UWOWR5$%$)LL;55u(yl zUPJwthn)dMO?jFqfxB9n4XPaJx&TjUjOn{ zMoOf1GS{VXm|gYkjWndOU+c%#@L8VC3mIDtajb?KTlXK0pMrM$kcgD3495M$_%IH1;%NNpT!>y@f)2-H!VhHg9j?|1@XLzk z_z)>;ad%@ni4hkYhEPVkD2;9dLH{E_wr{#k>3fIZE zP5D6^JwI!$wL=C@a&+o6A)dv8UI`w!T9;)Da2fa(XTUjZf}S*!yhGbN4F|3UK+ivg z8i+rDkj@Y3j)MgUm9;Cu>jRWSxFOV2@A$MP4$i1Uh`7K>88UI9(cCf9IJoUh2X_Pi zS(`E>B}FPln}RGGjeY#052M;vrFf*4OHq zUCbtICNYaGTJMQ1f~GHscelvTN*5L5v+I3RdaCEtLZ>O$+R(t{Rx?3kJxE6Yqf(>5LkE8CcikmGnV?pNl%9^q*EYGy-H zhB<0;Gun2!XlyXu&l(NOS|iQVt&*WNM2pz3(qsp->N_@24@wyeZ@6ClauNqZ>f7Dg z(HF2Jx3vdZ&Ou3pwwAywzXkSw)0wS_QkDW_<&abSykrDSVREIV%2k~+*R@7_(7AP# zVm*AIq4w?jRZ}>E9P8*aap48Izt&68R$?p{jM5_${T(C6$9=3HeY_Xj0+lzl{z>?{ zR=Vj%Fw4g&)h_TWWg?+Hn{Rc8M=5ab=&cDQ*8;KHzA)^OJP)Q<`W12Gx zgPN);PuJG+ipe1Aq~bv$B&DeV#(g#abB z!rbVS%zR-G=)k}pk{LlN8UkHt-{ke))LabNjE5z&R#dJ7z;?3|Xd(D)|Eoz)XH9#L zF;~f6ALvEsca6R{qJ^~GBaxEa?rfi~`(M2Fs}r%)`vBS#C-ZV^{&pTX%<@Cy?-V_6 zP235cE)iOhkMr>fm|X>NxgTos_|vrjW`hA4;69$e9S|)o8V}ap7Rp}XdNUo^mS9E1 zf2_};C3N6#%Z9P<6wuhw0U!U{prNPdX#LY<0e-1qVic{oW%=ko#%P=5_P6mzWBc0J z_l@0f*pHO|$PxQ_Hut}+Jdk4Y|QLbqk15A)4umHER=c=?phZQ-UW(qYNo*T}mdhytJmmCxtG z5;mM&t#0K>5XbgVWZ24hItrkMy)8FbqQFoym7sJqT3V2B8#lxw*2M~R@A>BkP6Ftc z3ZP$Vuo3id`aoL$x5;j1mfy?MC$v zDf67yjI1U=-B6gZ2J};3F4NOL?ZEk4;>oY_gqicKe6Lr}WyLhYW49%-N*7t#bzK85 ztE}TCqNG~fZe9B9e6kC;V(5{0#=C>fA3y-aMqPSF7h_|^Ww0@Q4O=+e!K{}oCFRL3 z78%RfN(cy2fo2<_=M;5$YZ$H^o#W)tLY|}oXQm0O2PD^rUmW+OBf7RSnPzj$NM{Xu zR7jZ=j5yD%Uq?HL(G?N_cPv4yo}`JW3Sm$FB> zID&>>2vZEcDYvQI(@Ck@nyMVh)~~1n_Bpm$p$4Ga6mXs6>73^BiQYj&R$fSXxq3dH z{_wXGQnDUYyQo>=05=uyuiBO`1;jb#8h~jqNyLs>@>p02-ZT^lI4n82-YR%xUY)lg z50BPexJ;E?@IVm796SiW>H?ZDpQG-F-i)da=}`PViHX>*n8R#U8X+!%_=0WAZ{Wny z#x^mBNT!@qE8F@u*Ir(u>j+g~8Y>0tclxFl&6yIX%$q;OSVWj8)+Hc6KP)=4WOPb6 zFD_M}_`*zD$$CnAB7#UCX2QXtW$}u|d53WE15U#qJpb-2ArPdv0-<)Db4kif914$hiNypp#amxke&*&`9<9^;W$!i+AejXKn{%EW zdbdahn-U**VS-jh`|fiUy-pSU6{;^U176)!Tyd+N2(fNL4B=NGwE|c5a*P$0eJ>q) zJyWsA{IuYJKNR&uA1<0K)1tL}59 ztbb^mM}+k9)qQ}~Z)>7oSqiI?nd%a?PSNtda(tk`2JAo;pr1cNPgPCuhy>2OFX?R{ zaPdf+4?dpeHtJ1zX4jZ0f|9>s1M`$qlq^>V?(~n4jMlfg+@9?2!=4Nj4i9Vv`+tEne{GZ`NES{hjqH-1lAVeBfMuRO7%l5^9EYbpo6e zT6zBN;3N0(RsxIVlhN1E$G5MwG6FZOaz&N5fCwrq1un7RH|{^!V$Sd!J=3TQdw+8aYSQ!{eVD78CCa75&}t*_{ph2T(!aZE#T}DqB5BLDbFSphM?{GNnQ{P!XJ?&1b*82|R)1w+lS!Xi; zLmLI(-%2ij4aE6lYp1fbj+)5~rQusRNR&Tr?P|oXU%fN}jB0=n(x=pKMh~M87^>gw zb$;=K^U+NA*l!>1at0y^4t>);Uo$nPH{_~2?HUz)0d@P#t_RPZ1pGGPt6sW)1^6d-ZO^CHVBb zxoOq6xG%$T!p|}C+`Fx-FdyJLdI*Kq9~qB@)xD2~TdFe8h5cDx5m>%owMU0EqA;7Q zGz2zs2j0Qidlx`I)w28Hc}lMHuAHt8;0$WMRndXz0P@Pte!HMw_@U>P=&I;y-PC-%IDf);GAx{GGFkSUv|5oT53Rwzz_EG4ECay3E;4^&p8gRH2$vb$`b%B zUmv}nW8t7FUmNRVv}&^QdSNR+YnNV?12tWb+cEI7%{H6Uq2*U4AJ~*%m+1RvPfI`o zX!4LfNw>_?DVX4|uj)>V;;T;e{Z$icO8}REnPA<{I)E7*Lv5Q3)!CHaR_?pBHq0Q>CT7H|MGrFe8pQ_hW9es%M7uItlrTXHWGz zg(qwD2Y_S<{IA3orS5fr_bh!}G<1cAC>#GlKy2WX{4;YCb1fN@)Gqp88A=BzjKy;E zO&Fh8fu|lbEGimn$)tUOcVMKSm5` zNG8!1AXUiN>S5Nf!H0t^e|-H{5?3m;i@z3FjxGK&lpy@PU#6cE04$m?0|4|?Uwzdd zn#@XH{PreEYFNAkGlfDfZv5^)+-CwDUVNx4>xz&pK6G`&?4Q~p*!wuR_LUY($F1W(cL++;buF=8#!MDZtY^(qX z=vB2@4q+dkSxPf4w@Rj=NHb~f9Wu-Wpfwixf?%_+0K4O?6solsTr8}p;%d)9{Yj7g zzz$4sR|N-_pJi(HMAkavrQ{&^t#@&|y7VsnP|`A!45dA1SxI%nJk6#zF~9S1nWgcK zyhMb!UUK12t5b89cK|wP+ri}3SY6Rd+PsSpeR>UeCx(nj#JFu)_lRR9b~d{Lq`s?= zvn{2}O`!1jZ`hPVue5VgOCOJEoDO>9e^GlcKoraYPUU$()qee`ucjO;gql6v#e8}4 zsE?-YeO@`WJqOXc!%a`ssb=;Y8-j)Xn9Pk5t5koz4O#l~57Xtz`}kj1+Z^|eX)&SY z&W=MR#Zg%Sr(HJ@mQioNzNo}5rZv1hg4PMAXoP?U?=JAP%jg_DCh=Y1X`D+9+YVxN z?I2cKhakgQ4w#%q2xgLDLkU61(<8Kc|&Y#G4F z+jlWTB{S`Nl0nD>#BZ%4h)TrAS!n?pLY(sVzB$N`0nprv~Npc!K{Z&b(3Z{TJ7dP|+ z@pv-<=sG6#6&)^6+-eN&jdEiq;vCdSJZr*i;qeCQbPIdQt9+-7$qEL?ST{pjAH#4H zMzz5OQmgV$^_$dNQM!L|SZ(K$PYqfYyLNs#EEQXw+8Pm|$5Tm^*5;GcIGE|1}0bcbAdj+Jd$V>eh+9#F<<>MpRL91AI{DMo=y)6erB;k25`iZtf z_-CAgzyhW(lj{ODVN}ZZ+w1ChIymO3aRn zFb9>p!(zx-q~6POfX@|%Ab(Wdi+y}T)(j9^;yI=Z9Jd2_5lR&?3r0;I?37`g9fjJc%*J^&0(`5BGjP;% z;RRMq4R%tfcJjUL$k3$4>r+=aK1qp&PVp#;0J4X6tUf;GL+x;bO{}_qMkR;q5gHWQ zEL7ko@lJNR5$H!0N0}7XVmZ-T>6sR-YdbN>`SZ#a)~Q zg;o>el_S${Z`?lw@_M2yH(}~03cnMdL7KD5~R2hDrP7x?^6h$o` z0ConS5DhKACI;SNGQVsN25j(LT(+*z)A-j59y{=@^%=-npGS>;Cvrg7jQ{{O3glYt zA>s}S?3Hwe_`Ng>4A3+0yqM;a;`tlAfu+xhhCUxrulRLi3OsuH22igS+J5<6Spgwe z3gijTwLXJAXaVHElm(Pq5_u+hXVKl_V}C>Y8rt`vJwCA?W&3$(KQZnC!#;HEgX=#1 z*loD{|4z`t`jHql*TIrS_R+r|XaSh42~gRVdZs=3lQC(+k^u58*-PAMA^+}dn;$f> ztaLRWVAB8HmDueaJqOy>XZR=oJO+Fe3Fw@bCZ;|8kL8|+(j+9v{bjGAT0TI}PA#A5 zFAe6n3W(faXkSOadZYV(v>zh-X=Fb`?xVi>-bhrBKOjXms4rJgeI-7z%Rt{7Y{zI5lo{{UYjPBQ=i diff --git a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt index d16e247..b757a68 100644 --- a/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt @@ -6,5 +6,4 @@ layer at (0,0) size 406x406 RenderSVGText {text} at (93,36) size 214x18 contains 1 chunk(s) RenderSVGInlineText {#text} at (0,0) size 214x18 chunk 1 (middle anchor) text run 1 at (93.00,50.00) startOffset 0 endOffset 34 width 214.00: "The circle should be in the middle" -selection start: position 16 of child 0 {#text} of child 3 {text} of child 0 {svg} of document -selection end: position 34 of child 0 {#text} of child 3 {text} of child 0 {svg} of document +caret: position 0 of child 0 {#text} of child 3 {text} of child 0 {svg} of document diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png b/LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png index c17e91f2689c587b3a35095076669b481097b407..357d86b85f058d771fc46af6f37cc418c8529ec1 100644 GIT binary patch delta 16 XcmZqL%6elR>x78rCg$Z$%#7gxJcR~4 delta 830 zcmV-E1Ht^*t_6a%1&~;O10HEZLr_UWLm*IcZ)Rz1WdHzp0fkiGYtv8^{@P`ou;Gh3 zXAucLXpwGYQ*=X|wrf|q&06X0-)Qv+MpZJHTQ(R_;DA31$+jOGBoLXk_De?ey1m!ik&_4GH9n^))_*{M{=N70a*E}7lJM)a9*x!X zTar3f+uP*LrX$0|cTqnBNJ4^+9AqfqkwOe%nq$PO_)HcVB1)vvX>?S1vN+Z|D3g}$ z97lM`UkAJELnj3$0VWp#P;WxSEn;UJb z3kXsEisi9?NM2>iPl8d`bvEXZQTYzj|>7s8jn)X2`> ztr5$BaV$Qoo>R@n>?P7n((7cnzl!xj#u)jKF+*CNz9dbYiaGMyPzxspcY^EY;#@D+ z2cEmkUE%t<2(2!1BaXrs^+kLk@V+y?K3}(Qh+(IH+rHCe>!UGR>$}sDx}vdql#kmd z_C1cO6B)9xzOjB*2rIOrV`@sXbWZ>SC2dZZ^97Ud5rhkTh^{S(kE>!=kWVWLZn=A{23{G!(Q_^rpfh#k39x)#EbA59 zA3UBew}6p5+heUgZDG2LK31#SbS_&S0lN>Y)t}F*)!pahe+zh{{06Bb3f97*UowGK IwN?QFSHtC*>Hq)$ diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt b/LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt index 1be9fce..baddfeb 100644 --- a/LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt @@ -359,4 +359,4 @@ layer at (0,0) size 800x600 RenderSVGText {text} at (504,549) size 28x18 contains 1 chunk(s) RenderSVGInlineText {#text} at (0,0) size 28x18 chunk 1 text run 1 at (504.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss" -caret: position 18 of child 0 {#text} of child 5 {text} of child 1 {svg} of document +caret: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of document diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-image-expected.png b/LayoutTests/platform/mac/svg/custom/pointer-events-image-expected.png index c17e91f2689c587b3a35095076669b481097b407..357d86b85f058d771fc46af6f37cc418c8529ec1 100644 GIT binary patch delta 16 XcmZqL%6elR>x78rCg$Z$%#7gxJcR~4 delta 830 zcmV-E1Ht^*t_6a%1&~;O10HEZLr_UWLm*IcZ)Rz1WdHzp0fkiGYtv8^{@P`ou;Gh3 zXAucLXpwGYQ*=X|wrf|q&06X0-)Qv+MpZJHTQ(R_;DA31$+jOGBoLXk_De?ey1m!ik&_4GH9n^))_*{M{=N70a*E}7lJM)a9*x!X zTar3f+uP*LrX$0|cTqnBNJ4^+9AqfqkwOe%nq$PO_)HcVB1)vvX>?S1vN+Z|D3g}$ z97lM`UkAJELnj3$0VWp#P;WxSEn;UJb z3kXsEisi9?NM2>iPl8d`bvEXZQTYzj|>7s8jn)X2`> ztr5$BaV$Qoo>R@n>?P7n((7cnzl!xj#u)jKF+*CNz9dbYiaGMyPzxspcY^EY;#@D+ z2cEmkUE%t<2(2!1BaXrs^+kLk@V+y?K3}(Qh+(IH+rHCe>!UGR>$}sDx}vdql#kmd z_C1cO6B)9xzOjB*2rIOrV`@sXbWZ>SC2dZZ^97Ud5rhkTh^{S(kE>!=kWVWLZn=A{23{G!(Q_^rpfh#k39x)#EbA59 zA3UBew}6p5+heUgZDG2LK31#SbS_&S0lN>Y)t}F*)!pahe+zh{{06Bb3f97*UowGK IwN?QFSHtC*>Hq)$ diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-image-expected.txt b/LayoutTests/platform/mac/svg/custom/pointer-events-image-expected.txt index 866f061..777299d 100644 --- a/LayoutTests/platform/mac/svg/custom/pointer-events-image-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/pointer-events-image-expected.txt @@ -359,4 +359,4 @@ layer at (0,0) size 800x600 RenderSVGText {text} at (504,549) size 28x18 contains 1 chunk(s) RenderSVGInlineText {#text} at (0,0) size 28x18 chunk 1 text run 1 at (504.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss" -caret: position 18 of child 0 {#text} of child 5 {text} of child 0 {svg} of document +caret: position 0 of child 0 {#text} of child 3 {text} of child 0 {svg} of document diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.png b/LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.png index ba1d00588843b807f6c6baa4bf065bf493caa6dc..b310ba47e636a2a6d1a6a82ea95d96a823dd4a89 100644 GIT binary patch delta 13 VcmZ2_n)&w;<_Qs-o0yd!0RS(R23r6C delta 827 zcmV-B1H}CM!~>0-)Qv+MpZJHTQ(R_;DA31$+jOGBoLXk_De?ey1m!ik&_4GH9n^))_*{M{=N70a*E}7lJM)a9*x!X zTar3f+uP*LrX$0|cTqnBNJ4^+9AqfqkwOe%nq$PO_)HcVB1)vvX>?S1vN+Z|D3g}$ z97lM`UkAJELnj3$0VWp#P;WxSEn;UJb z3kXsEisi9?NM2>iPl8d`bvEXZQTYzj|>7s8jn)X2`> ztr5$BaV$Qoo>R@n>?P7n((7cnzl!xj#u)jKF+*CNz9dbYiaGMyPzxspcY^EY;#@D+ z2cEmkUE%t<2(2!1BaXrs^+kLk@V+y?K3}(Qh+(IH+rHCe>!UGR>$}sDx}vdql#kmd z_C1cO6B)9xzOjB*2rIOrV`@sXbWZ>SC2dZZ^97Ud5rhkTh^{S(kE>!=kWVWLZn=A{23{G!(Q_^rpfh#k39x)#EbA59 zA3UBew}6p5+heUgZDG2LK31#SbS_&S0lN>Y)t}F*)!pahe+zh{{06Bb3f97*Uox>) FCE{6>nkoPQ diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt b/LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt index d576e52..d4d340d 100644 --- a/LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt @@ -519,4 +519,4 @@ layer at (0,0) size 800x600 RenderSVGText {text} at (504,549) size 28x18 contains 1 chunk(s) RenderSVGInlineText {#text} at (0,0) size 28x18 chunk 1 text run 1 at (504.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss" -caret: position 18 of child 0 {#text} of child 5 {text} of child 1 {svg} of document +caret: position 0 of child 0 {#text} of child 3 {text} of child 1 {svg} of document diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.png b/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.png index dc4543c084224106a344c070cdb20c1f2ab40add..fb97e7b7329e5a21ef700555541ecd6bb01a264a 100644 GIT binary patch delta 13 Ucmdn|nz{2S^Mr`aP0WU$04}TsRsaA1 delta 827 zcmV-B1H}A^0-)Qv+MpZJHTQ(R_;DA31$+jOGBoLXk_De?ey1m!ik&_4GH9n^))_*{M{=N70a*E}7lJM)a9*x!X zTar3f+uP*LrX$0|cTqnBNJ4^+9AqfqkwOe%nq$PO_)HcVB1)vvX>?S1vN+Z|D3g}$ z97lM`UkAJELnj3$0VWp#P;WxSEn;UJb z3kXsEisi9?NM2>iPl8d`bvEXZQTYzj|>7s8jn)X2`> ztr5$BaV$Qoo>R@n>?P7n((7cnzl!xj#u)jKF+*CNz9dbYiaGMyPzxspcY^EY;#@D+ z2cEmkUE%t<2(2!1BaXrs^+kLk@V+y?K3}(Qh+(IH+rHCe>!UGR>$}sDx}vdql#kmd z_C1cO6B)9xzOjB*2rIOrV`@sXbWZ>SC2dZZ^97Ud5rhkTh^{S(kE>!=kWVWLZn=A{23{G!(Q_^rpfh#k39x)#EbA59 zA3UBew}6p5+heUgZDG2LK31#SbS_&S0lN>Y)t}F*)!pahe+zh{{06Bb3f97*Uox>) FGxF!vnk4`L diff --git a/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.txt b/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.txt index 75ce953..9e30b67 100644 --- a/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.txt +++ b/LayoutTests/platform/mac/svg/custom/pointer-events-text-expected.txt @@ -519,4 +519,4 @@ layer at (0,0) size 800x600 RenderSVGText {text} at (504,549) size 28x18 contains 1 chunk(s) RenderSVGInlineText {#text} at (0,0) size 28x18 chunk 1 text run 1 at (504.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss" -caret: position 18 of child 0 {#text} of child 5 {text} of child 0 {svg} of document +caret: position 0 of child 0 {#text} of child 3 {text} of child 0 {svg} of document diff --git a/LayoutTests/platform/mac/svg/foreignObject/text-tref-02-b-expected.png b/LayoutTests/platform/mac/svg/foreignObject/text-tref-02-b-expected.png index b2feeb1dfdb9b8306d37116515ec43cb4f7d7cb3..2cc6c3776fd157538843684ab0b476383285f359 100644 GIT binary patch delta 13 UcmeD9!+7s20-)Qv+MpZJHTQ(R_;DA31$+jOGBoLXk_De?ey1m!ik&_4GH9n^))_*{M{=N70a*E}7lJM)a9*x!X zTar3f+uP*LrX$0|cTqnBNJ4^+9AqfqkwOe%nq$PO_)HcVB1)vvX>?S1vN+Z|D3g}$ z97lM`UkAJELnj3$0VWp#P;WxSEn;UJb z3kXsEisi9?NM2>iPl8d`bvEXZQTYzj|>7s8jn)X2`> ztr5$BaV$Qoo>R@n>?P7n((7cnzl!xj#u)jKF+*CNz9dbYiaGMyPzxspcY^EY;#@D+ z2cEmkUE%t<2(2!1BaXrs^+kLk@V+y?K3}(Qh+(IH+rHCe>!UGR>$}sDx}vdql#kmd z_C1cO6B)9xzOjB*2rIOrV`@sXbWZ>SC2dZZ^97Ud5rhkTh^{S(kE>!=kWVWLZn=A{23{G!(Q_^rpfh#k39x)#EbA59 zA3UBew}6p5+heUgZDG2LK31#SbS_&S0lN>Y)t}F*)!pahe+zh{{06Bb3f97*Uox>) Fh + + RenderSVGRoot should inherit from RenderReplaced + https://bugs.webkit.org/show_bug.cgi?id=76446 + + Reviewed by Zoltan Herczeg. + + Let RenderSVGRoot inherit from RenderReplaced, instead of faking RenderReplaced, by inherting from RenderBox + and calling setReplaced(true) in the constructor. The outermost element is a replaced element in the + sense of CSS, and thus this is just a logical move. It fixes some issues where the root appeared + as selection leaf, covered by existing tests. + + It allows us to simplify the painting, as outlines, etc. are painted by RenderReplaced now. + While I was it, speed up the local to border box computations by caching the result. + + * rendering/RenderReplaced.cpp: + (WebCore::RenderReplaced::paint): + * rendering/svg/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::RenderSVGRoot): + (WebCore::RenderSVGRoot::layout): + (WebCore::RenderSVGRoot::paintReplaced): + (WebCore::RenderSVGRoot::willBeDestroyed): + (WebCore::RenderSVGRoot::styleWillChange): + (WebCore::RenderSVGRoot::styleDidChange): + (WebCore::RenderSVGRoot::updateFromElement): + (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform): + (WebCore::RenderSVGRoot::localToParentTransform): + (WebCore::RenderSVGRoot::computeFloatRectForRepaint): + (WebCore::RenderSVGRoot::mapLocalToContainer): + (WebCore::RenderSVGRoot::nodeAtPoint): + * rendering/svg/RenderSVGRoot.h: + (WebCore::RenderSVGRoot::canHaveChildren): + (WebCore::RenderSVGRoot::canBeSelectionLeaf): + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::setupInitialView): + 2012-01-17 Sheriff Bot Unreviewed, rolling out r105244. diff --git a/Source/WebCore/rendering/RenderReplaced.cpp b/Source/WebCore/rendering/RenderReplaced.cpp index 017dd67..c51292a 100644 --- a/Source/WebCore/rendering/RenderReplaced.cpp +++ b/Source/WebCore/rendering/RenderReplaced.cpp @@ -122,7 +122,7 @@ void RenderReplaced::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) if ((paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhaseSelfOutline) && style()->outlineWidth()) paintOutline(paintInfo.context, paintRect); - if (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection) + if (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhaseSelection && !canHaveChildren()) return; if (!paintInfo.shouldPaintWithinRoot(this)) diff --git a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp index 6994654..d51617b 100644 --- a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp +++ b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp @@ -55,12 +55,11 @@ using namespace std; namespace WebCore { RenderSVGRoot::RenderSVGRoot(SVGStyledElement* node) - : RenderBox(node) + : RenderReplaced(node) , m_isLayoutSizeChanged(false) , m_needsBoundariesOrTransformUpdate(true) , m_needsSizeNegotiationWithHostDocument(false) { - setReplaced(true); } RenderSVGRoot::~RenderSVGRoot() @@ -99,25 +98,6 @@ void RenderSVGRoot::computeIntrinsicRatioInformation(FloatSize& intrinsicRatio, } } -void RenderSVGRoot::computePreferredLogicalWidths() -{ - ASSERT(preferredLogicalWidthsDirty()); - - LayoutUnit borderAndPadding = borderAndPaddingWidth(); - LayoutUnit width = computeReplacedLogicalWidth(false) + borderAndPadding; - - if (style()->maxWidth().isFixed()) - width = min(width, style()->maxWidth().value() + (style()->boxSizing() == CONTENT_BOX ? borderAndPadding : 0)); - - if (style()->width().isPercent() || (style()->width().isAuto() && style()->height().isPercent())) { - m_minPreferredLogicalWidth = 0; - m_maxPreferredLogicalWidth = width; - } else - m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = width; - - setPreferredLogicalWidthsDirty(false); -} - bool RenderSVGRoot::isEmbeddedThroughSVGImage() const { if (!node()) @@ -245,6 +225,7 @@ void RenderSVGRoot::layout() LayoutSize oldSize(width(), height()); computeLogicalWidth(); computeLogicalHeight(); + buildLocalToBorderBoxTransform(); SVGSVGElement* svg = static_cast(node()); m_isLayoutSizeChanged = needsLayout || (svg->hasRelativeLengths() && oldSize != size()); @@ -270,44 +251,33 @@ void RenderSVGRoot::layout() setNeedsLayout(false); } -bool RenderSVGRoot::selfWillPaint() -{ - SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(this); - return resources && resources->filter(); -} - -void RenderSVGRoot::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) +void RenderSVGRoot::paintReplaced(PaintInfo& paintInfo, const LayoutPoint& adjustedPaintOffset) { - if (paintInfo.context->paintingDisabled()) - return; - - bool isVisible = style()->visibility() == VISIBLE; - LayoutPoint borderBoxOriginInContainer = paintOffset + parentOriginToBorderBox(); - - if (hasBoxDecorations() && (paintInfo.phase == PaintPhaseBlockBackground || paintInfo.phase == PaintPhaseChildBlockBackground) && isVisible) - paintBoxDecorations(paintInfo, borderBoxOriginInContainer); - - if (paintInfo.phase == PaintPhaseBlockBackground) - return; - // An empty viewport disables rendering. if (borderBoxRect().isEmpty()) return; - // Don't paint if we don't have kids, except if we have filters we should paint those. - if (!firstChild() && !selfWillPaint()) + // Don't paint, if the context explicitely disabled it. + if (paintInfo.context->paintingDisabled()) return; + // Don't paint if we don't have kids, except if we have filters we should paint those. + if (!firstChild()) { + SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(this); + if (!resources || !resources->filter()) + return; + } + // Make a copy of the PaintInfo because applyTransform will modify the damage rect. PaintInfo childPaintInfo(paintInfo); childPaintInfo.context->save(); // Apply initial viewport clip - not affected by overflow handling - childPaintInfo.context->clip(overflowClipRect(borderBoxOriginInContainer, paintInfo.renderRegion)); + childPaintInfo.context->clip(overflowClipRect(adjustedPaintOffset, paintInfo.renderRegion)); // Convert from container offsets (html renderers) to a relative transform (svg renderers). // Transform from our paint container's coordinate system to our local coords. - childPaintInfo.applyTransform(localToRepaintContainerTransform(paintOffset)); + childPaintInfo.applyTransform(AffineTransform::translation(adjustedPaintOffset.x() - x(), adjustedPaintOffset.y() - y()) * localToParentTransform()); bool continueRendering = true; if (childPaintInfo.phase == PaintPhaseForeground) @@ -320,69 +290,55 @@ void RenderSVGRoot::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) SVGRenderSupport::finishRenderSVGContent(this, childPaintInfo, paintInfo.context); childPaintInfo.context->restore(); - - if ((paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhaseSelfOutline) && style()->outlineWidth() && isVisible) - paintOutline(paintInfo.context, LayoutRect(borderBoxOriginInContainer, size())); } void RenderSVGRoot::willBeDestroyed() { SVGResourcesCache::clientDestroyed(this); - RenderBox::willBeDestroyed(); + RenderReplaced::willBeDestroyed(); } void RenderSVGRoot::styleWillChange(StyleDifference diff, const RenderStyle* newStyle) { if (diff == StyleDifferenceLayout) setNeedsBoundariesUpdate(); - RenderBox::styleWillChange(diff, newStyle); + RenderReplaced::styleWillChange(diff, newStyle); } void RenderSVGRoot::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) { - RenderBox::styleDidChange(diff, oldStyle); + RenderReplaced::styleDidChange(diff, oldStyle); SVGResourcesCache::clientStyleChanged(this, diff, style()); } void RenderSVGRoot::updateFromElement() { - RenderBox::updateFromElement(); + RenderReplaced::updateFromElement(); SVGResourcesCache::clientUpdatedFromElement(this, style()); } // RenderBox methods will expect coordinates w/o any transforms in coordinates // relative to our borderBox origin. This method gives us exactly that. -AffineTransform RenderSVGRoot::localToBorderBoxTransform() const +void RenderSVGRoot::buildLocalToBorderBoxTransform() { - LayoutSize borderAndPadding = borderOriginToContentBox(); SVGSVGElement* svg = static_cast(node()); float scale = style()->effectiveZoom(); FloatPoint translate = svg->currentTranslate(); - AffineTransform ctm(scale, 0, 0, scale, borderAndPadding.width() + translate.x(), borderAndPadding.height() + translate.y()); - return ctm * svg->viewBoxToViewTransform(width() / scale, height() / scale); -} - -LayoutSize RenderSVGRoot::parentOriginToBorderBox() const -{ - return locationOffset(); -} - -LayoutSize RenderSVGRoot::borderOriginToContentBox() const -{ - return LayoutSize(borderLeft() + paddingLeft(), borderTop() + paddingTop()); -} - -AffineTransform RenderSVGRoot::localToRepaintContainerTransform(const LayoutPoint& parentOriginInContainer) const -{ - return AffineTransform::translation(parentOriginInContainer.x(), parentOriginInContainer.y()) * localToParentTransform(); + LayoutSize borderAndPadding(borderLeft() + paddingLeft(), borderTop() + paddingTop()); + m_localToBorderBoxTransform = svg->viewBoxToViewTransform(width() / scale, height() / scale); + if (borderAndPadding.isEmpty() && scale == 1 && translate == FloatPoint::zero()) + return; + m_localToBorderBoxTransform = AffineTransform(scale, 0, 0, scale, borderAndPadding.width() + translate.x(), borderAndPadding.height() + translate.y()) * m_localToBorderBoxTransform; } const AffineTransform& RenderSVGRoot::localToParentTransform() const { - LayoutSize parentToBorderBoxOffset = parentOriginToBorderBox(); - - m_localToParentTransform = AffineTransform::translation(parentToBorderBoxOffset.width(), parentToBorderBoxOffset.height()) * localToBorderBoxTransform(); - + // Slightly optimized version of m_localToParentTransform = AffineTransform::translation(x(), y()) * m_localToBorderBoxTransform; + m_localToParentTransform = m_localToBorderBoxTransform; + if (x()) + m_localToParentTransform.setE(m_localToParentTransform.e() + x()); + if (y()) + m_localToParentTransform.setF(m_localToParentTransform.f() + y()); return m_localToParentTransform; } @@ -395,7 +351,7 @@ void RenderSVGRoot::computeFloatRectForRepaint(RenderBoxModelObject* repaintCont { // Apply our local transforms (except for x/y translation), then our shadow, // and then call RenderBox's method to handle all the normal CSS Box model bits - repaintRect = localToBorderBoxTransform().mapRect(repaintRect); + repaintRect = m_localToBorderBoxTransform.mapRect(repaintRect); // Apply initial viewport clip - not affected by overflow settings repaintRect.intersect(borderBoxRect()); @@ -405,7 +361,7 @@ void RenderSVGRoot::computeFloatRectForRepaint(RenderBoxModelObject* repaintCont shadow->adjustRectForShadow(repaintRect); LayoutRect rect = enclosingIntRect(repaintRect); - RenderBox::computeRectForRepaint(repaintContainer, rect, fixed); + RenderReplaced::computeRectForRepaint(repaintContainer, rect, fixed); repaintRect = rect; } @@ -415,8 +371,8 @@ void RenderSVGRoot::mapLocalToContainer(RenderBoxModelObject* repaintContainer, ASSERT(useTransforms); // mapping a point through SVG w/o respecting trasnforms is useless. // Transform to our border box and let RenderBox transform the rest of the way. - transformState.applyTransform(localToBorderBoxTransform()); - RenderBox::mapLocalToContainer(repaintContainer, fixed, useTransforms, transformState, wasFixed); + transformState.applyTransform(m_localToBorderBoxTransform); + RenderReplaced::mapLocalToContainer(repaintContainer, fixed, useTransforms, transformState, wasFixed); } void RenderSVGRoot::updateCachedBoundaries() @@ -433,7 +389,7 @@ void RenderSVGRoot::updateCachedBoundaries() bool RenderSVGRoot::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction) { LayoutPoint pointInParent = pointInContainer - toLayoutSize(accumulatedOffset); - LayoutPoint pointInBorderBox = pointInParent - parentOriginToBorderBox(); + LayoutPoint pointInBorderBox(pointInParent.x() - x(), pointInParent.y() - y()); // Note: For now, we're ignoring hits to border and padding for if (!contentBoxRect().contains(pointInBorderBox)) diff --git a/Source/WebCore/rendering/svg/RenderSVGRoot.h b/Source/WebCore/rendering/svg/RenderSVGRoot.h index c099499..ea6580f 100644 --- a/Source/WebCore/rendering/svg/RenderSVGRoot.h +++ b/Source/WebCore/rendering/svg/RenderSVGRoot.h @@ -25,7 +25,7 @@ #if ENABLE(SVG) #include "FloatRect.h" -#include "RenderBox.h" +#include "RenderReplaced.h" #include "SVGRenderSupport.h" @@ -34,7 +34,7 @@ namespace WebCore { class AffineTransform; class SVGStyledElement; -class RenderSVGRoot : public RenderBox { +class RenderSVGRoot : public RenderReplaced { public: explicit RenderSVGRoot(SVGStyledElement*); virtual ~RenderSVGRoot(); @@ -64,15 +64,15 @@ public: private: virtual RenderObjectChildList* virtualChildren() { return children(); } virtual const RenderObjectChildList* virtualChildren() const { return children(); } + virtual bool canHaveChildren() const { return true; } virtual bool isSVGRoot() const { return true; } virtual const char* renderName() const { return "RenderSVGRoot"; } - virtual void computePreferredLogicalWidths(); virtual LayoutUnit computeReplacedLogicalWidth(bool includeMaxWidth = true) const; virtual LayoutUnit computeReplacedLogicalHeight() const; virtual void layout(); - virtual void paint(PaintInfo&, const LayoutPoint&); + virtual void paintReplaced(PaintInfo&, const LayoutPoint&); virtual void willBeDestroyed(); virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle); @@ -94,14 +94,10 @@ private: virtual void computeFloatRectForRepaint(RenderBoxModelObject* repaintContainer, FloatRect& repaintRect, bool fixed) const; virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&, bool* wasFixed = 0) const; + virtual bool canBeSelectionLeaf() const { return false; } - bool selfWillPaint(); void updateCachedBoundaries(); - - LayoutSize parentOriginToBorderBox() const; - LayoutSize borderOriginToContentBox() const; - AffineTransform localToRepaintContainerTransform(const LayoutPoint& parentOriginInContainer) const; - AffineTransform localToBorderBoxTransform() const; + void buildLocalToBorderBoxTransform(); RenderObjectChildList m_children; IntSize m_containerSize; @@ -109,6 +105,7 @@ private: FloatRect m_strokeBoundingBox; FloatRect m_repaintBoundingBox; mutable AffineTransform m_localToParentTransform; + AffineTransform m_localToBorderBoxTransform; bool m_isLayoutSizeChanged : 1; bool m_needsBoundariesOrTransformUpdate : 1; bool m_needsSizeNegotiationWithHostDocument : 1; diff --git a/Source/WebCore/svg/SVGSVGElement.cpp b/Source/WebCore/svg/SVGSVGElement.cpp index 0d26682..03554fd 100644 --- a/Source/WebCore/svg/SVGSVGElement.cpp +++ b/Source/WebCore/svg/SVGSVGElement.cpp @@ -603,20 +603,14 @@ AffineTransform SVGSVGElement::viewBoxToViewTransform(float viewWidth, float vie void SVGSVGElement::setupInitialView(const String& fragmentIdentifier, Element* anchorNode) { bool hadUseCurrentView = m_useCurrentView; - setUseCurrentView(false); if (fragmentIdentifier.startsWith("xpointer(")) { // FIXME: XPointer references are ignored (https://bugs.webkit.org/show_bug.cgi?id=17491) - return; - } - if (fragmentIdentifier.startsWith("svgView(")) { - if (!currentView()->parseViewSpec(fragmentIdentifier)) - return; - setUseCurrentView(true); - return; - } - if (anchorNode && anchorNode->hasTagName(SVGNames::viewTag)) { - SVGViewElement* viewElement = anchorNode->hasTagName(SVGNames::viewTag) ? static_cast(anchorNode) : 0; - if (viewElement) { + setUseCurrentView(false); + } else if (fragmentIdentifier.startsWith("svgView(")) { + if (currentView()->parseViewSpec(fragmentIdentifier)) + setUseCurrentView(true); + } else if (anchorNode && anchorNode->hasTagName(SVGNames::viewTag)) { + if (SVGViewElement* viewElement = anchorNode->hasTagName(SVGNames::viewTag) ? static_cast(anchorNode) : 0) { SVGElement* element = SVGLocatable::nearestViewportElement(viewElement); if (element->hasTagName(SVGNames::svgTag)) { SVGSVGElement* svg = static_cast(element); @@ -624,13 +618,18 @@ void SVGSVGElement::setupInitialView(const String& fragmentIdentifier, Element* setUseCurrentView(true); } } - return; } - if (hadUseCurrentView) { + + if (!hadUseCurrentView) { + if (!m_useCurrentView) + return; + } else if (!m_useCurrentView) currentView()->setTransform(emptyString()); - if (RenderObject* object = renderer()) - RenderSVGResource::markForLayoutAndParentResourceInvalidation(object); - } + + // Force a layout, otherwise RenderSVGRoots localToBorderBoxTransform won't be rebuild. + if (RenderObject* object = renderer()) + RenderSVGResource::markForLayoutAndParentResourceInvalidation(object); + // FIXME: We need to decide which to focus on, and zoom to it. // FIXME: We need to actually "highlight" the viewTarget(s). } -- 2.7.4