LayoutTests/ChangeLog

 12011-11-17 Raul Hudea <rhudea@adobe.com>
 2
 3 First step towards http://webkit.org/b/70025
 4
 5 Allow -webkit-transform to be have effect to SVG elements.
 6 Currently, the CSS transform takes precedence over the SVG transform attribute
 7
 8 Allow SVG elements to be transformed using webkit-transform
 9 https://bugs.webkit.org/show_bug.cgi?id=71309
 10
 11 Reviewed by NOBODY (OOPS!).
 12
 13 * platform/mac/svg/clip-path/clip-path-css-transform-1-expected.png: Added.
 14 * platform/mac/svg/clip-path/clip-path-css-transform-1-expected.txt: Added.
 15 * platform/mac/svg/clip-path/clip-path-css-transform-2-expected.png: Added.
 16 * platform/mac/svg/clip-path/clip-path-css-transform-2-expected.txt: Added.
 17 * platform/mac/svg/custom/clip-path-with-css-transform-1-expected.png: Added.
 18 * platform/mac/svg/custom/clip-path-with-css-transform-1-expected.txt: Added.
 19 * platform/mac/svg/custom/clip-path-with-css-transform-2-expected.png: Added.
 20 * platform/mac/svg/custom/clip-path-with-css-transform-2-expected.txt: Added.
 21 * platform/mac/svg/custom/pointer-events-image-css-transform-expected.png: Added.
 22 * platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt: Added.
 23 * platform/mac/svg/custom/pointer-events-text-css-transform-expected.png: Added.
 24 * platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt: Added.
 25 * platform/mac/svg/dom/css-transforms-expected.png: Added.
 26 * platform/mac/svg/dynamic-updates/SVG-dynamic-css-transform-expected.png: Added.
 27 * platform/mac/svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.png: Added.
 28 * platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.png: Added.
 29 * platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.txt: Added.
 30 * platform/mac/svg/transforms/svg-css-transforms-expected.png: Added.
 31 * platform/mac/svg/transforms/svg-css-transforms-expected.txt: Added.
 32 * svg/clip-path/clip-path-css-transform-1.svg: Added.
 33 * svg/clip-path/clip-path-css-transform-2.svg: Added.
 34 * svg/custom/clip-path-with-css-transform-1.svg: Added.
 35 * svg/custom/clip-path-with-css-transform-2.svg: Added.
 36 * svg/custom/pointer-events-image-css-transform.svg: Added.
 37 * svg/custom/pointer-events-text-css-transform.svg: Added.
 38 * svg/dom/css-transforms-expected.txt: Added.
 39 * svg/dom/css-transforms.xhtml: Added.
 40 * svg/dynamic-updates/SVG-dynamic-css-transform-expected.txt: Added.
 41 * svg/dynamic-updates/SVG-dynamic-css-transform.html: Added.
 42 * svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.txt: Added.
 43 * svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html: Added.
 44 * svg/dynamic-updates/script-tests/SVGClipPathElement-css-transform-influences-hitTesting.js: Added.
 45 (executeBackgroundTest):
 46 (executeTest):
 47 * svg/transforms/svg-css-transforms-clip-path.xhtml: Added.
 48 * svg/transforms/svg-css-transforms.xhtml: Added.
 49
1502011-11-17 Ken Buchanan <kenrb@chromium.org>
251
352 Crash from nested tables with generated content

LayoutTests/platform/mac/svg/clip-path/clip-path-css-transform-1-expected.png


Added

731c39b2bd0f4b53f0f23e6e8d582d9b

LayoutTests/platform/mac/svg/clip-path/clip-path-css-transform-1-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x600
 4 RenderSVGRoot {svg} at (20,20) size 200x200
 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 6 RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
 7 RenderSVGPath {circle} at (0,0) size 20x20 [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=10.00]
 8 RenderSVGPath {circle} at (0,0) size 20x20 [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=10.00]
 9 RenderSVGPath {circle} at (21,21) size 198x198 [fill={[type=SOLID] [color=#FF0000]}] [cx=120.00] [cy=120.00] [r=99.00]
 10 RenderSVGContainer {a} at (20,20) size 200x200
 11 RenderSVGPath {rect} at (20,20) size 200x200 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=220.00] [height=220.00]
 12 [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (20,20) size 200x200

LayoutTests/platform/mac/svg/clip-path/clip-path-css-transform-2-expected.png


Added

6c5138f85e5ae539b1eea3b7c58b40b3

LayoutTests/platform/mac/svg/clip-path/clip-path-css-transform-2-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x600
 4 RenderSVGRoot {svg} at (20,20) size 200x200
 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 6 RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
 7 RenderSVGPath {circle} at (0,0) size 20x20 [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=10.00]
 8 RenderSVGPath {circle} at (21,21) size 198x198 [fill={[type=SOLID] [color=#FF0000]}] [cx=120.00] [cy=120.00] [r=99.00]
 9 RenderSVGContainer {a} at (20,20) size 200x200
 10 RenderSVGPath {rect} at (20,20) size 200x200 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=220.00] [height=220.00]
 11 [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (20,20) size 200x200

LayoutTests/platform/mac/svg/custom/clip-path-with-css-transform-1-expected.png


Added

778803df0a824ed8f2c7dfa07c56832e

LayoutTests/platform/mac/svg/custom/clip-path-with-css-transform-1-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x600
 4 RenderSVGRoot {svg} at (0,0) size 100x100
 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 6 RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
 7 RenderSVGPath {path} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [data="M 0 0 L 200 0 L 200 200 L 0 200 Z"]
 8 RenderSVGContainer {g} at (0,0) size 100x100
 9 [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
 10 RenderSVGPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=200.00] [height=200.00]
 11 RenderSVGPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]

LayoutTests/platform/mac/svg/custom/clip-path-with-css-transform-2-expected.png


Added

778803df0a824ed8f2c7dfa07c56832e

LayoutTests/platform/mac/svg/custom/clip-path-with-css-transform-2-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x600
 4 RenderSVGRoot {svg} at (0,0) size 100x100
 5 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 6 RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
 7 RenderSVGPath {rect} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [x=0.00] [y=0.00] [width=200.00] [height=200.00]
 8 RenderSVGPath {rect} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [x=0.00] [y=0.00] [width=200.00] [height=200.00]
 9 RenderSVGContainer {g} at (0,0) size 100x100
 10 [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
 11 RenderSVGPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=200.00] [height=200.00]
 12 RenderSVGPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [x=0.00] [y=0.00] [width=100.00] [height=100.00]

LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.png


Added

947a65fce805b7f7445b57e69820041a

LayoutTests/platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x600
 4 RenderSVGRoot {svg} at (0,6) size 549x587
 5 RenderSVGText {text} at (110,6) size 107x18 contains 1 chunk(s)
 6 RenderSVGInlineText {#text} at (0,0) size 107x18
 7 chunk 1 text run 1 at (110.00,20.00) startOffset 0 endOffset 19 width 107.00: "Visibility: visible"
 8 RenderSVGText {text} at (340,6) size 109x18 contains 1 chunk(s)
 9 RenderSVGInlineText {#text} at (0,0) size 109x18
 10 chunk 1 text run 1 at (340.00,20.00) startOffset 0 endOffset 18 width 109.00: "Visibility: hidden"
 11 RenderSVGContainer {g} at (0,30) size 549x563
 12 RenderSVGText {text} at (0,46) size 27x18 contains 1 chunk(s)
 13 RenderSVGInlineText {#text} at (0,0) size 27x18
 14 chunk 1 text run 1 at (0.00,60.00) startOffset 0 endOffset 4 width 27.00: "auto"
 15 RenderSVGImage {image} at (100,30) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 16 RenderSVGText {text} at (105,36) size 27x18 contains 1 chunk(s)
 17 RenderSVGInlineText {#text} at (0,0) size 27x18
 18 chunk 1 text run 1 at (105.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 19 RenderSVGImage {image} at (156,30) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 20 RenderSVGText {text} at (162,36) size 27x18 contains 1 chunk(s)
 21 RenderSVGInlineText {#text} at (0,0) size 27x18
 22 chunk 1 text run 1 at (162.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 23 RenderSVGImage {image} at (214,30) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 24 RenderSVGText {text} at (219,36) size 27x18 contains 1 chunk(s)
 25 RenderSVGInlineText {#text} at (0,0) size 27x18
 26 chunk 1 text run 1 at (219.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 27 RenderSVGImage {image} at (270,30) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 28 RenderSVGText {text} at (276,36) size 27x18 contains 1 chunk(s)
 29 RenderSVGInlineText {#text} at (0,0) size 27x18
 30 chunk 1 text run 1 at (276.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 31 RenderSVGImage {image} at (328,30) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 32 RenderSVGText {text} at (333,36) size 28x18 contains 1 chunk(s)
 33 RenderSVGInlineText {#text} at (0,0) size 28x18
 34 chunk 1 text run 1 at (333.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 35 RenderSVGImage {image} at (384,30) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 36 RenderSVGText {text} at (390,36) size 28x18 contains 1 chunk(s)
 37 RenderSVGInlineText {#text} at (0,0) size 28x18
 38 chunk 1 text run 1 at (390.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 39 RenderSVGImage {image} at (442,30) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 40 RenderSVGText {text} at (447,36) size 28x18 contains 1 chunk(s)
 41 RenderSVGInlineText {#text} at (0,0) size 28x18
 42 chunk 1 text run 1 at (447.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 43 RenderSVGImage {image} at (498,30) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 44 RenderSVGText {text} at (504,36) size 28x18 contains 1 chunk(s)
 45 RenderSVGInlineText {#text} at (0,0) size 28x18
 46 chunk 1 text run 1 at (504.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 47 RenderSVGText {text} at (0,103) size 88x18 contains 1 chunk(s)
 48 RenderSVGInlineText {#text} at (0,0) size 88x18
 49 chunk 1 text run 1 at (0.00,117.00) startOffset 0 endOffset 14 width 88.00: "visiblePainted"
 50 RenderSVGImage {image} at (100,86) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 51 RenderSVGText {text} at (105,93) size 27x18 contains 1 chunk(s)
 52 RenderSVGInlineText {#text} at (0,0) size 27x18
 53 chunk 1 text run 1 at (105.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 54 RenderSVGImage {image} at (156,86) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 55 RenderSVGText {text} at (162,93) size 27x18 contains 1 chunk(s)
 56 RenderSVGInlineText {#text} at (0,0) size 27x18
 57 chunk 1 text run 1 at (162.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 58 RenderSVGImage {image} at (214,86) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 59 RenderSVGText {text} at (219,93) size 27x18 contains 1 chunk(s)
 60 RenderSVGInlineText {#text} at (0,0) size 27x18
 61 chunk 1 text run 1 at (219.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 62 RenderSVGImage {image} at (270,86) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 63 RenderSVGText {text} at (276,93) size 27x18 contains 1 chunk(s)
 64 RenderSVGInlineText {#text} at (0,0) size 27x18
 65 chunk 1 text run 1 at (276.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 66 RenderSVGImage {image} at (328,86) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 67 RenderSVGText {text} at (333,93) size 28x18 contains 1 chunk(s)
 68 RenderSVGInlineText {#text} at (0,0) size 28x18
 69 chunk 1 text run 1 at (333.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 70 RenderSVGImage {image} at (384,86) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 71 RenderSVGText {text} at (390,93) size 28x18 contains 1 chunk(s)
 72 RenderSVGInlineText {#text} at (0,0) size 28x18
 73 chunk 1 text run 1 at (390.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 74 RenderSVGImage {image} at (442,86) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 75 RenderSVGText {text} at (447,93) size 28x18 contains 1 chunk(s)
 76 RenderSVGInlineText {#text} at (0,0) size 28x18
 77 chunk 1 text run 1 at (447.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 78 RenderSVGImage {image} at (498,86) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 79 RenderSVGText {text} at (504,93) size 28x18 contains 1 chunk(s)
 80 RenderSVGInlineText {#text} at (0,0) size 28x18
 81 chunk 1 text run 1 at (504.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 82 RenderSVGText {text} at (0,160) size 62x18 contains 1 chunk(s)
 83 RenderSVGInlineText {#text} at (0,0) size 62x18
 84 chunk 1 text run 1 at (0.00,174.00) startOffset 0 endOffset 11 width 62.00: "visibleFill"
 85 RenderSVGImage {image} at (100,144) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 86 RenderSVGText {text} at (105,150) size 27x18 contains 1 chunk(s)
 87 RenderSVGInlineText {#text} at (0,0) size 27x18
 88 chunk 1 text run 1 at (105.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 89 RenderSVGImage {image} at (156,144) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 90 RenderSVGText {text} at (162,150) size 27x18 contains 1 chunk(s)
 91 RenderSVGInlineText {#text} at (0,0) size 27x18
 92 chunk 1 text run 1 at (162.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 93 RenderSVGImage {image} at (214,144) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 94 RenderSVGText {text} at (219,150) size 27x18 contains 1 chunk(s)
 95 RenderSVGInlineText {#text} at (0,0) size 27x18
 96 chunk 1 text run 1 at (219.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 97 RenderSVGImage {image} at (270,144) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 98 RenderSVGText {text} at (276,150) size 27x18 contains 1 chunk(s)
 99 RenderSVGInlineText {#text} at (0,0) size 27x18
 100 chunk 1 text run 1 at (276.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 101 RenderSVGImage {image} at (328,144) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 102 RenderSVGText {text} at (333,150) size 28x18 contains 1 chunk(s)
 103 RenderSVGInlineText {#text} at (0,0) size 28x18
 104 chunk 1 text run 1 at (333.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 105 RenderSVGImage {image} at (384,144) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 106 RenderSVGText {text} at (390,150) size 28x18 contains 1 chunk(s)
 107 RenderSVGInlineText {#text} at (0,0) size 28x18
 108 chunk 1 text run 1 at (390.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 109 RenderSVGImage {image} at (442,144) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 110 RenderSVGText {text} at (447,150) size 28x18 contains 1 chunk(s)
 111 RenderSVGInlineText {#text} at (0,0) size 28x18
 112 chunk 1 text run 1 at (447.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 113 RenderSVGImage {image} at (498,144) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 114 RenderSVGText {text} at (504,150) size 28x18 contains 1 chunk(s)
 115 RenderSVGInlineText {#text} at (0,0) size 28x18
 116 chunk 1 text run 1 at (504.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 117 RenderSVGText {text} at (0,217) size 82x18 contains 1 chunk(s)
 118 RenderSVGInlineText {#text} at (0,0) size 82x18
 119 chunk 1 text run 1 at (0.00,231.00) startOffset 0 endOffset 13 width 82.00: "visibleStroke"
 120 RenderSVGImage {image} at (100,200) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 121 RenderSVGText {text} at (105,207) size 27x18 contains 1 chunk(s)
 122 RenderSVGInlineText {#text} at (0,0) size 27x18
 123 chunk 1 text run 1 at (105.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 124 RenderSVGImage {image} at (156,200) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 125 RenderSVGText {text} at (162,207) size 27x18 contains 1 chunk(s)
 126 RenderSVGInlineText {#text} at (0,0) size 27x18
 127 chunk 1 text run 1 at (162.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 128 RenderSVGImage {image} at (214,200) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 129 RenderSVGText {text} at (219,207) size 27x18 contains 1 chunk(s)
 130 RenderSVGInlineText {#text} at (0,0) size 27x18
 131 chunk 1 text run 1 at (219.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 132 RenderSVGImage {image} at (270,200) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 133 RenderSVGText {text} at (276,207) size 27x18 contains 1 chunk(s)
 134 RenderSVGInlineText {#text} at (0,0) size 27x18
 135 chunk 1 text run 1 at (276.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 136 RenderSVGImage {image} at (328,200) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 137 RenderSVGText {text} at (333,207) size 28x18 contains 1 chunk(s)
 138 RenderSVGInlineText {#text} at (0,0) size 28x18
 139 chunk 1 text run 1 at (333.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 140 RenderSVGImage {image} at (384,200) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 141 RenderSVGText {text} at (390,207) size 28x18 contains 1 chunk(s)
 142 RenderSVGInlineText {#text} at (0,0) size 28x18
 143 chunk 1 text run 1 at (390.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 144 RenderSVGImage {image} at (442,200) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 145 RenderSVGText {text} at (447,207) size 28x18 contains 1 chunk(s)
 146 RenderSVGInlineText {#text} at (0,0) size 28x18
 147 chunk 1 text run 1 at (447.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 148 RenderSVGImage {image} at (498,200) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 149 RenderSVGText {text} at (504,207) size 28x18 contains 1 chunk(s)
 150 RenderSVGInlineText {#text} at (0,0) size 28x18
 151 chunk 1 text run 1 at (504.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 152 RenderSVGText {text} at (0,274) size 41x18 contains 1 chunk(s)
 153 RenderSVGInlineText {#text} at (0,0) size 41x18
 154 chunk 1 text run 1 at (0.00,288.00) startOffset 0 endOffset 7 width 41.00: "visible"
 155 RenderSVGImage {image} at (100,258) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 156 RenderSVGText {text} at (105,264) size 27x18 contains 1 chunk(s)
 157 RenderSVGInlineText {#text} at (0,0) size 27x18
 158 chunk 1 text run 1 at (105.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 159 RenderSVGImage {image} at (156,258) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 160 RenderSVGText {text} at (162,264) size 27x18 contains 1 chunk(s)
 161 RenderSVGInlineText {#text} at (0,0) size 27x18
 162 chunk 1 text run 1 at (162.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 163 RenderSVGImage {image} at (214,258) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 164 RenderSVGText {text} at (219,264) size 27x18 contains 1 chunk(s)
 165 RenderSVGInlineText {#text} at (0,0) size 27x18
 166 chunk 1 text run 1 at (219.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 167 RenderSVGImage {image} at (270,258) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 168 RenderSVGText {text} at (276,264) size 27x18 contains 1 chunk(s)
 169 RenderSVGInlineText {#text} at (0,0) size 27x18
 170 chunk 1 text run 1 at (276.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 171 RenderSVGImage {image} at (328,258) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 172 RenderSVGText {text} at (333,264) size 28x18 contains 1 chunk(s)
 173 RenderSVGInlineText {#text} at (0,0) size 28x18
 174 chunk 1 text run 1 at (333.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 175 RenderSVGImage {image} at (384,258) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 176 RenderSVGText {text} at (390,264) size 28x18 contains 1 chunk(s)
 177 RenderSVGInlineText {#text} at (0,0) size 28x18
 178 chunk 1 text run 1 at (390.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 179 RenderSVGImage {image} at (442,258) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 180 RenderSVGText {text} at (447,264) size 28x18 contains 1 chunk(s)
 181 RenderSVGInlineText {#text} at (0,0) size 28x18
 182 chunk 1 text run 1 at (447.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 183 RenderSVGImage {image} at (498,258) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 184 RenderSVGText {text} at (504,264) size 28x18 contains 1 chunk(s)
 185 RenderSVGInlineText {#text} at (0,0) size 28x18
 186 chunk 1 text run 1 at (504.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 187 RenderSVGText {text} at (0,331) size 46x18 contains 1 chunk(s)
 188 RenderSVGInlineText {#text} at (0,0) size 46x18
 189 chunk 1 text run 1 at (0.00,345.00) startOffset 0 endOffset 7 width 46.00: "painted"
 190 RenderSVGImage {image} at (100,314) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 191 RenderSVGText {text} at (105,321) size 27x18 contains 1 chunk(s)
 192 RenderSVGInlineText {#text} at (0,0) size 27x18
 193 chunk 1 text run 1 at (105.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 194 RenderSVGImage {image} at (156,314) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 195 RenderSVGText {text} at (162,321) size 27x18 contains 1 chunk(s)
 196 RenderSVGInlineText {#text} at (0,0) size 27x18
 197 chunk 1 text run 1 at (162.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 198 RenderSVGImage {image} at (214,314) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 199 RenderSVGText {text} at (219,321) size 27x18 contains 1 chunk(s)
 200 RenderSVGInlineText {#text} at (0,0) size 27x18
 201 chunk 1 text run 1 at (219.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 202 RenderSVGImage {image} at (270,314) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 203 RenderSVGText {text} at (276,321) size 27x18 contains 1 chunk(s)
 204 RenderSVGInlineText {#text} at (0,0) size 27x18
 205 chunk 1 text run 1 at (276.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 206 RenderSVGImage {image} at (328,314) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 207 RenderSVGText {text} at (333,321) size 27x18 contains 1 chunk(s)
 208 RenderSVGInlineText {#text} at (0,0) size 27x18
 209 chunk 1 text run 1 at (333.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 210 RenderSVGImage {image} at (384,314) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 211 RenderSVGText {text} at (390,321) size 27x18 contains 1 chunk(s)
 212 RenderSVGInlineText {#text} at (0,0) size 27x18
 213 chunk 1 text run 1 at (390.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 214 RenderSVGImage {image} at (442,314) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 215 RenderSVGText {text} at (447,321) size 27x18 contains 1 chunk(s)
 216 RenderSVGInlineText {#text} at (0,0) size 27x18
 217 chunk 1 text run 1 at (447.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 218 RenderSVGImage {image} at (498,314) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 219 RenderSVGText {text} at (504,321) size 27x18 contains 1 chunk(s)
 220 RenderSVGInlineText {#text} at (0,0) size 27x18
 221 chunk 1 text run 1 at (504.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 222 RenderSVGText {text} at (0,388) size 17x18 contains 1 chunk(s)
 223 RenderSVGInlineText {#text} at (0,0) size 17x18
 224 chunk 1 text run 1 at (0.00,402.00) startOffset 0 endOffset 4 width 17.00: "fill"
 225 RenderSVGImage {image} at (100,372) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 226 RenderSVGText {text} at (105,378) size 27x18 contains 1 chunk(s)
 227 RenderSVGInlineText {#text} at (0,0) size 27x18
 228 chunk 1 text run 1 at (105.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 229 RenderSVGImage {image} at (156,372) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 230 RenderSVGText {text} at (162,378) size 27x18 contains 1 chunk(s)
 231 RenderSVGInlineText {#text} at (0,0) size 27x18
 232 chunk 1 text run 1 at (162.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 233 RenderSVGImage {image} at (214,372) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 234 RenderSVGText {text} at (219,378) size 27x18 contains 1 chunk(s)
 235 RenderSVGInlineText {#text} at (0,0) size 27x18
 236 chunk 1 text run 1 at (219.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 237 RenderSVGImage {image} at (270,372) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 238 RenderSVGText {text} at (276,378) size 27x18 contains 1 chunk(s)
 239 RenderSVGInlineText {#text} at (0,0) size 27x18
 240 chunk 1 text run 1 at (276.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 241 RenderSVGImage {image} at (328,372) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 242 RenderSVGText {text} at (333,378) size 27x18 contains 1 chunk(s)
 243 RenderSVGInlineText {#text} at (0,0) size 27x18
 244 chunk 1 text run 1 at (333.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 245 RenderSVGImage {image} at (384,372) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 246 RenderSVGText {text} at (390,378) size 27x18 contains 1 chunk(s)
 247 RenderSVGInlineText {#text} at (0,0) size 27x18
 248 chunk 1 text run 1 at (390.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 249 RenderSVGImage {image} at (442,372) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 250 RenderSVGText {text} at (447,378) size 27x18 contains 1 chunk(s)
 251 RenderSVGInlineText {#text} at (0,0) size 27x18
 252 chunk 1 text run 1 at (447.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 253 RenderSVGImage {image} at (498,372) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 254 RenderSVGText {text} at (504,378) size 27x18 contains 1 chunk(s)
 255 RenderSVGInlineText {#text} at (0,0) size 27x18
 256 chunk 1 text run 1 at (504.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 257 RenderSVGText {text} at (0,445) size 38x18 contains 1 chunk(s)
 258 RenderSVGInlineText {#text} at (0,0) size 38x18
 259 chunk 1 text run 1 at (0.00,459.00) startOffset 0 endOffset 6 width 38.00: "stroke"
 260 RenderSVGImage {image} at (100,428) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 261 RenderSVGText {text} at (105,435) size 27x18 contains 1 chunk(s)
 262 RenderSVGInlineText {#text} at (0,0) size 27x18
 263 chunk 1 text run 1 at (105.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 264 RenderSVGImage {image} at (156,428) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 265 RenderSVGText {text} at (162,435) size 27x18 contains 1 chunk(s)
 266 RenderSVGInlineText {#text} at (0,0) size 27x18
 267 chunk 1 text run 1 at (162.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 268 RenderSVGImage {image} at (214,428) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 269 RenderSVGText {text} at (219,435) size 27x18 contains 1 chunk(s)
 270 RenderSVGInlineText {#text} at (0,0) size 27x18
 271 chunk 1 text run 1 at (219.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 272 RenderSVGImage {image} at (270,428) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 273 RenderSVGText {text} at (276,435) size 27x18 contains 1 chunk(s)
 274 RenderSVGInlineText {#text} at (0,0) size 27x18
 275 chunk 1 text run 1 at (276.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 276 RenderSVGImage {image} at (328,428) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 277 RenderSVGText {text} at (333,435) size 27x18 contains 1 chunk(s)
 278 RenderSVGInlineText {#text} at (0,0) size 27x18
 279 chunk 1 text run 1 at (333.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 280 RenderSVGImage {image} at (384,428) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 281 RenderSVGText {text} at (390,435) size 27x18 contains 1 chunk(s)
 282 RenderSVGInlineText {#text} at (0,0) size 27x18
 283 chunk 1 text run 1 at (390.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 284 RenderSVGImage {image} at (442,428) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 285 RenderSVGText {text} at (447,435) size 27x18 contains 1 chunk(s)
 286 RenderSVGInlineText {#text} at (0,0) size 27x18
 287 chunk 1 text run 1 at (447.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 288 RenderSVGImage {image} at (498,428) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 289 RenderSVGText {text} at (504,435) size 27x18 contains 1 chunk(s)
 290 RenderSVGInlineText {#text} at (0,0) size 27x18
 291 chunk 1 text run 1 at (504.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 292 RenderSVGText {text} at (0,502) size 15x18 contains 1 chunk(s)
 293 RenderSVGInlineText {#text} at (0,0) size 15x18
 294 chunk 1 text run 1 at (0.00,516.00) startOffset 0 endOffset 3 width 15.00: "all"
 295 RenderSVGImage {image} at (100,486) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 296 RenderSVGText {text} at (105,492) size 27x18 contains 1 chunk(s)
 297 RenderSVGInlineText {#text} at (0,0) size 27x18
 298 chunk 1 text run 1 at (105.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 299 RenderSVGImage {image} at (156,486) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 300 RenderSVGText {text} at (162,492) size 27x18 contains 1 chunk(s)
 301 RenderSVGInlineText {#text} at (0,0) size 27x18
 302 chunk 1 text run 1 at (162.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 303 RenderSVGImage {image} at (214,486) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 304 RenderSVGText {text} at (219,492) size 27x18 contains 1 chunk(s)
 305 RenderSVGInlineText {#text} at (0,0) size 27x18
 306 chunk 1 text run 1 at (219.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 307 RenderSVGImage {image} at (270,486) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 308 RenderSVGText {text} at (276,492) size 27x18 contains 1 chunk(s)
 309 RenderSVGInlineText {#text} at (0,0) size 27x18
 310 chunk 1 text run 1 at (276.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 311 RenderSVGImage {image} at (328,486) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 312 RenderSVGText {text} at (333,492) size 27x18 contains 1 chunk(s)
 313 RenderSVGInlineText {#text} at (0,0) size 27x18
 314 chunk 1 text run 1 at (333.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 315 RenderSVGImage {image} at (384,486) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 316 RenderSVGText {text} at (390,492) size 27x18 contains 1 chunk(s)
 317 RenderSVGInlineText {#text} at (0,0) size 27x18
 318 chunk 1 text run 1 at (390.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 319 RenderSVGImage {image} at (442,486) size 50x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 320 RenderSVGText {text} at (447,492) size 27x18 contains 1 chunk(s)
 321 RenderSVGInlineText {#text} at (0,0) size 27x18
 322 chunk 1 text run 1 at (447.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 323 RenderSVGImage {image} at (498,486) size 52x50 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 324 RenderSVGText {text} at (504,492) size 27x18 contains 1 chunk(s)
 325 RenderSVGInlineText {#text} at (0,0) size 27x18
 326 chunk 1 text run 1 at (504.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 327 RenderSVGText {text} at (0,559) size 31x18 contains 1 chunk(s)
 328 RenderSVGInlineText {#text} at (0,0) size 31x18
 329 chunk 1 text run 1 at (0.00,573.00) startOffset 0 endOffset 4 width 31.00: "none"
 330 RenderSVGImage {image} at (100,542) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 331 RenderSVGText {text} at (105,549) size 28x18 contains 1 chunk(s)
 332 RenderSVGInlineText {#text} at (0,0) size 28x18
 333 chunk 1 text run 1 at (105.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 334 RenderSVGImage {image} at (156,542) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 335 RenderSVGText {text} at (162,549) size 28x18 contains 1 chunk(s)
 336 RenderSVGInlineText {#text} at (0,0) size 28x18
 337 chunk 1 text run 1 at (162.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 338 RenderSVGImage {image} at (214,542) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 339 RenderSVGText {text} at (219,549) size 28x18 contains 1 chunk(s)
 340 RenderSVGInlineText {#text} at (0,0) size 28x18
 341 chunk 1 text run 1 at (219.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 342 RenderSVGImage {image} at (270,542) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 343 RenderSVGText {text} at (276,549) size 28x18 contains 1 chunk(s)
 344 RenderSVGInlineText {#text} at (0,0) size 28x18
 345 chunk 1 text run 1 at (276.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 346 RenderSVGImage {image} at (328,542) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 347 RenderSVGText {text} at (333,549) size 28x18 contains 1 chunk(s)
 348 RenderSVGInlineText {#text} at (0,0) size 28x18
 349 chunk 1 text run 1 at (333.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 350 RenderSVGImage {image} at (384,542) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 351 RenderSVGText {text} at (390,549) size 28x18 contains 1 chunk(s)
 352 RenderSVGInlineText {#text} at (0,0) size 28x18
 353 chunk 1 text run 1 at (390.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 354 RenderSVGImage {image} at (442,542) size 50x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 355 RenderSVGText {text} at (447,549) size 28x18 contains 1 chunk(s)
 356 RenderSVGInlineText {#text} at (0,0) size 28x18
 357 chunk 1 text run 1 at (447.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 358 RenderSVGImage {image} at (498,542) size 52x52 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 359 RenderSVGText {text} at (504,549) size 28x18 contains 1 chunk(s)
 360 RenderSVGInlineText {#text} at (0,0) size 28x18
 361 chunk 1 text run 1 at (504.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 362caret: position 18 of child 0 {#text} of child 5 {text} of child 1 {svg} of document

LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.png


Added

40dafdd259b0309b30d4ce0d535c7021

LayoutTests/platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x600
 4 RenderSVGRoot {svg} at (0,6) size 532x580
 5 RenderSVGText {text} at (110,6) size 107x18 contains 1 chunk(s)
 6 RenderSVGInlineText {#text} at (0,0) size 107x18
 7 chunk 1 text run 1 at (110.00,20.00) startOffset 0 endOffset 19 width 107.00: "Visibility: visible"
 8 RenderSVGText {text} at (340,6) size 109x18 contains 1 chunk(s)
 9 RenderSVGInlineText {#text} at (0,0) size 109x18
 10 chunk 1 text run 1 at (340.00,20.00) startOffset 0 endOffset 18 width 109.00: "Visibility: hidden"
 11 RenderSVGContainer {g} at (0,22) size 532x564
 12 RenderSVGText {text} at (0,46) size 27x18 contains 1 chunk(s)
 13 RenderSVGInlineText {#text} at (0,0) size 27x18
 14 chunk 1 text run 1 at (0.00,60.00) startOffset 0 endOffset 4 width 27.00: "auto"
 15 RenderSVGText {text} at (50,12) size 10x23 contains 1 chunk(s)
 16 RenderSVGInlineText {#text} at (0,0) size 10x23
 17 chunk 1 text run 1 at (50.00,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 18 RenderSVGText {text} at (105,36) size 28x18 contains 1 chunk(s)
 19 RenderSVGInlineText {#text} at (0,0) size 28x18
 20 chunk 1 text run 1 at (105.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 21 RenderSVGText {text} at (78,12) size 11x23 contains 1 chunk(s)
 22 RenderSVGInlineText {#text} at (0,0) size 11x23
 23 chunk 1 text run 1 at (78.50,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 24 RenderSVGText {text} at (162,36) size 27x18 contains 1 chunk(s)
 25 RenderSVGInlineText {#text} at (0,0) size 27x18
 26 chunk 1 text run 1 at (162.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 27 RenderSVGText {text} at (107,12) size 10x23 contains 1 chunk(s)
 28 RenderSVGInlineText {#text} at (0,0) size 10x23
 29 chunk 1 text run 1 at (107.00,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 30 RenderSVGText {text} at (219,36) size 27x18 contains 1 chunk(s)
 31 RenderSVGInlineText {#text} at (0,0) size 27x18
 32 chunk 1 text run 1 at (219.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 33 RenderSVGText {text} at (135,12) size 11x23 contains 1 chunk(s)
 34 RenderSVGInlineText {#text} at (0,0) size 11x23
 35 chunk 1 text run 1 at (135.50,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 36 RenderSVGText {text} at (276,36) size 27x18 contains 1 chunk(s)
 37 RenderSVGInlineText {#text} at (0,0) size 27x18
 38 chunk 1 text run 1 at (276.00,50.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 39 RenderSVGText {text} at (164,12) size 10x23 contains 1 chunk(s)
 40 RenderSVGInlineText {#text} at (0,0) size 10x23
 41 chunk 1 text run 1 at (164.00,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 42 RenderSVGText {text} at (333,36) size 28x18 contains 1 chunk(s)
 43 RenderSVGInlineText {#text} at (0,0) size 28x18
 44 chunk 1 text run 1 at (333.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 45 RenderSVGText {text} at (192,12) size 11x23 contains 1 chunk(s)
 46 RenderSVGInlineText {#text} at (0,0) size 11x23
 47 chunk 1 text run 1 at (192.50,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 48 RenderSVGText {text} at (390,36) size 28x18 contains 1 chunk(s)
 49 RenderSVGInlineText {#text} at (0,0) size 28x18
 50 chunk 1 text run 1 at (390.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 51 RenderSVGText {text} at (221,12) size 10x23 contains 1 chunk(s)
 52 RenderSVGInlineText {#text} at (0,0) size 10x23
 53 chunk 1 text run 1 at (221.00,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 54 RenderSVGText {text} at (447,36) size 28x18 contains 1 chunk(s)
 55 RenderSVGInlineText {#text} at (0,0) size 28x18
 56 chunk 1 text run 1 at (447.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 57 RenderSVGText {text} at (249,12) size 11x23 contains 1 chunk(s)
 58 RenderSVGInlineText {#text} at (0,0) size 11x23
 59 chunk 1 text run 1 at (249.50,30.00) startOffset 0 endOffset 1 width 10.00: "#"
 60 RenderSVGText {text} at (504,36) size 28x18 contains 1 chunk(s)
 61 RenderSVGInlineText {#text} at (0,0) size 28x18
 62 chunk 1 text run 1 at (504.00,50.00) startOffset 0 endOffset 4 width 28.00: "miss"
 63 RenderSVGText {text} at (0,103) size 88x18 contains 1 chunk(s)
 64 RenderSVGInlineText {#text} at (0,0) size 88x18
 65 chunk 1 text run 1 at (0.00,117.00) startOffset 0 endOffset 14 width 88.00: "visiblePainted"
 66 RenderSVGText {text} at (50,40) size 10x24 contains 1 chunk(s)
 67 RenderSVGInlineText {#text} at (0,0) size 10x24
 68 chunk 1 text run 1 at (50.00,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 69 RenderSVGText {text} at (105,93) size 28x18 contains 1 chunk(s)
 70 RenderSVGInlineText {#text} at (0,0) size 28x18
 71 chunk 1 text run 1 at (105.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 72 RenderSVGText {text} at (78,40) size 11x24 contains 1 chunk(s)
 73 RenderSVGInlineText {#text} at (0,0) size 11x24
 74 chunk 1 text run 1 at (78.50,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 75 RenderSVGText {text} at (162,93) size 27x18 contains 1 chunk(s)
 76 RenderSVGInlineText {#text} at (0,0) size 27x18
 77 chunk 1 text run 1 at (162.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 78 RenderSVGText {text} at (107,40) size 10x24 contains 1 chunk(s)
 79 RenderSVGInlineText {#text} at (0,0) size 10x24
 80 chunk 1 text run 1 at (107.00,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 81 RenderSVGText {text} at (219,93) size 27x18 contains 1 chunk(s)
 82 RenderSVGInlineText {#text} at (0,0) size 27x18
 83 chunk 1 text run 1 at (219.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 84 RenderSVGText {text} at (135,40) size 11x24 contains 1 chunk(s)
 85 RenderSVGInlineText {#text} at (0,0) size 11x24
 86 chunk 1 text run 1 at (135.50,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 87 RenderSVGText {text} at (276,93) size 27x18 contains 1 chunk(s)
 88 RenderSVGInlineText {#text} at (0,0) size 27x18
 89 chunk 1 text run 1 at (276.00,107.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 90 RenderSVGText {text} at (164,40) size 10x24 contains 1 chunk(s)
 91 RenderSVGInlineText {#text} at (0,0) size 10x24
 92 chunk 1 text run 1 at (164.00,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 93 RenderSVGText {text} at (333,93) size 28x18 contains 1 chunk(s)
 94 RenderSVGInlineText {#text} at (0,0) size 28x18
 95 chunk 1 text run 1 at (333.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 96 RenderSVGText {text} at (192,40) size 11x24 contains 1 chunk(s)
 97 RenderSVGInlineText {#text} at (0,0) size 11x24
 98 chunk 1 text run 1 at (192.50,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 99 RenderSVGText {text} at (390,93) size 28x18 contains 1 chunk(s)
 100 RenderSVGInlineText {#text} at (0,0) size 28x18
 101 chunk 1 text run 1 at (390.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 102 RenderSVGText {text} at (221,40) size 10x24 contains 1 chunk(s)
 103 RenderSVGInlineText {#text} at (0,0) size 10x24
 104 chunk 1 text run 1 at (221.00,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 105 RenderSVGText {text} at (447,93) size 28x18 contains 1 chunk(s)
 106 RenderSVGInlineText {#text} at (0,0) size 28x18
 107 chunk 1 text run 1 at (447.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 108 RenderSVGText {text} at (249,40) size 11x24 contains 1 chunk(s)
 109 RenderSVGInlineText {#text} at (0,0) size 11x24
 110 chunk 1 text run 1 at (249.50,58.50) startOffset 0 endOffset 1 width 10.00: "#"
 111 RenderSVGText {text} at (504,93) size 28x18 contains 1 chunk(s)
 112 RenderSVGInlineText {#text} at (0,0) size 28x18
 113 chunk 1 text run 1 at (504.00,107.00) startOffset 0 endOffset 4 width 28.00: "miss"
 114 RenderSVGText {text} at (0,160) size 62x18 contains 1 chunk(s)
 115 RenderSVGInlineText {#text} at (0,0) size 62x18
 116 chunk 1 text run 1 at (0.00,174.00) startOffset 0 endOffset 11 width 62.00: "visibleFill"
 117 RenderSVGText {text} at (50,69) size 10x23 contains 1 chunk(s)
 118 RenderSVGInlineText {#text} at (0,0) size 10x23
 119 chunk 1 text run 1 at (50.00,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 120 RenderSVGText {text} at (105,150) size 27x18 contains 1 chunk(s)
 121 RenderSVGInlineText {#text} at (0,0) size 27x18
 122 chunk 1 text run 1 at (105.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 123 RenderSVGText {text} at (78,69) size 11x23 contains 1 chunk(s)
 124 RenderSVGInlineText {#text} at (0,0) size 11x23
 125 chunk 1 text run 1 at (78.50,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 126 RenderSVGText {text} at (162,150) size 27x18 contains 1 chunk(s)
 127 RenderSVGInlineText {#text} at (0,0) size 27x18
 128 chunk 1 text run 1 at (162.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 129 RenderSVGText {text} at (107,69) size 10x23 contains 1 chunk(s)
 130 RenderSVGInlineText {#text} at (0,0) size 10x23
 131 chunk 1 text run 1 at (107.00,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 132 RenderSVGText {text} at (219,150) size 27x18 contains 1 chunk(s)
 133 RenderSVGInlineText {#text} at (0,0) size 27x18
 134 chunk 1 text run 1 at (219.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 135 RenderSVGText {text} at (135,69) size 11x23 contains 1 chunk(s)
 136 RenderSVGInlineText {#text} at (0,0) size 11x23
 137 chunk 1 text run 1 at (135.50,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 138 RenderSVGText {text} at (276,150) size 27x18 contains 1 chunk(s)
 139 RenderSVGInlineText {#text} at (0,0) size 27x18
 140 chunk 1 text run 1 at (276.00,164.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 141 RenderSVGText {text} at (164,69) size 10x23 contains 1 chunk(s)
 142 RenderSVGInlineText {#text} at (0,0) size 10x23
 143 chunk 1 text run 1 at (164.00,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 144 RenderSVGText {text} at (333,150) size 28x18 contains 1 chunk(s)
 145 RenderSVGInlineText {#text} at (0,0) size 28x18
 146 chunk 1 text run 1 at (333.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 147 RenderSVGText {text} at (192,69) size 11x23 contains 1 chunk(s)
 148 RenderSVGInlineText {#text} at (0,0) size 11x23
 149 chunk 1 text run 1 at (192.50,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 150 RenderSVGText {text} at (390,150) size 28x18 contains 1 chunk(s)
 151 RenderSVGInlineText {#text} at (0,0) size 28x18
 152 chunk 1 text run 1 at (390.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 153 RenderSVGText {text} at (221,69) size 10x23 contains 1 chunk(s)
 154 RenderSVGInlineText {#text} at (0,0) size 10x23
 155 chunk 1 text run 1 at (221.00,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 156 RenderSVGText {text} at (447,150) size 28x18 contains 1 chunk(s)
 157 RenderSVGInlineText {#text} at (0,0) size 28x18
 158 chunk 1 text run 1 at (447.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 159 RenderSVGText {text} at (249,69) size 11x23 contains 1 chunk(s)
 160 RenderSVGInlineText {#text} at (0,0) size 11x23
 161 chunk 1 text run 1 at (249.50,87.00) startOffset 0 endOffset 1 width 10.00: "#"
 162 RenderSVGText {text} at (504,150) size 28x18 contains 1 chunk(s)
 163 RenderSVGInlineText {#text} at (0,0) size 28x18
 164 chunk 1 text run 1 at (504.00,164.00) startOffset 0 endOffset 4 width 28.00: "miss"
 165 RenderSVGText {text} at (0,217) size 82x18 contains 1 chunk(s)
 166 RenderSVGInlineText {#text} at (0,0) size 82x18
 167 chunk 1 text run 1 at (0.00,231.00) startOffset 0 endOffset 13 width 82.00: "visibleStroke"
 168 RenderSVGText {text} at (50,97) size 10x24 contains 1 chunk(s)
 169 RenderSVGInlineText {#text} at (0,0) size 10x24
 170 chunk 1 text run 1 at (50.00,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 171 RenderSVGText {text} at (105,207) size 27x18 contains 1 chunk(s)
 172 RenderSVGInlineText {#text} at (0,0) size 27x18
 173 chunk 1 text run 1 at (105.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 174 RenderSVGText {text} at (78,97) size 11x24 contains 1 chunk(s)
 175 RenderSVGInlineText {#text} at (0,0) size 11x24
 176 chunk 1 text run 1 at (78.50,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 177 RenderSVGText {text} at (162,207) size 27x18 contains 1 chunk(s)
 178 RenderSVGInlineText {#text} at (0,0) size 27x18
 179 chunk 1 text run 1 at (162.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 180 RenderSVGText {text} at (107,97) size 10x24 contains 1 chunk(s)
 181 RenderSVGInlineText {#text} at (0,0) size 10x24
 182 chunk 1 text run 1 at (107.00,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 183 RenderSVGText {text} at (219,207) size 27x18 contains 1 chunk(s)
 184 RenderSVGInlineText {#text} at (0,0) size 27x18
 185 chunk 1 text run 1 at (219.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 186 RenderSVGText {text} at (135,97) size 11x24 contains 1 chunk(s)
 187 RenderSVGInlineText {#text} at (0,0) size 11x24
 188 chunk 1 text run 1 at (135.50,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 189 RenderSVGText {text} at (276,207) size 27x18 contains 1 chunk(s)
 190 RenderSVGInlineText {#text} at (0,0) size 27x18
 191 chunk 1 text run 1 at (276.00,221.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 192 RenderSVGText {text} at (164,97) size 10x24 contains 1 chunk(s)
 193 RenderSVGInlineText {#text} at (0,0) size 10x24
 194 chunk 1 text run 1 at (164.00,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 195 RenderSVGText {text} at (333,207) size 28x18 contains 1 chunk(s)
 196 RenderSVGInlineText {#text} at (0,0) size 28x18
 197 chunk 1 text run 1 at (333.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 198 RenderSVGText {text} at (192,97) size 11x24 contains 1 chunk(s)
 199 RenderSVGInlineText {#text} at (0,0) size 11x24
 200 chunk 1 text run 1 at (192.50,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 201 RenderSVGText {text} at (390,207) size 28x18 contains 1 chunk(s)
 202 RenderSVGInlineText {#text} at (0,0) size 28x18
 203 chunk 1 text run 1 at (390.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 204 RenderSVGText {text} at (221,97) size 10x24 contains 1 chunk(s)
 205 RenderSVGInlineText {#text} at (0,0) size 10x24
 206 chunk 1 text run 1 at (221.00,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 207 RenderSVGText {text} at (447,207) size 28x18 contains 1 chunk(s)
 208 RenderSVGInlineText {#text} at (0,0) size 28x18
 209 chunk 1 text run 1 at (447.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 210 RenderSVGText {text} at (249,97) size 11x24 contains 1 chunk(s)
 211 RenderSVGInlineText {#text} at (0,0) size 11x24
 212 chunk 1 text run 1 at (249.50,115.50) startOffset 0 endOffset 1 width 10.00: "#"
 213 RenderSVGText {text} at (504,207) size 28x18 contains 1 chunk(s)
 214 RenderSVGInlineText {#text} at (0,0) size 28x18
 215 chunk 1 text run 1 at (504.00,221.00) startOffset 0 endOffset 4 width 28.00: "miss"
 216 RenderSVGText {text} at (0,274) size 41x18 contains 1 chunk(s)
 217 RenderSVGInlineText {#text} at (0,0) size 41x18
 218 chunk 1 text run 1 at (0.00,288.00) startOffset 0 endOffset 7 width 41.00: "visible"
 219 RenderSVGText {text} at (50,126) size 10x23 contains 1 chunk(s)
 220 RenderSVGInlineText {#text} at (0,0) size 10x23
 221 chunk 1 text run 1 at (50.00,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 222 RenderSVGText {text} at (105,264) size 27x18 contains 1 chunk(s)
 223 RenderSVGInlineText {#text} at (0,0) size 27x18
 224 chunk 1 text run 1 at (105.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 225 RenderSVGText {text} at (78,126) size 11x23 contains 1 chunk(s)
 226 RenderSVGInlineText {#text} at (0,0) size 11x23
 227 chunk 1 text run 1 at (78.50,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 228 RenderSVGText {text} at (162,264) size 27x18 contains 1 chunk(s)
 229 RenderSVGInlineText {#text} at (0,0) size 27x18
 230 chunk 1 text run 1 at (162.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 231 RenderSVGText {text} at (107,126) size 10x23 contains 1 chunk(s)
 232 RenderSVGInlineText {#text} at (0,0) size 10x23
 233 chunk 1 text run 1 at (107.00,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 234 RenderSVGText {text} at (219,264) size 27x18 contains 1 chunk(s)
 235 RenderSVGInlineText {#text} at (0,0) size 27x18
 236 chunk 1 text run 1 at (219.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 237 RenderSVGText {text} at (135,126) size 11x23 contains 1 chunk(s)
 238 RenderSVGInlineText {#text} at (0,0) size 11x23
 239 chunk 1 text run 1 at (135.50,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 240 RenderSVGText {text} at (276,264) size 27x18 contains 1 chunk(s)
 241 RenderSVGInlineText {#text} at (0,0) size 27x18
 242 chunk 1 text run 1 at (276.00,278.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 243 RenderSVGText {text} at (164,126) size 10x23 contains 1 chunk(s)
 244 RenderSVGInlineText {#text} at (0,0) size 10x23
 245 chunk 1 text run 1 at (164.00,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 246 RenderSVGText {text} at (333,264) size 28x18 contains 1 chunk(s)
 247 RenderSVGInlineText {#text} at (0,0) size 28x18
 248 chunk 1 text run 1 at (333.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 249 RenderSVGText {text} at (192,126) size 11x23 contains 1 chunk(s)
 250 RenderSVGInlineText {#text} at (0,0) size 11x23
 251 chunk 1 text run 1 at (192.50,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 252 RenderSVGText {text} at (390,264) size 28x18 contains 1 chunk(s)
 253 RenderSVGInlineText {#text} at (0,0) size 28x18
 254 chunk 1 text run 1 at (390.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 255 RenderSVGText {text} at (221,126) size 10x23 contains 1 chunk(s)
 256 RenderSVGInlineText {#text} at (0,0) size 10x23
 257 chunk 1 text run 1 at (221.00,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 258 RenderSVGText {text} at (447,264) size 28x18 contains 1 chunk(s)
 259 RenderSVGInlineText {#text} at (0,0) size 28x18
 260 chunk 1 text run 1 at (447.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 261 RenderSVGText {text} at (249,126) size 11x23 contains 1 chunk(s)
 262 RenderSVGInlineText {#text} at (0,0) size 11x23
 263 chunk 1 text run 1 at (249.50,144.00) startOffset 0 endOffset 1 width 10.00: "#"
 264 RenderSVGText {text} at (504,264) size 28x18 contains 1 chunk(s)
 265 RenderSVGInlineText {#text} at (0,0) size 28x18
 266 chunk 1 text run 1 at (504.00,278.00) startOffset 0 endOffset 4 width 28.00: "miss"
 267 RenderSVGText {text} at (0,331) size 46x18 contains 1 chunk(s)
 268 RenderSVGInlineText {#text} at (0,0) size 46x18
 269 chunk 1 text run 1 at (0.00,345.00) startOffset 0 endOffset 7 width 46.00: "painted"
 270 RenderSVGText {text} at (50,154) size 10x24 contains 1 chunk(s)
 271 RenderSVGInlineText {#text} at (0,0) size 10x24
 272 chunk 1 text run 1 at (50.00,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 273 RenderSVGText {text} at (105,321) size 28x18 contains 1 chunk(s)
 274 RenderSVGInlineText {#text} at (0,0) size 28x18
 275 chunk 1 text run 1 at (105.00,335.00) startOffset 0 endOffset 4 width 28.00: "miss"
 276 RenderSVGText {text} at (78,154) size 11x24 contains 1 chunk(s)
 277 RenderSVGInlineText {#text} at (0,0) size 11x24
 278 chunk 1 text run 1 at (78.50,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 279 RenderSVGText {text} at (162,321) size 27x18 contains 1 chunk(s)
 280 RenderSVGInlineText {#text} at (0,0) size 27x18
 281 chunk 1 text run 1 at (162.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 282 RenderSVGText {text} at (107,154) size 10x24 contains 1 chunk(s)
 283 RenderSVGInlineText {#text} at (0,0) size 10x24
 284 chunk 1 text run 1 at (107.00,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 285 RenderSVGText {text} at (219,321) size 27x18 contains 1 chunk(s)
 286 RenderSVGInlineText {#text} at (0,0) size 27x18
 287 chunk 1 text run 1 at (219.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 288 RenderSVGText {text} at (135,154) size 11x24 contains 1 chunk(s)
 289 RenderSVGInlineText {#text} at (0,0) size 11x24
 290 chunk 1 text run 1 at (135.50,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 291 RenderSVGText {text} at (276,321) size 27x18 contains 1 chunk(s)
 292 RenderSVGInlineText {#text} at (0,0) size 27x18
 293 chunk 1 text run 1 at (276.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 294 RenderSVGText {text} at (164,154) size 10x24 contains 1 chunk(s)
 295 RenderSVGInlineText {#text} at (0,0) size 10x24
 296 chunk 1 text run 1 at (164.00,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 297 RenderSVGText {text} at (333,321) size 28x18 contains 1 chunk(s)
 298 RenderSVGInlineText {#text} at (0,0) size 28x18
 299 chunk 1 text run 1 at (333.00,335.00) startOffset 0 endOffset 4 width 28.00: "miss"
 300 RenderSVGText {text} at (192,154) size 11x24 contains 1 chunk(s)
 301 RenderSVGInlineText {#text} at (0,0) size 11x24
 302 chunk 1 text run 1 at (192.50,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 303 RenderSVGText {text} at (390,321) size 27x18 contains 1 chunk(s)
 304 RenderSVGInlineText {#text} at (0,0) size 27x18
 305 chunk 1 text run 1 at (390.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 306 RenderSVGText {text} at (221,154) size 10x24 contains 1 chunk(s)
 307 RenderSVGInlineText {#text} at (0,0) size 10x24
 308 chunk 1 text run 1 at (221.00,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 309 RenderSVGText {text} at (447,321) size 27x18 contains 1 chunk(s)
 310 RenderSVGInlineText {#text} at (0,0) size 27x18
 311 chunk 1 text run 1 at (447.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 312 RenderSVGText {text} at (249,154) size 11x24 contains 1 chunk(s)
 313 RenderSVGInlineText {#text} at (0,0) size 11x24
 314 chunk 1 text run 1 at (249.50,172.50) startOffset 0 endOffset 1 width 10.00: "#"
 315 RenderSVGText {text} at (504,321) size 27x18 contains 1 chunk(s)
 316 RenderSVGInlineText {#text} at (0,0) size 27x18
 317 chunk 1 text run 1 at (504.00,335.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 318 RenderSVGText {text} at (0,388) size 17x18 contains 1 chunk(s)
 319 RenderSVGInlineText {#text} at (0,0) size 17x18
 320 chunk 1 text run 1 at (0.00,402.00) startOffset 0 endOffset 4 width 17.00: "fill"
 321 RenderSVGText {text} at (50,183) size 10x23 contains 1 chunk(s)
 322 RenderSVGInlineText {#text} at (0,0) size 10x23
 323 chunk 1 text run 1 at (50.00,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 324 RenderSVGText {text} at (105,378) size 27x18 contains 1 chunk(s)
 325 RenderSVGInlineText {#text} at (0,0) size 27x18
 326 chunk 1 text run 1 at (105.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 327 RenderSVGText {text} at (78,183) size 11x23 contains 1 chunk(s)
 328 RenderSVGInlineText {#text} at (0,0) size 11x23
 329 chunk 1 text run 1 at (78.50,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 330 RenderSVGText {text} at (162,378) size 27x18 contains 1 chunk(s)
 331 RenderSVGInlineText {#text} at (0,0) size 27x18
 332 chunk 1 text run 1 at (162.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 333 RenderSVGText {text} at (107,183) size 10x23 contains 1 chunk(s)
 334 RenderSVGInlineText {#text} at (0,0) size 10x23
 335 chunk 1 text run 1 at (107.00,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 336 RenderSVGText {text} at (219,378) size 27x18 contains 1 chunk(s)
 337 RenderSVGInlineText {#text} at (0,0) size 27x18
 338 chunk 1 text run 1 at (219.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 339 RenderSVGText {text} at (135,183) size 11x23 contains 1 chunk(s)
 340 RenderSVGInlineText {#text} at (0,0) size 11x23
 341 chunk 1 text run 1 at (135.50,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 342 RenderSVGText {text} at (276,378) size 27x18 contains 1 chunk(s)
 343 RenderSVGInlineText {#text} at (0,0) size 27x18
 344 chunk 1 text run 1 at (276.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 345 RenderSVGText {text} at (164,183) size 10x23 contains 1 chunk(s)
 346 RenderSVGInlineText {#text} at (0,0) size 10x23
 347 chunk 1 text run 1 at (164.00,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 348 RenderSVGText {text} at (333,378) size 27x18 contains 1 chunk(s)
 349 RenderSVGInlineText {#text} at (0,0) size 27x18
 350 chunk 1 text run 1 at (333.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 351 RenderSVGText {text} at (192,183) size 11x23 contains 1 chunk(s)
 352 RenderSVGInlineText {#text} at (0,0) size 11x23
 353 chunk 1 text run 1 at (192.50,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 354 RenderSVGText {text} at (390,378) size 27x18 contains 1 chunk(s)
 355 RenderSVGInlineText {#text} at (0,0) size 27x18
 356 chunk 1 text run 1 at (390.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 357 RenderSVGText {text} at (221,183) size 10x23 contains 1 chunk(s)
 358 RenderSVGInlineText {#text} at (0,0) size 10x23
 359 chunk 1 text run 1 at (221.00,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 360 RenderSVGText {text} at (447,378) size 27x18 contains 1 chunk(s)
 361 RenderSVGInlineText {#text} at (0,0) size 27x18
 362 chunk 1 text run 1 at (447.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 363 RenderSVGText {text} at (249,183) size 11x23 contains 1 chunk(s)
 364 RenderSVGInlineText {#text} at (0,0) size 11x23
 365 chunk 1 text run 1 at (249.50,201.00) startOffset 0 endOffset 1 width 10.00: "#"
 366 RenderSVGText {text} at (504,378) size 27x18 contains 1 chunk(s)
 367 RenderSVGInlineText {#text} at (0,0) size 27x18
 368 chunk 1 text run 1 at (504.00,392.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 369 RenderSVGText {text} at (0,445) size 38x18 contains 1 chunk(s)
 370 RenderSVGInlineText {#text} at (0,0) size 38x18
 371 chunk 1 text run 1 at (0.00,459.00) startOffset 0 endOffset 6 width 38.00: "stroke"
 372 RenderSVGText {text} at (50,211) size 10x24 contains 1 chunk(s)
 373 RenderSVGInlineText {#text} at (0,0) size 10x24
 374 chunk 1 text run 1 at (50.00,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 375 RenderSVGText {text} at (105,435) size 27x18 contains 1 chunk(s)
 376 RenderSVGInlineText {#text} at (0,0) size 27x18
 377 chunk 1 text run 1 at (105.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 378 RenderSVGText {text} at (78,211) size 11x24 contains 1 chunk(s)
 379 RenderSVGInlineText {#text} at (0,0) size 11x24
 380 chunk 1 text run 1 at (78.50,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 381 RenderSVGText {text} at (162,435) size 27x18 contains 1 chunk(s)
 382 RenderSVGInlineText {#text} at (0,0) size 27x18
 383 chunk 1 text run 1 at (162.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 384 RenderSVGText {text} at (107,211) size 10x24 contains 1 chunk(s)
 385 RenderSVGInlineText {#text} at (0,0) size 10x24
 386 chunk 1 text run 1 at (107.00,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 387 RenderSVGText {text} at (219,435) size 27x18 contains 1 chunk(s)
 388 RenderSVGInlineText {#text} at (0,0) size 27x18
 389 chunk 1 text run 1 at (219.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 390 RenderSVGText {text} at (135,211) size 11x24 contains 1 chunk(s)
 391 RenderSVGInlineText {#text} at (0,0) size 11x24
 392 chunk 1 text run 1 at (135.50,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 393 RenderSVGText {text} at (276,435) size 27x18 contains 1 chunk(s)
 394 RenderSVGInlineText {#text} at (0,0) size 27x18
 395 chunk 1 text run 1 at (276.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 396 RenderSVGText {text} at (164,211) size 10x24 contains 1 chunk(s)
 397 RenderSVGInlineText {#text} at (0,0) size 10x24
 398 chunk 1 text run 1 at (164.00,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 399 RenderSVGText {text} at (333,435) size 27x18 contains 1 chunk(s)
 400 RenderSVGInlineText {#text} at (0,0) size 27x18
 401 chunk 1 text run 1 at (333.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 402 RenderSVGText {text} at (192,211) size 11x24 contains 1 chunk(s)
 403 RenderSVGInlineText {#text} at (0,0) size 11x24
 404 chunk 1 text run 1 at (192.50,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 405 RenderSVGText {text} at (390,435) size 27x18 contains 1 chunk(s)
 406 RenderSVGInlineText {#text} at (0,0) size 27x18
 407 chunk 1 text run 1 at (390.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 408 RenderSVGText {text} at (221,211) size 10x24 contains 1 chunk(s)
 409 RenderSVGInlineText {#text} at (0,0) size 10x24
 410 chunk 1 text run 1 at (221.00,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 411 RenderSVGText {text} at (447,435) size 27x18 contains 1 chunk(s)
 412 RenderSVGInlineText {#text} at (0,0) size 27x18
 413 chunk 1 text run 1 at (447.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 414 RenderSVGText {text} at (249,211) size 11x24 contains 1 chunk(s)
 415 RenderSVGInlineText {#text} at (0,0) size 11x24
 416 chunk 1 text run 1 at (249.50,229.50) startOffset 0 endOffset 1 width 10.00: "#"
 417 RenderSVGText {text} at (504,435) size 27x18 contains 1 chunk(s)
 418 RenderSVGInlineText {#text} at (0,0) size 27x18
 419 chunk 1 text run 1 at (504.00,449.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 420 RenderSVGText {text} at (0,502) size 15x18 contains 1 chunk(s)
 421 RenderSVGInlineText {#text} at (0,0) size 15x18
 422 chunk 1 text run 1 at (0.00,516.00) startOffset 0 endOffset 3 width 15.00: "all"
 423 RenderSVGText {text} at (50,240) size 10x23 contains 1 chunk(s)
 424 RenderSVGInlineText {#text} at (0,0) size 10x23
 425 chunk 1 text run 1 at (50.00,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 426 RenderSVGText {text} at (105,492) size 27x18 contains 1 chunk(s)
 427 RenderSVGInlineText {#text} at (0,0) size 27x18
 428 chunk 1 text run 1 at (105.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 429 RenderSVGText {text} at (78,240) size 11x23 contains 1 chunk(s)
 430 RenderSVGInlineText {#text} at (0,0) size 11x23
 431 chunk 1 text run 1 at (78.50,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 432 RenderSVGText {text} at (162,492) size 27x18 contains 1 chunk(s)
 433 RenderSVGInlineText {#text} at (0,0) size 27x18
 434 chunk 1 text run 1 at (162.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 435 RenderSVGText {text} at (107,240) size 10x23 contains 1 chunk(s)
 436 RenderSVGInlineText {#text} at (0,0) size 10x23
 437 chunk 1 text run 1 at (107.00,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 438 RenderSVGText {text} at (219,492) size 27x18 contains 1 chunk(s)
 439 RenderSVGInlineText {#text} at (0,0) size 27x18
 440 chunk 1 text run 1 at (219.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 441 RenderSVGText {text} at (135,240) size 11x23 contains 1 chunk(s)
 442 RenderSVGInlineText {#text} at (0,0) size 11x23
 443 chunk 1 text run 1 at (135.50,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 444 RenderSVGText {text} at (276,492) size 27x18 contains 1 chunk(s)
 445 RenderSVGInlineText {#text} at (0,0) size 27x18
 446 chunk 1 text run 1 at (276.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 447 RenderSVGText {text} at (164,240) size 10x23 contains 1 chunk(s)
 448 RenderSVGInlineText {#text} at (0,0) size 10x23
 449 chunk 1 text run 1 at (164.00,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 450 RenderSVGText {text} at (333,492) size 27x18 contains 1 chunk(s)
 451 RenderSVGInlineText {#text} at (0,0) size 27x18
 452 chunk 1 text run 1 at (333.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 453 RenderSVGText {text} at (192,240) size 11x23 contains 1 chunk(s)
 454 RenderSVGInlineText {#text} at (0,0) size 11x23
 455 chunk 1 text run 1 at (192.50,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 456 RenderSVGText {text} at (390,492) size 27x18 contains 1 chunk(s)
 457 RenderSVGInlineText {#text} at (0,0) size 27x18
 458 chunk 1 text run 1 at (390.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 459 RenderSVGText {text} at (221,240) size 10x23 contains 1 chunk(s)
 460 RenderSVGInlineText {#text} at (0,0) size 10x23
 461 chunk 1 text run 1 at (221.00,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 462 RenderSVGText {text} at (447,492) size 27x18 contains 1 chunk(s)
 463 RenderSVGInlineText {#text} at (0,0) size 27x18
 464 chunk 1 text run 1 at (447.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 465 RenderSVGText {text} at (249,240) size 11x23 contains 1 chunk(s)
 466 RenderSVGInlineText {#text} at (0,0) size 11x23
 467 chunk 1 text run 1 at (249.50,258.00) startOffset 0 endOffset 1 width 10.00: "#"
 468 RenderSVGText {text} at (504,492) size 27x18 contains 1 chunk(s)
 469 RenderSVGInlineText {#text} at (0,0) size 27x18
 470 chunk 1 text run 1 at (504.00,506.00) startOffset 0 endOffset 3 width 27.00: "HIT"
 471 RenderSVGText {text} at (0,559) size 31x18 contains 1 chunk(s)
 472 RenderSVGInlineText {#text} at (0,0) size 31x18
 473 chunk 1 text run 1 at (0.00,573.00) startOffset 0 endOffset 4 width 31.00: "none"
 474 RenderSVGText {text} at (50,268) size 10x24 contains 1 chunk(s)
 475 RenderSVGInlineText {#text} at (0,0) size 10x24
 476 chunk 1 text run 1 at (50.00,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 477 RenderSVGText {text} at (105,549) size 28x18 contains 1 chunk(s)
 478 RenderSVGInlineText {#text} at (0,0) size 28x18
 479 chunk 1 text run 1 at (105.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 480 RenderSVGText {text} at (78,268) size 11x24 contains 1 chunk(s)
 481 RenderSVGInlineText {#text} at (0,0) size 11x24
 482 chunk 1 text run 1 at (78.50,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 483 RenderSVGText {text} at (162,549) size 28x18 contains 1 chunk(s)
 484 RenderSVGInlineText {#text} at (0,0) size 28x18
 485 chunk 1 text run 1 at (162.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 486 RenderSVGText {text} at (107,268) size 10x24 contains 1 chunk(s)
 487 RenderSVGInlineText {#text} at (0,0) size 10x24
 488 chunk 1 text run 1 at (107.00,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 489 RenderSVGText {text} at (219,549) size 28x18 contains 1 chunk(s)
 490 RenderSVGInlineText {#text} at (0,0) size 28x18
 491 chunk 1 text run 1 at (219.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 492 RenderSVGText {text} at (135,268) size 11x24 contains 1 chunk(s)
 493 RenderSVGInlineText {#text} at (0,0) size 11x24
 494 chunk 1 text run 1 at (135.50,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 495 RenderSVGText {text} at (276,549) size 28x18 contains 1 chunk(s)
 496 RenderSVGInlineText {#text} at (0,0) size 28x18
 497 chunk 1 text run 1 at (276.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 498 RenderSVGText {text} at (164,268) size 10x24 contains 1 chunk(s)
 499 RenderSVGInlineText {#text} at (0,0) size 10x24
 500 chunk 1 text run 1 at (164.00,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 501 RenderSVGText {text} at (333,549) size 28x18 contains 1 chunk(s)
 502 RenderSVGInlineText {#text} at (0,0) size 28x18
 503 chunk 1 text run 1 at (333.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 504 RenderSVGText {text} at (192,268) size 11x24 contains 1 chunk(s)
 505 RenderSVGInlineText {#text} at (0,0) size 11x24
 506 chunk 1 text run 1 at (192.50,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 507 RenderSVGText {text} at (390,549) size 28x18 contains 1 chunk(s)
 508 RenderSVGInlineText {#text} at (0,0) size 28x18
 509 chunk 1 text run 1 at (390.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 510 RenderSVGText {text} at (221,268) size 10x24 contains 1 chunk(s)
 511 RenderSVGInlineText {#text} at (0,0) size 10x24
 512 chunk 1 text run 1 at (221.00,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 513 RenderSVGText {text} at (447,549) size 28x18 contains 1 chunk(s)
 514 RenderSVGInlineText {#text} at (0,0) size 28x18
 515 chunk 1 text run 1 at (447.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 516 RenderSVGText {text} at (249,268) size 11x24 contains 1 chunk(s)
 517 RenderSVGInlineText {#text} at (0,0) size 11x24
 518 chunk 1 text run 1 at (249.50,286.50) startOffset 0 endOffset 1 width 10.00: "#"
 519 RenderSVGText {text} at (504,549) size 28x18 contains 1 chunk(s)
 520 RenderSVGInlineText {#text} at (0,0) size 28x18
 521 chunk 1 text run 1 at (504.00,563.00) startOffset 0 endOffset 4 width 28.00: "miss"
 522caret: position 18 of child 0 {#text} of child 5 {text} of child 1 {svg} of document

LayoutTests/platform/mac/svg/dom/css-transforms-expected.png


Added

540a6aa818338701cb9ba75cf44c66d0

LayoutTests/platform/mac/svg/dynamic-updates/SVG-dynamic-css-transform-expected.png


Added

899f63decc86d05c0d6bef5f8b89d369

LayoutTests/platform/mac/svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.png


Added

886c69ee4d86c446823f794432c2ac9f

LayoutTests/platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.png


Added

56e54a8319f3b18e9dfd2e8a98adf5a5

LayoutTests/platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x578
 4 RenderBlock {html} at (0,0) size 800x578
 5 RenderBody {body} at (8,8) size 784x562
 6 RenderBlock {div} at (10,10) size 220x542
 7 RenderBlock {h2} at (0,19) size 220x28
 8 RenderText {#text} at (0,0) size 154x28
 9 text run at (0,0) width 154: "SVG CSS scale"
 10 RenderBlock {h2} at (0,285) size 220x28
 11 RenderText {#text} at (0,0) size 105x28
 12 text run at (0,0) width 105: "SVG scale"
 13 RenderText {#text} at (240,0) size 4x18
 14 text run at (240,0) width 4: " "
 15 RenderBlock {div} at (254,10) size 220x542
 16 RenderBlock {h2} at (0,19) size 220x28
 17 RenderText {#text} at (0,0) size 211x28
 18 text run at (0,0) width 211: "SVG CSS compound"
 19 RenderBlock {h2} at (0,285) size 220x28
 20 RenderText {#text} at (0,0) size 162x28
 21 text run at (0,0) width 162: "SVG compound"
 22 RenderText {#text} at (0,0) size 0x0
 23layer at (28,84) size 200x200
 24 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 25 RenderSVGRoot {svg} at (39,95) size 140x140
 26 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 27 RenderSVGPath {circle} at (29,85) size 150x150 [transform={m=((5.00,0.00)(0.00,5.00)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=20.00]
 28 RenderSVGResourceClipper {clipPath} [id="clip-circle1"] [clipPathUnits=userSpaceOnUse]
 29 RenderSVGContainer {use} at (29,85) size 150x150
 30 RenderSVGContainer {g} at (29,85) size 150x150
 31 RenderSVGPath {circle} at (29,85) size 150x150 [transform={m=((5.00,0.00)(0.00,5.00)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=20.00]
 32 RenderSVGPath {rect} at (39,95) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=10.00] [width=200.00] [height=200.00]
 33 [clipPath="clip-circle1"] RenderSVGResourceClipper {clipPath} at (-50,-50) size 200x200
 34 RenderText {#text} at (0,0) size 0x0
 35layer at (28,350) size 200x200
 36 RenderBlock (relative positioned) {div} at (10,332) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 37 RenderSVGRoot {svg} at (39,361) size 140x140
 38 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 39 RenderSVGPath {circle} at (29,351) size 150x150 [transform={m=((5.00,0.00)(0.00,5.00)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=20.00]
 40 RenderSVGResourceClipper {clipPath} [id="clip-circle2"] [clipPathUnits=userSpaceOnUse]
 41 RenderSVGContainer {use} at (29,351) size 150x150
 42 RenderSVGContainer {g} at (29,351) size 150x150
 43 RenderSVGPath {circle} at (29,351) size 150x150 [transform={m=((5.00,0.00)(0.00,5.00)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [cx=10.00] [cy=10.00] [r=20.00]
 44 RenderSVGPath {rect} at (39,361) size 140x140 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=10.00] [width=200.00] [height=200.00]
 45 [clipPath="clip-circle2"] RenderSVGResourceClipper {clipPath} at (-50,-50) size 200x200
 46 RenderText {#text} at (0,0) size 0x0
 47layer at (272,84) size 200x200
 48 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 49 RenderSVGRoot {svg} at (283,95) size 132x188
 50 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 51 RenderSVGPath {rect} at (273,92) size 142x191 [transform={m=((3.54,3.54)(-3.54,3.54)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=40.00] [height=40.00]
 52 RenderSVGResourceClipper {clipPath} [id="clip-rect1"] [clipPathUnits=userSpaceOnUse]
 53 RenderSVGContainer {use} at (273,92) size 142x191
 54 RenderSVGContainer {g} at (273,92) size 142x191
 55 RenderSVGPath {rect} at (273,92) size 142x191 [transform={m=((3.54,3.54)(-3.54,3.54)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=40.00] [height=40.00]
 56 RenderSVGPath {rect} at (283,95) size 132x188 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=10.00] [width=200.00] [height=200.00]
 57 [clipPath="clip-rect1"] RenderSVGResourceClipper {clipPath} at (-141.42,7.07) size 282.84x282.84
 58 RenderText {#text} at (0,0) size 0x0
 59layer at (272,350) size 200x200
 60 RenderBlock (relative positioned) {div} at (10,332) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 61 RenderSVGRoot {svg} at (283,361) size 132x188
 62 RenderSVGHiddenContainer {defs} at (0,0) size 0x0
 63 RenderSVGPath {rect} at (273,358) size 142x191 [transform={m=((3.54,3.54)(-3.54,3.54)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=40.00] [height=40.00]
 64 RenderSVGResourceClipper {clipPath} [id="clip-rect2"] [clipPathUnits=userSpaceOnUse]
 65 RenderSVGContainer {use} at (273,358) size 142x191
 66 RenderSVGContainer {g} at (273,358) size 142x191
 67 RenderSVGPath {rect} at (273,358) size 142x191 [transform={m=((3.54,3.54)(-3.54,3.54)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [x=1.00] [y=1.00] [width=40.00] [height=40.00]
 68 RenderSVGPath {rect} at (283,361) size 132x188 [fill={[type=SOLID] [color=#008000]}] [x=10.00] [y=10.00] [width=200.00] [height=200.00]
 69 [clipPath="clip-rect2"] RenderSVGResourceClipper {clipPath} at (-141.42,7.07) size 282.84x282.84
 70 RenderText {#text} at (0,0) size 0x0

LayoutTests/platform/mac/svg/transforms/svg-css-transforms-expected.png


Added

a1f0137407d89f7a26bcb536b624bf1f

LayoutTests/platform/mac/svg/transforms/svg-css-transforms-expected.txt

 1layer at (0,0) size 800x600
 2 RenderView at (0,0) size 800x600
 3layer at (0,0) size 800x578
 4 RenderBlock {html} at (0,0) size 800x578
 5 RenderBody {body} at (8,8) size 784x562
 6 RenderBlock {div} at (10,10) size 220x542
 7 RenderBlock {h2} at (0,19) size 220x28
 8 RenderText {#text} at (0,0) size 120x28
 9 text run at (0,0) width 120: "SVG nested"
 10 RenderBlock {h2} at (0,285) size 220x28
 11 RenderText {#text} at (0,0) size 114x28
 12 text run at (0,0) width 114: "CSS nested"
 13 RenderText {#text} at (240,0) size 4x18
 14 text run at (240,0) width 4: " "
 15 RenderBlock {div} at (254,10) size 220x542
 16 RenderBlock {h2} at (0,19) size 220x28
 17 RenderText {#text} at (0,0) size 162x28
 18 text run at (0,0) width 162: "SVG compound"
 19 RenderBlock {h2} at (0,285) size 220x28
 20 RenderText {#text} at (0,0) size 156x28
 21 text run at (0,0) width 156: "CSS compound"
 22 RenderText {#text} at (0,0) size 0x0
 23layer at (28,84) size 200x200
 24 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 25 RenderSVGRoot {svg} at (29,108) size 196x174
 26 RenderSVGContainer {g} at (29,108) size 196x174 [transform={m=((1.00,0.00)(0.00,1.00)) t=(75.00,25.00)}]
 27 RenderSVGPath {rect} at (103,109) size 62x62 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00]
 28 RenderSVGContainer {g} at (29,108) size 197x174 [transform={m=((2.00,0.00)(0.00,2.00)) t=(0.00,0.00)}]
 29 RenderSVGPath {rect} at (102,108) size 124x124 [stroke={[type=SOLID] [color=#000000] [dash array={1.00, 1.00}]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00]
 30 RenderSVGPath {rect} at (29,106) size 163x178 [transform={m=((0.71,0.71)(-0.71,0.71)) t=(0.00,0.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00]
 31 RenderText {#text} at (0,0) size 0x0
 32layer at (28,350) size 200x200
 33 RenderBlock (relative positioned) {div} at (10,332) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 34layer at (29,351) size 60x60
 35 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px dotted #000000)]
 36layer at (30,352) size 60x60
 37 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px dotted #000000)]
 38layer at (31,353) size 60x60
 39 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px solid #0000FF)]
 40layer at (272,84) size 200x200
 41 RenderBlock (relative positioned) {div} at (10,66) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 42 RenderSVGRoot {svg} at (273,108) size 162x174
 43 RenderSVGPath {rect} at (273,107) size 163x176 [transform={m=((1.41,1.41)(-1.41,1.41)) t=(75.00,25.00)}] [stroke={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=0.00] [width=60.00] [height=60.00]
 44 RenderText {#text} at (0,0) size 0x0
 45layer at (272,350) size 200x200
 46 RenderBlock (relative positioned) {div} at (10,332) size 200x200 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
 47layer at (273,351) size 60x60
 48 RenderBlock (positioned) {div} at (1,1) size 60x60 [border: (1px solid #0000FF)]

LayoutTests/svg/clip-path/clip-path-css-transform-1.svg

 1<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 2<defs>
 3<clipPath id="clip" clipPathUnits="userSpaceOnUse" style="-webkit-transform: scale(10) translate(2px, 2px)">
 4 <circle cx="10" cy="10" r="10"/>
 5 <!-- second circle causes masking -->
 6 <circle cx="10" cy="10" r="10"/>
 7</clipPath>
 8</defs>
 9<circle cx="120" cy="120" r="99" fill="red"/>
 10<a xlink:href="#"><rect width="220" height="220" fill="green" clip-path="url(#clip)"/></a>
 11</svg>

LayoutTests/svg/clip-path/clip-path-css-transform-2.svg

 1<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 2<defs>
 3<clipPath id="clip" clipPathUnits="userSpaceOnUse" style="-webkit-transform: scale(10) translate(2px, 2px) ">
 4 <circle cx="10" cy="10" r="10"/>
 5</clipPath>
 6</defs>
 7<circle cx="120" cy="120" r="99" fill="red"/>
 8<a xlink:href="#"><rect width="220" height="220" fill="green" clip-path="url(#clip)"/></a>
 9</svg>

LayoutTests/svg/custom/clip-path-with-css-transform-1.svg

 1<svg xmlns="http://www.w3.org/2000/svg"
 2 xmlns:xlink="http://www.w3.org/1999/xlink">
 3<defs>
 4 <clipPath id="myclip">
 5 <path style="-webkit-transform: scale(.5)" d="M 0 0 l 200 0 l 0 200 l -200 0 Z"/>
 6 </clipPath>
 7</defs>
 8<g clip-path="url(#myclip)">
 9<rect x="0" y="0" width="200" height="200" fill="red"/>
 10<rect x="0" y="0" width="100" height="100" fill="green"/>
 11</g>
 12</svg>
 13

LayoutTests/svg/custom/clip-path-with-css-transform-2.svg

 1<svg xmlns="http://www.w3.org/2000/svg"
 2 xmlns:xlink="http://www.w3.org/1999/xlink">
 3<defs>
 4 <clipPath id="myclip">
 5 <rect x="0" y="0" width="200" height="200" style="-webkit-transform: scale(.5)"/>
 6 <!-- second rect causes masking -->
 7 <rect x="0" y="0" width="200" height="200" style="-webkit-transform: scale(.5)"/>
 8 </clipPath>
 9</defs>
 10<g clip-path="url(#myclip)">
 11 <rect x="0" y="0" width="200" height="200" fill="red"/>
 12 <rect x="0" y="0" width="100" height="100" fill="green"/>
 13</g>
 14</svg>

LayoutTests/svg/custom/pointer-events-image-css-transform.svg

 1<?xml version="1.0"?>
 2<!-- This a 1-1 copy of pointer-events-image.svg tests with the addition of -webkit-transform -->
 3<svg xmlns="http://www.w3.org/2000/svg"
 4 xmlns:xlink="http://www.w3.org/1999/xlink" onload="fillTestContent()">
 5 <script type="text/javascript">
 6 <![CDATA[
 7
 8 if (window.layoutTestController)
 9 layoutTestController.waitUntilDone();
 10
 11 var visibleValues = [ 'visible', 'hidden' ];
 12 var fillValues = ['none', 'orange' ];
 13 var strokeValues = ['none', 'blue' ];
 14
 15 var pointerEventsValues = ['auto', 'visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none'];
 16
 17 var leftEdge = 100;
 18 var topEdge = 30;
 19
 20 var rectSpacing = 57;
 21
 22 var svgNS = "http://www.w3.org/2000/svg";
 23
 24 function clickHit(event, identifierString) {
 25 var fillText = document.getElementById('fill-text' + identifierString);
 26 fillText.textContent = 'HIT';
 27 }
 28
 29 function fillTestContent() {
 30 var xOffset = leftEdge;
 31 var yOffset = topEdge;
 32
 33 var testContent = document.getElementById("test-content");
 34
 35 for (var pi = 0; pi < pointerEventsValues.length; pi++) {
 36 var eventLabel = document.createElementNS(svgNS, 'text');
 37 eventLabel.setAttribute('x', 0);
 38 eventLabel.setAttribute('y', yOffset + 30);
 39 eventLabel.textContent = pointerEventsValues[pi];
 40 testContent.appendChild(eventLabel);
 41
 42 for (var vi = 0; vi < visibleValues.length; vi++) {
 43 for (var fi = 0; fi < fillValues.length; fi++) {
 44 for (var si = 0; si < strokeValues.length; si++) {
 45
 46 var identString = "_" + pi + "_" + vi + "_" + fi + "_" + si;
 47
 48 var img = document.createElementNS(svgNS, 'image');
 49 img.setAttributeNS("http://www.w3.org/1999/xlink", 'href', 'resources/red-checker.png');
 50 img.setAttribute('x', xOffset/2);
 51 img.setAttribute('y', yOffset/2);
 52 img.setAttribute('width', 25);
 53 img.setAttribute('height', 25);
 54 img.setAttribute('visibility', visibleValues[vi]);
 55 img.setAttribute('fill', fillValues[fi]);
 56 img.setAttribute('stroke', strokeValues[si]);
 57 img.setAttribute('pointer-events', pointerEventsValues[pi]);
 58 img.setAttribute('style', "-webkit-transform: scale(2)");
 59 img.setAttribute('onclick', 'clickHit(evt, "' + identString + '")');
 60
 61 testContent.appendChild(img);
 62
 63 var fillText = document.createElementNS(svgNS, 'text');
 64 fillText.setAttribute('x', xOffset + 5);
 65 fillText.setAttribute('y', yOffset + 20);
 66 fillText.textContent = "miss";
 67 fillText.setAttribute('id', 'fill-text' + identString);
 68 fillText.setAttribute('pointer-events', 'none');
 69 testContent.appendChild(fillText);
 70
 71 if (window.eventSender) {
 72 // Fill click
 73 eventSender.mouseMoveTo(xOffset + 30, yOffset + 30);
 74 eventSender.mouseDown();
 75 eventSender.mouseUp();
 76 }
 77 xOffset += rectSpacing;
 78 }
 79 }
 80 }
 81 xOffset = leftEdge;
 82 yOffset += rectSpacing;
 83 }
 84
 85 if (window.layoutTestController)
 86 layoutTestController.notifyDone();
 87 }
 88 ]]>
 89 </script>
 90
 91 <text x="110" y="20">Visibility: visible</text>
 92 <text x="340" y="20">Visibility: hidden</text>
 93 <g id="test-content"/>
 94</svg>

LayoutTests/svg/custom/pointer-events-text-css-transform.svg

 1<?xml version="1.0"?>
 2<!-- This a 1-1 copy of pointer-events-text.svg tests with the addition of -webkit-transform -->
 3<svg xmlns="http://www.w3.org/2000/svg" onload="fillTestContent()">
 4 <script type="text/javascript">
 5 <![CDATA[
 6
 7 if (window.layoutTestController)
 8 layoutTestController.waitUntilDone();
 9
 10 var visibleValues = [ 'visible', 'hidden' ];
 11 var fillValues = ['none', 'orange' ];
 12 var strokeValues = ['none', 'blue' ];
 13
 14 var pointerEventsValues = ['auto', 'visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none'];
 15
 16 var leftEdge = 100;
 17 var topEdge = 30;
 18
 19 var rectSpacing = 57;
 20
 21 var svgNS = "http://www.w3.org/2000/svg";
 22
 23 function clickHit(event, identifierString) {
 24 var fillText = document.getElementById('fill-text' + identifierString);
 25 fillText.textContent = 'HIT';
 26 }
 27
 28 function fillTestContent() {
 29 var xOffset = leftEdge;
 30 var yOffset = topEdge;
 31
 32 var testContent = document.getElementById("test-content");
 33
 34 for (var pi = 0; pi < pointerEventsValues.length; pi++) {
 35 var eventLabel = document.createElementNS(svgNS, 'text');
 36 eventLabel.setAttribute('x', 0);
 37 eventLabel.setAttribute('y', yOffset + 30);
 38 eventLabel.textContent = pointerEventsValues[pi];
 39 testContent.appendChild(eventLabel);
 40
 41 for (var vi = 0; vi < visibleValues.length; vi++) {
 42 for (var fi = 0; fi < fillValues.length; fi++) {
 43 for (var si = 0; si < strokeValues.length; si++) {
 44
 45 var identString = "_" + pi + "_" + vi + "_" + fi + "_" + si;
 46
 47 var txt = document.createElementNS(svgNS, 'text');
 48 txt.setAttribute('x', xOffset/2);
 49 txt.setAttribute('y', yOffset/2 + 15);
 50 txt.setAttribute('font-size', 20);
 51 txt.setAttribute('visibility', visibleValues[vi]);
 52 txt.setAttribute('fill', fillValues[fi]);
 53 txt.setAttribute('stroke', strokeValues[si]);
 54 txt.setAttribute('pointer-events', pointerEventsValues[pi]);
 55 txt.setAttribute('style', "-webkit-transform: scale(2)");
 56 txt.setAttribute('onclick', 'clickHit(evt, "' + identString + '")');
 57 txt.appendChild(document.createTextNode("#"));
 58
 59 testContent.appendChild(txt);
 60
 61 var fillText = document.createElementNS(svgNS, 'text');
 62 fillText.setAttribute('x', xOffset + 5);
 63 fillText.setAttribute('y', yOffset + 20);
 64 fillText.textContent = "miss";
 65 fillText.setAttribute('id', 'fill-text' + identString);
 66 fillText.setAttribute('pointer-events', 'none');
 67 testContent.appendChild(fillText);
 68
 69 if (window.eventSender) {
 70 // Cell click
 71 eventSender.mouseMoveTo(xOffset + 5, yOffset);
 72 eventSender.mouseDown();
 73 eventSender.mouseUp();
 74 }
 75 xOffset += rectSpacing;
 76 }
 77 }
 78 }
 79 xOffset = leftEdge;
 80 yOffset += rectSpacing;
 81 }
 82
 83 if (window.layoutTestController)
 84 layoutTestController.notifyDone();
 85 }
 86 ]]>
 87 </script>
 88
 89 <text x="110" y="20">Visibility: visible</text>
 90 <text x="340" y="20">Visibility: hidden</text>
 91 <g id="test-content"/>
 92</svg>

LayoutTests/svg/dom/css-transforms-expected.txt

 1
 2This is a test of precedency between CSS and SVG transform
 3
 4On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 5
 6
 7Also, to pass the test, the rectangle should be rotated with 45deg
 8
 9
 10Test SVGTransformList interface
 11PASS circle.transform.baseVal.numberOfItems is 0
 12PASS circle.getAttribute('transform') is null
 13PASS rect.transform.baseVal.numberOfItems is 2
 14PASS rect.getAttribute('transform') is "translate(1000, 1000) rotate(90)"
 15PASS dumpTransform(rect.transform.baseVal.getItem(0)) is "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]"
 16PASS dumpTransform(rect.transform.baseVal.getItem(1)) is "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"
 17
 18Test SVGLocatable interface
 19PASS dumpMatrix(circle.getCTM()) is "[2.0 0.0 0.0 2.0 20.0 20.0]"
 20PASS dumpMatrix(circle.getScreenCTM()) is "[2.0 0.0 0.0 2.0 28.0 28.0]"
 21PASS dumpRect(circle.getBBox()) is "[0 0 80 80]"
 22PASS dumpMatrix(circle.getTransformToElement(circle)) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
 23PASS dumpMatrix(rect.getCTM()) is "[0.7 0.7 -0.7 0.7 100.0 0.0]"
 24PASS dumpMatrix(rect.getScreenCTM()) is "[0.7 0.7 -0.7 0.7 312.0 8.0]"
 25PASS dumpRect(rect.getBBox()) is "[40 40 100 100]"
 26PASS dumpMatrix(rect.getTransformToElement(rect)) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
 27
 28Test CSSMatrix
 29PASS circle.style.webkitTransform is "scale(2, 2) translate(10px, 10px)"
 30PASS dumpMatrix(new WebKitCSSMatrix(circle.style.webkitTransform)) is "[2.0 0.0 0.0 2.0 20.0 20.0]"
 31PASS rect.style.webkitTransform is "translate(100px) rotate(45deg)"
 32PASS dumpMatrix(new WebKitCSSMatrix(rect.style.webkitTransform)) is "[0.7 0.7 -0.7 0.7 100.0 0.0]"
 33
 34PASS dumpMatrix(new WebKitCSSMatrix(circle.style.webkitTransform)) is dumpMatrix(circle.getCTM())
 35PASS dumpMatrix(new WebKitCSSMatrix(rect.style.webkitTransform)) is dumpMatrix(rect.getCTM())
 36
 37PASS successfullyParsed is true
 38
 39TEST COMPLETE
 40

LayoutTests/svg/dom/css-transforms.xhtml

 1<html xmlns="http://www.w3.org/1999/xhtml">
 2<head>
 3<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"/>
 4<script>window.enablePixelTesting = true;</script>
 5<script src="../../fast/js/resources/js-test-pre.js"></script>
 6</head>
 7<body>
 8
 9<svg id="svg1" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
 10 <circle id="circle" cx="40" cy="40" r="40" fill="green" style="-webkit-transform: scale(2, 2) translate(10px, 10px)"/>
 11</svg>
 12
 13<svg id="svg2" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
 14 <rect id="rect" x="40" y="40" height="100" width="100" fill="green" transform="translate(1000, 1000) rotate(90)" style="-webkit-transform: translate(100px) rotate(45deg)"/>
 15</svg>
 16
 17<p id="description"></p>
 18<p>Also, to pass the test, the rectangle should be rotated with 45deg</p>
 19<div id="console"></div>
 20<script type="text/javascript">
 21<![CDATA[
 22 description("This is a test of precedency between CSS and SVG transform");
 23
 24
 25 function dumpRect(r) {
 26 return "[" + r.x
 27 + " " + r.y
 28 + " " + r.width
 29 + " " + r.height
 30 + "]";
 31 }
 32
 33 function dumpMatrix(matrix) {
 34 return "[" + matrix.a.toFixed(1)
 35 + " " + matrix.b.toFixed(1)
 36 + " " + matrix.c.toFixed(1)
 37 + " " + matrix.d.toFixed(1)
 38 + " " + matrix.e.toFixed(1)
 39 + " " + matrix.f.toFixed(1)
 40 + "]";
 41 }
 42
 43 function dumpTransform(transform) {
 44 var transformTypes = {
 45 "0": "SVG_TRANSFORM_UNKNOWN",
 46 "1": "SVG_TRANSFORM_MATRIX",
 47 "2": "SVG_TRANSFORM_TRANSLATE",
 48 "3": "SVG_TRANSFORM_SCALE",
 49 "4": "SVG_TRANSFORM_ROTATE",
 50 "5": "SVG_TRANSFORM_SKEWX",
 51 "6": "SVG_TRANSFORM_SKEWY"
 52 };
 53
 54 return "type=" + transformTypes[transform.type] + " matrix=" + dumpMatrix(transform.matrix);
 55 }
 56
 57 var svg1 = document.getElementById("svg1");
 58 var circle = document.getElementById("circle");
 59
 60 var svg2 = document.getElementById("svg2");
 61 var rect = document.getElementById("rect");
 62
 63 debug("");
 64 debug("Test SVGTransformList interface");
 65 shouldBe("circle.transform.baseVal.numberOfItems", "0");
 66 shouldBeNull("circle.getAttribute('transform')");
 67 shouldBe("rect.transform.baseVal.numberOfItems", "2");
 68 shouldBeEqualToString("rect.getAttribute('transform')", "translate(1000, 1000) rotate(90)");
 69 shouldBeEqualToString("dumpTransform(rect.transform.baseVal.getItem(0))", "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]");
 70 shouldBeEqualToString("dumpTransform(rect.transform.baseVal.getItem(1))", "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]");
 71
 72 debug("");
 73 debug("Test SVGLocatable interface");
 74 shouldBeEqualToString("dumpMatrix(circle.getCTM())", "[2.0 0.0 0.0 2.0 20.0 20.0]");
 75 shouldBeEqualToString("dumpMatrix(circle.getScreenCTM())", "[2.0 0.0 0.0 2.0 28.0 28.0]");
 76 shouldBeEqualToString("dumpRect(circle.getBBox())", "[0 0 80 80]");
 77 shouldBeEqualToString("dumpMatrix(circle.getTransformToElement(circle))", "[1.0 0.0 0.0 1.0 0.0 0.0]");
 78
 79 shouldBeEqualToString("dumpMatrix(rect.getCTM())", "[0.7 0.7 -0.7 0.7 100.0 0.0]");
 80 shouldBeEqualToString("dumpMatrix(rect.getScreenCTM())", "[0.7 0.7 -0.7 0.7 312.0 8.0]");
 81 shouldBeEqualToString("dumpRect(rect.getBBox())", "[40 40 100 100]");
 82 shouldBeEqualToString("dumpMatrix(rect.getTransformToElement(rect))", "[1.0 0.0 0.0 1.0 0.0 0.0]");
 83
 84 debug("");
 85 debug("Test CSSMatrix");
 86 shouldBeEqualToString("circle.style.webkitTransform", "scale(2, 2) translate(10px, 10px)");
 87 shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(circle.style.webkitTransform))", "[2.0 0.0 0.0 2.0 20.0 20.0]");
 88 shouldBeEqualToString("rect.style.webkitTransform", "translate(100px) rotate(45deg)");
 89 shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect.style.webkitTransform))", "[0.7 0.7 -0.7 0.7 100.0 0.0]");
 90
 91 debug("");
 92 shouldBe("dumpMatrix(new WebKitCSSMatrix(circle.style.webkitTransform))", "dumpMatrix(circle.getCTM())");
 93 shouldBe("dumpMatrix(new WebKitCSSMatrix(rect.style.webkitTransform))", "dumpMatrix(rect.getCTM())");
 94
 95 debug("");
 96 successfullyParsed = true;
 97]]>
 98</script>
 99<script src="../../fast/js/resources/js-test-post.js"></script>
 100</body>
 101</html>

LayoutTests/svg/dynamic-updates/SVG-dynamic-css-transform-expected.txt

 1
 2
 3SVG 1.1 dynamic update tests
 4
 5Tests dynamic updates of the '-webkit-transform' on SVG element
 6
 7On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 8
 9
 10Also, to pass the test, the rectangles should be rotated with 45deg
 11
 12
 13Transform via style attribute
 14PASS rect1.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
 15PASS dumpMatrix(rect1.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 16PASS dumpMatrix(new WebKitCSSMatrix(rect1.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 17PASS dumpMatrix(new WebKitCSSMatrix(rect1.style.webkitTransform)) is dumpMatrix(rect1.getCTM())
 18PASS rect1.transform.baseVal.numberOfItems is 0
 19PASS rect1.getAttribute('transform') is null
 20PASS dumpMatrix(rect2.getCTM()) is "[0.0 1.0 -1.0 0.0 1000.0 1000.0]"
 21PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
 22PASS rect2.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
 23PASS dumpMatrix(rect2.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 24PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 25PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is dumpMatrix(rect2.getCTM())
 26PASS rect2.transform.baseVal.numberOfItems is 2
 27PASS rect2.getAttribute('transform') is "translate(1000, 1000) rotate(90)"
 28PASS dumpTransform(rect2.transform.baseVal.getItem(0)) is "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]"
 29PASS dumpTransform(rect2.transform.baseVal.getItem(1)) is "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"
 30
 31Transform via CSS
 32PASS rect3.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
 33PASS dumpMatrix(rect3.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 34PASS dumpMatrix(new WebKitCSSMatrix(rect3.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 35PASS dumpMatrix(new WebKitCSSMatrix(rect3.style.webkitTransform)) is dumpMatrix(rect3.getCTM())
 36PASS rect3.transform.baseVal.numberOfItems is 0
 37PASS rect3.getAttribute('transform') is null
 38PASS dumpMatrix(rect2.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 39PASS dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 40PASS rect4.style.webkitTransform is "translate(100px, 25px) scale(2) rotate(45deg)"
 41PASS dumpMatrix(rect4.getCTM()) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 42PASS dumpMatrix(new WebKitCSSMatrix(rect4.style.webkitTransform)) is "[1.4 1.4 -1.4 1.4 100.0 25.0]"
 43PASS dumpMatrix(new WebKitCSSMatrix(rect4.style.webkitTransform)) is dumpMatrix(rect4.getCTM())
 44PASS rect4.transform.baseVal.numberOfItems is 2
 45PASS rect4.getAttribute('transform') is "translate(1000, 1000) rotate(90)"
 46PASS dumpTransform(rect4.transform.baseVal.getItem(0)) is "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]"
 47PASS dumpTransform(rect4.transform.baseVal.getItem(1)) is "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"
 48
 49Transform on wrapper div
 50PASS rect5.style.webkitTransform is ""
 51PASS dumpMatrix(rect5.getCTM()) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
 52PASS dumpMatrix(new WebKitCSSMatrix(rect5.style.webkitTransform)) is "[1.0 0.0 0.0 1.0 0.0 0.0]"
 53PASS dumpMatrix(new WebKitCSSMatrix(rect5.style.webkitTransform)) is dumpMatrix(rect5.getCTM())
 54PASS rect5.transform.baseVal.numberOfItems is 0
 55PASS rect5.getAttribute('transform') is null
 56
 57PASS successfullyParsed is true
 58
 59TEST COMPLETE
 60

LayoutTests/svg/dynamic-updates/SVG-dynamic-css-transform.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3<head>
 4<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
 5<script src="resources/SVGTestCase.js"></script>
 6<script src="../../fast/js/resources/js-test-pre.js"></script>
 7<style type="text/css" media="screen">
 8 .column {
 9 margin: 10px;
 10 display: inline-block;
 11 vertical-align: top;
 12 }
 13 .container {
 14 position: relative;
 15 height: 200px;
 16 width: 200px;
 17 margin: 10px;
 18 background-color: silver;
 19 border: 1px solid black;
 20 }
 21 #wrapper {
 22 position: relative;
 23 top: 0;
 24 left: 0;
 25 height: 60px;
 26 width: 60px;
 27 -webkit-transform-origin: top left; /* to match SVG */
 28 }
 29</style>
 30</head>
 31<body>
 32<div class="column">
 33 <div class="container">
 34 <svg id="svg1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" style="width:200px; height:200px;">
 35 <rect id="rect1" x="0" y="0" height="60" width="60" fill="green"/>
 36 </svg>
 37 </div>
 38 <div class="container">
 39 <svg id="svg2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" style="width:200px; height:200px;">
 40 <rect id="rect2" x="0" y="0" height="60" width="60" fill="green" transform="translate(1000, 1000) rotate(90)"/>
 41 </svg>
 42 </div>
 43</div>
 44<div class="column">
 45 <div class="container">
 46 <svg id="svg1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" style="width:200px; height:200px;">
 47 <rect id="rect3" x="0" y="0" height="60" width="60" fill="green"/>
 48 </svg>
 49 </div>
 50 <div class="container">
 51 <svg id="svg2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" style="width:200px; height:200px;">
 52 <rect id="rect4" x="0" y="0" height="60" width="60" fill="green" transform="translate(1000, 1000) rotate(90)"/>
 53 </svg>
 54 </div>
 55</div>
 56<div class="column">
 57 <div class="container">
 58 <div id="wrapper">
 59 <svg id="svg3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" style="width:200px; height:200px;">
 60 <rect id="rect5" x="0" y="0" height="60" width="60" fill="green"/>
 61 </svg>
 62 </div>
 63 </div>
 64</div>
 65<h1>SVG 1.1 dynamic update tests</h1>
 66<p id="description"></p>
 67<p>Also, to pass the test, the rectangles should be rotated with 45deg</p>
 68<div id="console"></div>
 69<script>
 70// [Expected rendering result] 'Test passed' message - and a series of PASS messages
 71
 72description("Tests dynamic updates of the '-webkit-transform' on SVG element");
 73//createSVGTestCase();
 74
 75function dumpRect(r) {
 76 return "[" + r.x
 77 + " " + r.y
 78 + " " + r.width
 79 + " " + r.height
 80 + "]";
 81}
 82
 83function dumpMatrix(matrix) {
 84 return "[" + matrix.a.toFixed(1)
 85 + " " + matrix.b.toFixed(1)
 86 + " " + matrix.c.toFixed(1)
 87 + " " + matrix.d.toFixed(1)
 88 + " " + matrix.e.toFixed(1)
 89 + " " + matrix.f.toFixed(1)
 90 + "]";
 91}
 92
 93function dumpTransform(transform) {
 94 var transformTypes = {
 95 "0": "SVG_TRANSFORM_UNKNOWN",
 96 "1": "SVG_TRANSFORM_MATRIX",
 97 "2": "SVG_TRANSFORM_TRANSLATE",
 98 "3": "SVG_TRANSFORM_SCALE",
 99 "4": "SVG_TRANSFORM_ROTATE",
 100 "5": "SVG_TRANSFORM_SKEWX",
 101 "6": "SVG_TRANSFORM_SKEWY"
 102 };
 103
 104 return "type=" + transformTypes[transform.type] + " matrix=" + dumpMatrix(transform.matrix);
 105}
 106
 107var rect1 = document.getElementById("rect1");
 108var rect2 = document.getElementById("rect2");
 109var rect3 = document.getElementById("rect3");
 110var rect4 = document.getElementById("rect4");
 111var rect5 = document.getElementById("rect5");
 112
 113var wrapper = document.getElementById("wrapper");
 114
 115debug("");
 116debug("Transform via style attribute");
 117rect1.setAttribute("style", "-webkit-transform: translate(100px, 25px) scale(2) rotate(45deg)");
 118
 119shouldBeEqualToString("rect1.style.webkitTransform", "translate(100px, 25px) scale(2) rotate(45deg)");
 120shouldBeEqualToString("dumpMatrix(rect1.getCTM())", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 121shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect1.style.webkitTransform))", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 122shouldBe("dumpMatrix(new WebKitCSSMatrix(rect1.style.webkitTransform))", "dumpMatrix(rect1.getCTM())");
 123shouldBe("rect1.transform.baseVal.numberOfItems", "0");
 124shouldBeNull("rect1.getAttribute('transform')");
 125
 126
 127shouldBeEqualToString("dumpMatrix(rect2.getCTM())", "[0.0 1.0 -1.0 0.0 1000.0 1000.0]");
 128shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform))", "[1.0 0.0 0.0 1.0 0.0 0.0]");
 129
 130rect2.setAttribute("style", "-webkit-transform: translate(100px, 25px) scale(2) rotate(45deg)");
 131
 132shouldBeEqualToString("rect2.style.webkitTransform", "translate(100px, 25px) scale(2) rotate(45deg)");
 133shouldBeEqualToString("dumpMatrix(rect2.getCTM())", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 134shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform))", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 135shouldBe("dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform))", "dumpMatrix(rect2.getCTM())");
 136shouldBe("rect2.transform.baseVal.numberOfItems", "2");
 137shouldBeEqualToString("rect2.getAttribute('transform')", "translate(1000, 1000) rotate(90)");
 138shouldBeEqualToString("dumpTransform(rect2.transform.baseVal.getItem(0))", "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]");
 139shouldBeEqualToString("dumpTransform(rect2.transform.baseVal.getItem(1))", "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]");
 140
 141debug("");
 142debug("Transform via CSS");
 143rect3.style.webkitTransform = "translate(100px, 25px) scale(2) rotate(45deg)";
 144
 145shouldBeEqualToString("rect3.style.webkitTransform", "translate(100px, 25px) scale(2) rotate(45deg)");
 146shouldBeEqualToString("dumpMatrix(rect3.getCTM())", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 147shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect3.style.webkitTransform))", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 148shouldBe("dumpMatrix(new WebKitCSSMatrix(rect3.style.webkitTransform))", "dumpMatrix(rect3.getCTM())");
 149shouldBe("rect3.transform.baseVal.numberOfItems", "0");
 150shouldBeNull("rect3.getAttribute('transform')");
 151
 152
 153shouldBeEqualToString("dumpMatrix(rect2.getCTM())", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 154shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect2.style.webkitTransform))", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 155
 156rect4.style.webkitTransform = "translate(100px, 25px) scale(2) rotate(45deg)";
 157
 158shouldBeEqualToString("rect4.style.webkitTransform", "translate(100px, 25px) scale(2) rotate(45deg)");
 159shouldBeEqualToString("dumpMatrix(rect4.getCTM())", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 160shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect4.style.webkitTransform))", "[1.4 1.4 -1.4 1.4 100.0 25.0]");
 161shouldBe("dumpMatrix(new WebKitCSSMatrix(rect4.style.webkitTransform))", "dumpMatrix(rect4.getCTM())");
 162shouldBe("rect4.transform.baseVal.numberOfItems", "2");
 163shouldBeEqualToString("rect4.getAttribute('transform')", "translate(1000, 1000) rotate(90)");
 164shouldBeEqualToString("dumpTransform(rect4.transform.baseVal.getItem(0))", "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 1000.0 1000.0]");
 165shouldBeEqualToString("dumpTransform(rect4.transform.baseVal.getItem(1))", "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]");
 166
 167debug("");
 168debug("Transform on wrapper div");
 169wrapper.style.webkitTransform = "translate(100px, 25px) scale(2) rotate(45deg)";
 170shouldBeEqualToString("rect5.style.webkitTransform", "");
 171shouldBeEqualToString("dumpMatrix(rect5.getCTM())", "[1.0 0.0 0.0 1.0 0.0 0.0]");
 172shouldBeEqualToString("dumpMatrix(new WebKitCSSMatrix(rect5.style.webkitTransform))", "[1.0 0.0 0.0 1.0 0.0 0.0]");
 173shouldBe("dumpMatrix(new WebKitCSSMatrix(rect5.style.webkitTransform))", "dumpMatrix(rect5.getCTM())");
 174shouldBe("rect5.transform.baseVal.numberOfItems", "0");
 175shouldBeNull("rect5.getAttribute('transform')");
 176
 177debug("");
 178var successfullyParsed = true;
 179</script>
 180<script src="../../fast/js/resources/js-test-post.js"></script>
 181</body>
 182</html>

LayoutTests/svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.txt

 1SVG 1.1 dynamic update tests
 2
 3Tests hitTesting on clipped Elements. Clip-path gets CSS transformed.
 4
 5On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 6
 7
 8PASS Hit thrown on not clipped area of rect.
 9PASS Hit thrown on not clipped area of rect.
 10PASS successfullyParsed is true
 11
 12TEST COMPLETE
 13

LayoutTests/svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html

 1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 2<html>
 3<head>
 4<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
 5<script src="resources/SVGTestCase.js"></script>
 6<script src="../../fast/js/resources/js-test-pre.js"></script>
 7</head>
 8<body>
 9<h1>SVG 1.1 dynamic update tests</h1>
 10<p id="description"></p>
 11<div id="console"></div>
 12<script src="script-tests/SVGClipPathElement-css-transform-influences-hitTesting.js"></script>
 13</body>
 14</html>

LayoutTests/svg/dynamic-updates/script-tests/SVGClipPathElement-css-transform-influences-hitTesting.js

 1// [Name] SVGClipPathElement-transform-influences-hitTesting.js
 2// [Expected rendering result] green circle - and a series of PASS messages
 3
 4description("Tests hitTesting on clipped Elements. Clip-path gets CSS transformed.")
 5createSVGTestCase();
 6
 7var defsElement = createSVGElement("defs");
 8rootSVGElement.appendChild(defsElement);
 9
 10var clipPathElement = createSVGElement("clipPath");
 11clipPathElement.setAttribute("id", "clipper");
 12
 13var clipRectElement = createSVGElement("rect");
 14clipRectElement.setAttribute("width", "5");
 15clipRectElement.setAttribute("height", "5");
 16clipRectElement.setAttribute("style", "-webkit-transform: scale(20)");
 17clipPathElement.appendChild(clipRectElement);
 18
 19defsElement.appendChild(clipPathElement);
 20
 21var foregroundRect = createSVGElement("rect");
 22foregroundRect.setAttribute("width", "100");
 23foregroundRect.setAttribute("height", "100");
 24foregroundRect.setAttribute("fill", "green");
 25foregroundRect.setAttribute("clip-path", "url(#clipper)");
 26foregroundRect.setAttribute("onclick", "executeBackgroundTest()");
 27rootSVGElement.appendChild(foregroundRect);
 28
 29// The clipPath gets scaled by 20. This should influence the hit testing,
 30// since the area of the clipped content is affected as well.
 31function executeBackgroundTest() {
 32 window.setTimeout("triggerUpdate(75,50)", 0);
 33 startTest(foregroundRect, 25, 50);
 34}
 35
 36function executeTest() {
 37 testPassed("Hit thrown on not clipped area of rect.");
 38
 39 completeTest();
 40}
 41
 42executeBackgroundTest();
 43
 44var successfullyParsed = true;

LayoutTests/svg/transforms/svg-css-transforms-clip-path.xhtml

 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2
 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 4<head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 6 <title>SVG clip-path CSS transform</title>
 7 <style type="text/css" media="screen">
 8 div {
 9 -webkit-box-sizing: border-box;
 10 }
 11
 12 .column {
 13 margin: 10px;
 14 display: inline-block;
 15 vertical-align: top;
 16 }
 17 .container {
 18 position: relative;
 19 height: 200px;
 20 width: 200px;
 21 margin: 10px;
 22 background-color: silver;
 23 border: 1px solid black;
 24 }
 25
 26 .box {
 27 position: absolute;
 28 top: 0;
 29 left: 0;
 30 height: 60px;
 31 width: 60px;
 32 border: 1px dotted black;
 33 -webkit-transform-origin: top left; /* to match SVG */
 34 }
 35
 36 .final {
 37 border: 1px solid blue;
 38 }
 39 </style>
 40</head>
 41
 42<body>
 43
 44<div class="column">
 45 <h2>SVG CSS scale</h2>
 46 <div class="container">
 47 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 48 <defs>
 49 <circle id="circle1" cx="10" cy="10" r="20" style="-webkit-transform:scale(5)"/>
 50 <clipPath id="clip-circle1">
 51 <use xlink:href="#circle1"/>
 52 </clipPath>
 53 </defs>
 54 <rect id="rect" x="10" y="10" width="200" height="200" fill="green" clip-path="url(#clip-circle1)"/>
 55 </svg>
 56 </div>
 57
 58 <h2>SVG scale</h2>
 59 <div class="container">
 60 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 61 <defs>
 62 <circle id="circle2" cx="10" cy="10" r="20" transform="scale(5)"/>
 63 <clipPath id="clip-circle2">
 64 <use xlink:href="#circle2"/>
 65 </clipPath>
 66 </defs>
 67 <rect id="rect" x="10" y="10" width="200" height="200" fill="green" clip-path="url(#clip-circle2)"/>
 68 </svg>
 69 </div>
 70</div>
 71
 72<div class="column">
 73 <h2>SVG CSS compound</h2>
 74 <div class="container">
 75 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 76 <defs>
 77 <rect id="rect1" x="1" y="1" width="40" height="40" style="-webkit-transform:rotate(45deg) scale(5)"/>
 78 <clipPath id="clip-rect1">
 79 <use xlink:href="#rect1"/>
 80 </clipPath>
 81 </defs>
 82 <rect id="rect" x="10" y="10" width="200" height="200" fill="green" clip-path="url(#clip-rect1)"/>
 83 </svg>
 84 </div>
 85
 86 <h2>SVG compound</h2>
 87 <div class="container">
 88 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 89 <defs>
 90 <rect id="rect2" x="1" y="1" width="40" height="40" transform="rotate(45) scale(5)"/>
 91 <clipPath id="clip-rect2">
 92 <use xlink:href="#rect2"/>
 93 </clipPath>
 94 </defs>
 95 <rect id="rect" x="10" y="10" width="200" height="200" fill="green" clip-path="url(#clip-rect2)"/>
 96 </svg>
 97 </div>
 98</div>
 99
 100</body>
 101</html>

LayoutTests/svg/transforms/svg-css-transforms.xhtml

 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2
 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 4<head>
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 6 <title>Matrix testing</title>
 7 <style type="text/css" media="screen">
 8 div {
 9 -webkit-box-sizing: border-box;
 10 }
 11
 12 .column {
 13 margin: 10px;
 14 display: inline-block;
 15 vertical-align: top;
 16 }
 17 .container {
 18 position: relative;
 19 height: 200px;
 20 width: 200px;
 21 margin: 10px;
 22 background-color: silver;
 23 border: 1px solid black;
 24 }
 25
 26 .box {
 27 position: absolute;
 28 top: 0;
 29 left: 0;
 30 height: 60px;
 31 width: 60px;
 32 border: 1px dotted black;
 33 -webkit-transform-origin: top left; /* to match SVG */
 34 }
 35
 36 #group1 {
 37 -webkit-transform: translate(75px, 25px);
 38 }
 39
 40 #group2 {
 41 -webkit-transform: scale(2);
 42 }
 43
 44 #group3 {
 45 -webkit-transform: rotate(45deg);
 46 }
 47
 48 #rect1 {
 49 -webkit-transform: translate(75px, 25px) scale(2) rotate(45deg);
 50 }
 51
 52 .final {
 53 border: 1px solid blue;
 54 }
 55 </style>
 56</head>
 57
 58<body>
 59
 60<div class="column">
 61 <h2>SVG nested</h2>
 62 <div class="container">
 63 <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
 64 viewBox="0 0 200 200" style="width:200px; height:200px;">
 65 <g id="group1" x="0" y="0" width="60" height="60">
 66 <rect x="0" y="0" width="60" height="60" stroke="black" stroke-width="1px" stroke-dasharray="1 1" fill="none" />
 67 <g id="group2" x="0" y="0" width="60" height="60" >
 68 <rect x="0" y="0" width="60" height="60" stroke="black" stroke-dasharray="1 1" stroke-width="1px" fill="none" />
 69 <rect id="group3" x="0" y="0" width="60" height="60" stroke="blue" fill="none" />
 70 </g>
 71 </g>
 72 </svg>
 73 </div>
 74
 75 <h2>CSS nested</h2>
 76 <div class="container">
 77 <div id="box1" class="box" style="-webkit-transform: translate(75px, 25px)">
 78 <div id="box2" class="box" style="-webkit-transform: scale(2)">
 79 <div id="box3" class="final box" style="-webkit-transform: rotate(45deg)">
 80 </div>
 81 </div>
 82 </div>
 83 </div>
 84</div>
 85
 86<div class="column">
 87 <h2>SVG compound</h2>
 88 <div class="container">
 89 <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
 90 viewBox="0 0 200 200" style="width:200px; height:200px;">
 91 <rect id="rect1" x="0" y="0" width="60" height="60" stroke="blue" fill="none"/>
 92 </svg>
 93 </div>
 94
 95 <h2>CSS compound</h2>
 96 <div class="container">
 97 <div class="final box" style="-webkit-transform: translate(75px, 25px) scale(2) rotate(45deg)">
 98 </div>
 99 </div>
 100</div>
 101</body>
 102</html>

Source/WebCore/ChangeLog

 12011-11-17 Raul Hudea <rhudea@adobe.com>
 2
 3 First step towards http://webkit.org/b/70025
 4
 5 Allow -webkit-transform to be have effect to SVG elements.
 6 Currently, the CSS transform takes precedence over the SVG transform attribute
 7
 8 Allow SVG elements to be transformed using webkit-transform
 9 https://bugs.webkit.org/show_bug.cgi?id=71309
 10
 11 Reviewed by NOBODY (OOPS!).
 12
 13 Tests: svg/clip-path/clip-path-css-transform-1.svg
 14 svg/clip-path/clip-path-css-transform-2.svg
 15 svg/custom/clip-path-with-css-transform-1.svg
 16 svg/custom/clip-path-with-css-transform-2.svg
 17 svg/custom/pointer-events-image-css-transform.svg
 18 svg/custom/pointer-events-text-css-transform.svg
 19 svg/dom/css-transforms.xhtml
 20 svg/dynamic-updates/SVG-dynamic-css-transform.html
 21 svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html
 22 svg/transforms/svg-css-transforms-clip-path.xhtml
 23 svg/transforms/svg-css-transforms.xhtml
 24
 25 * manual-tests/svg-animation-css-transform.html: Added.
 26 * manual-tests/svg-css-animate-compound.html: Added.
 27 * manual-tests/svg-css-transition-compound.html: Added.
 28 * rendering/svg/RenderSVGModelObject.cpp:
 29 (WebCore::RenderSVGModelObject::styleWillChange):
 30
 31 Set the updateTransform flag on SVG elements whenever a CSS transform is present on the style
 32
 33 * svg/SVGStyledTransformableElement.cpp:
 34 (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
 35
 36 Use the RenderStyle's transform (if it exists) over the SVG's transform
 37
 38 * svg/SVGTextElement.cpp:
 39 (WebCore::SVGTextElement::animatedLocalTransform):
 40
 41 Use the RenderStyle's transform (if it exists) over the SVG's transform
 42
1432011-11-17 Ken Buchanan <kenrb@chromium.org>
244
345 Crash from nested tables with generated content

Source/WebCore/manual-tests/svg-animation-css-transform.html

 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 2 "http://www.w3.org/TR/html4/loose.dtd">
 3
 4<html lang="en">
 5<head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>SVG Animation of elements transformed using -webkit-transform</title>
 8</head>
 9<body>
 10 <h1>SVG Animation of SVG element rotated using '-webkit-transform'</h1>
 11
 12 <p>The rotated rect should from 0,0 to 100,0 over 3 seconds.</p>
 13
 14 <svg xmlns='http://www.w3.org/2000/svg'>
 15 <rect id="target" width='100' height='100' stroke="blue" fill="none" style="-webkit-transform: rotate(45deg)">
 16 <animateMotion to='100,0' dur='3s' />
 17 </rect>
 18 </svg>
 19</body>
 20</html>

Source/WebCore/manual-tests/svg-css-animate-compound.html

 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 2 "http://www.w3.org/TR/html4/loose.dtd">
 3
 4<html lang="en">
 5<head>
 6<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7<title>Animation of rotate property</title>
 8<style type="text/css" media="screen">
 9 div {
 10 -webkit-box-sizing: border-box;
 11 }
 12
 13 .column {
 14 margin: 10px;
 15 display: inline-block;
 16 vertical-align: top;
 17 }
 18 .container {
 19 position: relative;
 20 height: 200px;
 21 width: 200px;
 22 margin: 10px;
 23 background-color: silver;
 24 border: 1px solid black;
 25 }
 26
 27 .box {
 28 position: absolute;
 29 top: 0;
 30 left: 0;
 31 height: 60px;
 32 width: 60px;
 33 border: 1px dotted black;
 34 -webkit-transform-origin: top left; /* to match SVG */
 35 }
 36
 37 .final {
 38 border: 1px solid blue;
 39 }
 40
 41 #target, #ref {
 42 -webkit-animation-name: bounce;
 43 -webkit-animation-duration: 2s;
 44 -webkit-animation-iteration-count: infinite;
 45 -webkit-animation-direction: alternate;
 46 -webkit-animation-timing-function: ease-in-out;
 47 }
 48
 49 @-webkit-keyframes bounce {
 50 from {
 51 -webkit-transform: translate(0px, 0px) scale(1) rotate(0deg);
 52 }
 53 to {
 54 -webkit-transform: translate(75px, 25px) scale(2) rotate(45deg);
 55 }
 56 }
 57</style>
 58</head>
 59<body>
 60 <h1>CSS Animation of 'webkit-transform:' property for SVG</h1>
 61
 62 <p>The SVG animation should be identical with the CSS one</p>
 63
 64 <div class="column">
 65 <h2>SVG compound</h2>
 66 <div class="container">
 67 <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
 68 viewBox="0 0 200 200" style="width:200px; height:200px;">
 69 <rect id="target" x="0" y="0" width="60" height="60" stroke="blue" fill="none">
 70 </rect>
 71 </svg>
 72 </div>
 73
 74 <h2>CSS compound</h2>
 75 <div class="container">
 76 <div class="final box" id="ref">
 77 </div>
 78 </div>
 79 </div>
 80
 81</body>
 82</html>

Source/WebCore/manual-tests/svg-css-transition-compound.html

 1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 2 "http://www.w3.org/TR/html4/loose.dtd">
 3
 4<html lang="en">
 5<head>
 6<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7<title>CSS Transition of SVG elements</title>
 8
 9<style type="text/css" media="screen">
 10 div {
 11 -webkit-box-sizing: border-box;
 12 }
 13
 14 .column {
 15 margin: 10px;
 16 display: inline-block;
 17 vertical-align: top;
 18 }
 19 .container {
 20 position: relative;
 21 height: 200px;
 22 width: 200px;
 23 margin: 10px;
 24 background-color: silver;
 25 border: 1px solid black;
 26 }
 27
 28 .box {
 29 position: absolute;
 30 top: 0;
 31 left: 0;
 32 height: 60px;
 33 width: 60px;
 34 border: 1px dotted black;
 35 -webkit-transform-origin: top left; /* to match SVG */
 36 }
 37
 38 .final {
 39 border: 1px solid blue;
 40 }
 41
 42 #target, #ref {
 43 -webkit-transition-property: -webkit-transform;
 44 -webkit-transition-duration: 1s;
 45 }
 46</style>
 47
 48<script type="text/javascript" charset="utf-8">
 49 var flag = true;
 50
 51 function transition() {
 52 var svgElm = document.getElementById("target");
 53 var divElm = document.getElementById("ref");
 54
 55 if (flag) {
 56 svgElm.style.webkitTransform = "translate(75px, 25px) scale(2) rotate(45deg)";
 57 divElm.style.webkitTransform = "translate(75px, 25px) scale(2) rotate(45deg)";
 58 }
 59 else {
 60 svgElm.style.webkitTransform = "translate(0px, 0px) scale(1) rotate(0deg)";
 61 divElm.style.webkitTransform = "translate(0px, 0px) scale(1) rotate(0deg)";
 62 }
 63 flag = !flag;
 64 }
 65</script>
 66</head>
 67<body>
 68 <h1>CSS Transition of "-webkit-trasform" property for SVG elements</h1>
 69
 70 <p>The element below should transition when button is clicked</p>
 71 <p>The SVG transition should be identical with the CSS one</p>
 72
 73 <input type="button" value="Transition" onclick="transition()" />
 74
 75 <div class="column">
 76 <h2>SVG compound</h2>
 77 <div class="container">
 78 <svg xmlns="http://www.w3.org/2000/svg" version="1.1"
 79 viewBox="0 0 200 200" style="width:200px; height:200px;">
 80 <rect id="target" x="0" y="0" width="60" height="60" stroke="blue" fill="none">
 81 </rect>
 82 </svg>
 83 </div>
 84
 85 <h2>CSS compound</h2>
 86 <div class="container">
 87 <div class="final box" id="ref">
 88 </div>
 89 </div>
 90 </div>
 91
 92</body>
 93</html>

Source/WebCore/rendering/svg/RenderSVGModelObject.cpp

@@void RenderSVGModelObject::willBeDestroyed()
9191
9292void RenderSVGModelObject::styleWillChange(StyleDifference diff, const RenderStyle* newStyle)
9393{
94  if (diff == StyleDifferenceLayout)
 94 if (diff == StyleDifferenceLayout) {
9595 setNeedsBoundariesUpdate();
 96 if (newStyle->hasTransform())
 97 setNeedsTransformUpdate();
 98 }
9699 RenderObject::styleWillChange(diff, newStyle);
97100}
98101

Source/WebCore/svg/SVGStyledTransformableElement.cpp

@@AffineTransform SVGStyledTransformableElement::getScreenCTM(StyleUpdateStrategy
6464AffineTransform SVGStyledTransformableElement::animatedLocalTransform() const
6565{
6666 AffineTransform matrix;
67  transform().concatenate(matrix);
 67 RenderStyle* style = renderer()->style();
 68
 69 // if CSS property was set, use that, otherwise fallback to attribute (if set)
 70 if (style->hasTransform()) {
 71 TransformationMatrix t;
 72 // For now, the transform-origin is not taken into account
 73 // Also, any percentage values will not be taken into account
 74 style->applyTransform(t, IntSize(0, 0), RenderStyle::ExcludeTransformOrigin);
 75 // Flatten any 3D transform
 76 matrix = t.toAffineTransform();
 77 } else
 78 transform().concatenate(matrix);
 79
6880 if (m_supplementalTransform)
6981 return *m_supplementalTransform * matrix;
7082 return matrix;

Source/WebCore/svg/SVGTextElement.cpp

@@AffineTransform SVGTextElement::getScreenCTM(StyleUpdateStrategy styleUpdateStra
111111AffineTransform SVGTextElement::animatedLocalTransform() const
112112{
113113 AffineTransform matrix;
114  transform().concatenate(matrix);
 114 RenderStyle* style = renderer()->style();
 115
 116 // if CSS property was set, use that, otherwise fallback to attribute (if set)
 117 if (style->hasTransform()) {
 118 TransformationMatrix t;
 119 // For now, the transform-origin is not taken into account
 120 // Also, any percentage values will not be taken into account
 121 style->applyTransform(t, IntSize(0, 0), RenderStyle::ExcludeTransformOrigin);
 122 // Flatten any 3D transform
 123 matrix = t.toAffineTransform();
 124 } else
 125 transform().concatenate(matrix);
 126
115127 if (m_supplementalTransform)
116128 return *m_supplementalTransform * matrix;
117129 return matrix;