[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

zimmermann at webkit.org zimmermann at webkit.org
Thu Apr 8 01:04:55 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 649f8cba4303fbec75906cd573d93f3f65a39f4c
Author: zimmermann at webkit.org <zimmermann at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jan 14 04:09:22 2010 +0000

    2010-01-13  Nikolas Zimmermann  <nzimmermann at rim.com>
    
            Reviewed by Oliver Hunt.
    
            SVGClipPathElement shouldn't resolve style manually
            https://bugs.webkit.org/show_bug.cgi?id=33647
    
            Build renderers for SVGClipPathElement, so we can query the style from the renderer
            instead of re-resolving style on every clip path resource invalidation.
    
            * svg/SVGClipPathElement.cpp:
            (WebCore::SVGClipPathElement::createRenderer):
            (WebCore::SVGClipPathElement::canvasResource):
            * svg/SVGClipPathElement.h:
            (WebCore::SVGClipPathElement::isValid):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53233 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index a788350..3629972 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,5 +1,43 @@
 2010-01-13  Nikolas Zimmermann  <nzimmermann at rim.com>
 
+        Reviewed by Dirk Schulze.
+
+        SVGClipPathElement shouldn't resolve style manually
+        https://bugs.webkit.org/show_bug.cgi?id=33647
+
+        Update baseline after introducing renderers for SVGClipPathElement.
+
+        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
+        * platform/mac/svg/batik/text/textEffect2-expected.txt:
+        * platform/mac/svg/batik/text/textProperties-expected.txt:
+        * platform/mac/svg/css/clippath-with-shadow-expected.txt:
+        * platform/mac/svg/custom/clip-path-child-changes-expected.txt:
+        * platform/mac/svg/custom/clip-path-display-none-child-expected.txt:
+        * platform/mac/svg/custom/clip-path-href-changes-expected.txt:
+        * platform/mac/svg/custom/clip-path-referencing-use-expected.txt:
+        * platform/mac/svg/custom/clip-path-referencing-use2-expected.txt:
+        * platform/mac/svg/custom/clip-path-units-changes-expected.txt:
+        * platform/mac/svg/custom/clip-path-with-transform-expected.txt:
+        * platform/mac/svg/custom/empty-clip-path-expected.txt:
+        * platform/mac/svg/custom/focus-ring-expected.txt:
+        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt:
+        * platform/mac/svg/custom/invalid-css-expected.txt:
+        * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
+        * platform/mac/svg/custom/js-late-clipPath-creation-expected.txt:
+        * platform/mac/svg/custom/recursive-clippath-expected.txt:
+        * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt:
+        * platform/mac/svg/custom/text-clip-expected.txt:
+        * platform/mac/svg/custom/visibility-override-clip-expected.txt:
+        * platform/mac/svg/filters/filter-clip-expected.txt:
+        * svg/custom/use-clipped-transform-expected.txt:
+
+2010-01-13  Nikolas Zimmermann  <nzimmermann at rim.com>
+
         Not reviewed. Remove six old tiger specific results, that are equal to the SL baseline now. Update one result, showing a marginal difference between Tiger/SL.
         This is a follow-up commit for Dirks strokeBoundingBox() fixes -> should turn Tiger slave green again.
 
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt
index 96ad8c6..18d6385 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt
@@ -8,6 +8,9 @@ layer at (0,0) size 480x360
       RenderSVGInlineText {#text} at (0,-17) size 356x22
         chunk 1 (middle anchor) text run 1 at (62.50,35.00) startOffset 0 endOffset 51 width 355.00: "Testing stroke inclusion for 'clip-path' and 'mask'"
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {circle} at (0.03,0.23) size 0.55x0.55 [stroke={[type=SOLID] [color=#FF0000] [stroke width=0.15]}] [data="M0.50,0.50 L0.50,0.51 L0.50,0.53 L0.50,0.54 L0.49,0.55 L0.49,0.56 L0.49,0.57 L0.48,0.59 L0.48,0.60 L0.47,0.61 L0.46,0.62 L0.45,0.63 L0.45,0.64 L0.44,0.65 L0.43,0.65 L0.42,0.66 L0.41,0.67 L0.40,0.68 L0.39,0.68 L0.37,0.69 L0.36,0.69 L0.35,0.69 L0.34,0.70 L0.33,0.70 L0.31,0.70 L0.30,0.70 L0.29,0.70 L0.27,0.70 L0.26,0.70 L0.25,0.69 L0.24,0.69 L0.23,0.69 L0.21,0.68 L0.20,0.68 L0.19,0.67 L0.18,0.66 L0.17,0.65 L0.16,0.65 L0.15,0.64 L0.15,0.63 L0.14,0.62 L0.13,0.61 L0.12,0.60 L0.12,0.59 L0.11,0.57 L0.11,0.56 L0.11,0.55 L0.10,0.54 L0.10,0.53 L0.10,0.51 L0.10,0.50 L0.10,0.49 L0.10,0.47 L0.10,0.46 L0.11,0.45 L0.11,0.44 L0.11,0.43 L0.12,0.41 L0.12,0.40 L0.13,0.39 L0.14,0.38 L0.15,0.37 L0.15,0.36 L0.16,0.35 L0.17,0.35 L0.18,0.34 L0.19,0.33 L0.20,0.32 L0.21,0.32 L0.23,0.31 L0.24,0.31 L0.25,0.31 L0.26,0.30 L0.27,0.30 L0.29,0.30 L0.30,0.30 L0.31,0.30 L0.33,0.30 L0.34,0.30 L0.35,0.31 L0.36,0.31 L0.37,0.31 L0.39,0.32 L0.40,0.32 L0.41,0.33 L0.42,0.34 L0.43,0.35 L0.44,0.35 L0.45,0.36 L0.45,0.37 L0.46,0.38 L0.47,0.39 L0.48,0.40 L0.48,0.41 L0.49,0.43 L0.49,0.44 L0.49,0.45 L0.50,0.46 L0.50,0.47 L0.50,0.49 Z"]
+        RenderPath {circle} at (0.50,0.30) size 0.40x0.40 [data="M0.90,0.50 L0.90,0.51 L0.90,0.53 L0.90,0.54 L0.89,0.55 L0.89,0.56 L0.89,0.57 L0.88,0.59 L0.88,0.60 L0.87,0.61 L0.86,0.62 L0.85,0.63 L0.85,0.64 L0.84,0.65 L0.83,0.65 L0.82,0.66 L0.81,0.67 L0.80,0.68 L0.79,0.68 L0.77,0.69 L0.76,0.69 L0.75,0.69 L0.74,0.70 L0.73,0.70 L0.71,0.70 L0.70,0.70 L0.69,0.70 L0.67,0.70 L0.66,0.70 L0.65,0.69 L0.64,0.69 L0.63,0.69 L0.61,0.68 L0.60,0.68 L0.59,0.67 L0.58,0.66 L0.57,0.65 L0.56,0.65 L0.55,0.64 L0.55,0.63 L0.54,0.62 L0.53,0.61 L0.52,0.60 L0.52,0.59 L0.51,0.57 L0.51,0.56 L0.51,0.55 L0.50,0.54 L0.50,0.53 L0.50,0.51 L0.50,0.50 L0.50,0.49 L0.50,0.47 L0.50,0.46 L0.51,0.45 L0.51,0.44 L0.51,0.43 L0.52,0.41 L0.52,0.40 L0.53,0.39 L0.54,0.38 L0.55,0.37 L0.55,0.36 L0.56,0.35 L0.57,0.35 L0.58,0.34 L0.59,0.33 L0.60,0.32 L0.61,0.32 L0.63,0.31 L0.64,0.31 L0.65,0.31 L0.66,0.30 L0.67,0.30 L0.69,0.30 L0.70,0.30 L0.71,0.30 L0.73,0.30 L0.74,0.30 L0.75,0.31 L0.76,0.31 L0.77,0.31 L0.79,0.32 L0.80,0.32 L0.81,0.33 L0.82,0.34 L0.83,0.35 L0.84,0.35 L0.85,0.36 L0.85,0.37 L0.86,0.38 L0.87,0.39 L0.88,0.40 L0.88,0.41 L0.89,0.43 L0.89,0.44 L0.89,0.45 L0.90,0.46 L0.90,0.47 L0.90,0.49 Z"]
     RenderPath {rect} at (170,60) size 160x80 [fill={[type=SOLID] [color=#00008B]}] [clip path="one"] [data="M150.00,0.00 L350.00,0.00 L350.00,200.00 L150.00,200.00 Z"]
     RenderSVGText {text} at (50,110) size 111x18 contains 1 chunk(s)
       RenderSVGInlineText {#text} at (0,-14) size 111x18
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt
index 5b6bfad..0259ad9 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt
@@ -6,6 +6,11 @@ layer at (0,0) size 480x360
   RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     RenderSVGContainer {g} at (20,17.50) size 325x268.50
       RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderPath {rect} at (200,10) size 60x100 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,10.00 L260.00,10.00 L260.00,110.00 L200.00,110.00 Z"]
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderPath {rect} at (90,150) size 175x100 [fill={[type=SOLID] [color=#000000]}] [data="M90.00,150.00 L265.00,150.00 L265.00,250.00 L90.00,250.00 Z"]
+          RenderPath {rect} at (225,160) size 95x75 [fill={[type=SOLID] [color=#000000]}] [data="M225.00,160.00 L320.00,160.00 L320.00,235.00 L225.00,235.00 Z"]
       RenderPath {rect} at (200,17.50) size 60x65 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#FF0000]}] [clip path="clip1"] [data="M20.00,20.00 L460.00,20.00 L460.00,80.00 L20.00,80.00 Z"]
       RenderSVGText {text} at (20,130) size 325x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-27) size 325x33
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt
index 6fbf9ee..29b948c 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt
@@ -5,10 +5,14 @@ layer at (0,0) size 480x360
 layer at (0,0) size 480x360
   RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     RenderSVGContainer {g} at (20,50) size 457x236
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {rect} at (0.25,0.50) size 0.60x1 [fill={[type=SOLID] [color=#000000]}] [data="M0.25,0.50 L0.85,0.50 L0.85,1.50 L0.25,1.50 Z"]
       RenderPath {rect} at (117.50,50) size 258x40 [fill={[type=SOLID] [color=#FF0000]}] [clip path="clip1"] [data="M10.00,10.00 L440.00,10.00 L440.00,90.00 L10.00,90.00 Z"]
       RenderSVGText {text} at (20,130) size 457x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-27) size 457x33
           chunk 1 text run 1 at (20.00,130.00) startOffset 0 endOffset 31 width 457.00: "clipPathUnits=objectBoundingBox"
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {rect} at (60,60) size 80x80 [fill={[type=SOLID] [color=#000000]}] [data="M60.00,60.00 L140.00,60.00 L140.00,140.00 L60.00,140.00 Z"]
       RenderPath {rect} at (184.85,157.57) size 84.85x84.85 [transform={m=((0.71,-0.71)(0.71,0.71)) t=(100.00,200.00)}] [fill={[type=SOLID] [color=#0000FF]}] [clip path="clip2"] [data="M0.00,0.00 L120.00,0.00 L120.00,120.00 L0.00,120.00 Z"]
       RenderSVGText {text} at (20,280) size 434x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-27) size 434x33
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt
index 5892ea4..25828c8 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt
@@ -5,6 +5,10 @@ layer at (0,0) size 480x360
   RenderSVGRoot {svg} at (0.50,0.50) size 479x359
     RenderSVGContainer {g} at (20,20) size 420x310
       RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderSVGText {text} at (45,270) size 353x122 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-101) size 353x122
+              chunk 1 text run 1 at (45.00,270.00) startOffset 0 endOffset 9 width 353.00: "Clip Test"
       RenderSVGContainer {g} at (30,20) size 410x140
         RenderSVGImage {image} at (30,20) size 410x140
         RenderSVGText {text} at (55,130) size 353x122 contains 1 chunk(s)
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt
index 9f2b1ed..ef9bdb5 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt
@@ -8,10 +8,14 @@ layer at (0,0) size 480x360
       RenderSVGText {text} at (150,20) size 164x16 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-13) size 164x16
           chunk 1 text run 1 at (150.00,20.00) startOffset 0 endOffset 28 width 164.00: "Test for clip-rule property."
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {path} at (180,40) size 80x80 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,40.00 L220.00,40.00 L220.00,100.00 L240.00,100.00 L240.00,80.00 L180.00,80.00 L180.00,60.00 L260.00,60.00 L260.00,120.00 L200.00,120.00 L200.00,40.00 Z"]
       RenderPath {rect} at (180,40) size 80x80 [fill={[type=SOLID] [color=#FF0000]}] [clip path="clip1"] [data="M50.00,30.00 L400.00,30.00 L400.00,130.00 L50.00,130.00 Z"]
       RenderSVGText {text} at (100,140) size 99x14 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-11) size 99x14
           chunk 1 text run 1 at (100.00,140.00) startOffset 0 endOffset 17 width 99.00: "clip-rule=evenodd"
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {path} at (180,170) size 80x80 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,170.00 L220.00,170.00 L220.00,230.00 L240.00,230.00 L240.00,210.00 L180.00,210.00 L180.00,190.00 L260.00,190.00 L260.00,250.00 L200.00,250.00 L200.00,170.00 Z"]
       RenderPath {rect} at (180,170) size 80x80 [fill={[type=SOLID] [color=#0000FF]}] [clip path="clip2"] [data="M50.00,160.00 L400.00,160.00 L400.00,260.00 L50.00,260.00 Z"]
       RenderSVGText {text} at (100,270) size 92x14 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-11) size 92x14
diff --git a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt
index 7c98394..49fd5d9 100644
--- a/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt
+++ b/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt
@@ -10,6 +10,10 @@ layer at (0,0) size 480x360
   RenderSVGRoot {svg} at (-0.80,-0.80) size 480.30x360.30
     RenderSVGContainer {g} at (-0.80,-0.80) size 448.80x272.80
       RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderPath {rect} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L2.00,0.00 L2.00,2.00 L0.00,2.00 Z"]
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderPath {rect} at (0,0) size 4x4 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L4.00,0.00 L4.00,4.00 L0.00,4.00 Z"]
       RenderSVGText {text} at (125,30) size 184x16 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-13) size 184x16
           chunk 1 text run 1 at (125.00,30.00) startOffset 0 endOffset 27 width 184.00: "Marker Rendering Properties"
diff --git a/LayoutTests/platform/mac/svg/batik/text/textEffect2-expected.txt b/LayoutTests/platform/mac/svg/batik/text/textEffect2-expected.txt
index 1c005d8..f0edeca 100644
--- a/LayoutTests/platform/mac/svg/batik/text/textEffect2-expected.txt
+++ b/LayoutTests/platform/mac/svg/batik/text/textEffect2-expected.txt
@@ -17,6 +17,14 @@ layer at (0,0) size 450x500
           RenderSVGGradientStop {stop} at (0,0) size 0x0
           RenderSVGGradientStop {stop} at (0,0) size 0x0
           RenderSVGGradientStop {stop} at (0,0) size 0x0
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderSVGText {text} at (100,200) size 152x59 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-48) size 152x59
+              chunk 1 text run 1 at (100.00,200.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderSVGText {text} at (100,300) size 152x59 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-48) size 152x59
+              chunk 1 text run 1 at (100.00,300.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
       RenderPath {rect} at (100,160) size 200x45 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#FFD700), (0.50,#FFA500), (1.00,#DC143C)]] [start=(0,0)] [end=(1,0)]}] [clip path="clip"] [data="M100.00,160.00 L300.00,160.00 L300.00,205.00 L100.00,205.00 Z"]
       RenderSVGText {text} at (300,200) size 65x14 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-11) size 65x14
diff --git a/LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt b/LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt
index e07ef4a..8bc77f6 100644
--- a/LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt
+++ b/LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt
@@ -132,6 +132,10 @@ layer at (0,0) size 450x500
           RenderSVGInlineText {#text} at (0,-14) size 150x18
             chunk 1 (middle anchor) text run 1 at (-74.50,25.00) startOffset 0 endOffset 21 width 149.00: "stroke=\"MidnightBlue\""
       RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+        RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+          RenderSVGText {text} at (-42,0) size 84x36 contains 1 chunk(s)
+            RenderSVGInlineText {#text} at (0,-28) size 84x36
+              chunk 1 (middle anchor) text run 1 at (-42.00,0.00) startOffset 0 endOffset 6 width 84.00: "sample"
         RenderSVGHiddenContainer {linearGradient} at (0,0) size 0x0
           RenderSVGGradientStop {stop} at (0,0) size 0x0
           RenderSVGGradientStop {stop} at (0,0) size 0x0
diff --git a/LayoutTests/platform/mac/svg/css/clippath-with-shadow-expected.txt b/LayoutTests/platform/mac/svg/css/clippath-with-shadow-expected.txt
index 9205359..cde310b 100644
--- a/LayoutTests/platform/mac/svg/css/clippath-with-shadow-expected.txt
+++ b/LayoutTests/platform/mac/svg/css/clippath-with-shadow-expected.txt
@@ -5,4 +5,8 @@ layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 200x200
     RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
+    RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+      RenderSVGContainer {use} at (0,0) size 200x200
+        RenderSVGContainer {g} at (0,0) size 200x200
+          RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
     RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [data="M0.00,0.00 L400.00,0.00 L400.00,200.00 L0.00,200.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-child-changes-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-child-changes-expected.txt
index 54602fd..d313af5 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-child-changes-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-child-changes-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 100x100
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {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="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
       RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-display-none-child-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-display-none-child-expected.txt
index c819e31..59fcbe3 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-display-none-child-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-display-none-child-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 356x194
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="c"]
       RenderPath {rect} at (0,0) size 200x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,100.00 L0.00,100.00 Z"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-href-changes-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-href-changes-expected.txt
index 54602fd..d313af5 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-href-changes-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-href-changes-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 100x100
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {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="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
       RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use-expected.txt
index 0b70deb..521ae84 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use-expected.txt
@@ -5,6 +5,10 @@ layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 602x144
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderSVGContainer {use} at (0,0) size 100x100
+          RenderSVGContainer {g} at (0,0) size 100x100
+            RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="clip"]
       RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use2-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use2-expected.txt
index 5fdee4b..1334f90 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use2-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use2-expected.txt
@@ -30,6 +30,11 @@ layer at (0,0) size 800x600
       RenderSVGContainer {use} at (0,0) size 50x50
         RenderSVGContainer {g} at (0,0) size 50x50
           RenderPath {rect} at (0,0) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderSVGContainer {use} at (0,0) size 50x50
+          RenderSVGContainer {g} at (0,0) size 50x50
+            RenderSVGContainer {g} at (0,0) size 50x50
+              RenderPath {rect} at (0,0) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
     RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="clip"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-units-changes-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-units-changes-expected.txt
index 54602fd..d313af5 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-units-changes-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-units-changes-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 100x100
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {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="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
       RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/clip-path-with-transform-expected.txt b/LayoutTests/platform/mac/svg/custom/clip-path-with-transform-expected.txt
index 54602fd..d313af5 100644
--- a/LayoutTests/platform/mac/svg/custom/clip-path-with-transform-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/clip-path-with-transform-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 100x100
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {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="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
       RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/empty-clip-path-expected.txt b/LayoutTests/platform/mac/svg/custom/empty-clip-path-expected.txt
index df859cc..2952a2d 100644
--- a/LayoutTests/platform/mac/svg/custom/empty-clip-path-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/empty-clip-path-expected.txt
@@ -5,6 +5,9 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 452x154
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#000000]}] [data=""]
     RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="nothing"]
       RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/focus-ring-expected.txt b/LayoutTests/platform/mac/svg/custom/focus-ring-expected.txt
index df2acfc..6096607 100644
--- a/LayoutTests/platform/mac/svg/custom/focus-ring-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/focus-ring-expected.txt
@@ -22,6 +22,8 @@ layer at (0,0) size 800x1000
       RenderSVGText {text} at (0,0) size 76x18 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-14) size 76x18
           chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 12 width 76.00: "focused text"
+    RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGImage {image} at (0,0) size 0x0 [clip path="clip"]
     RenderSVGImage {image} at (150,400) size 136.60x136.60 [transform={m=((0.87,0.50)(-0.50,0.87)) t=(200.00,400.00)}] [clip path="clip"]
     RenderSVGContainer {g} at (310,400) size 136.60x136.60 [transform={m=((0.87,0.50)(-0.50,0.87)) t=(360.00,400.00)}]
diff --git a/LayoutTests/platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt b/LayoutTests/platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt
index ab7a241..b6dc747 100644
--- a/LayoutTests/platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt
@@ -5,6 +5,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,-16) size 542x145
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {path} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGImage {image} at (0,-16) size 100x91 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-25.00)}] [clip path="myclip"] [filter=myfilter]
     RenderSVGText {text} at (0,125) size 542x18 contains 1 chunk(s)
       RenderSVGInlineText {#text} at (0,-14) size 542x18
diff --git a/LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt b/LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt
index 4e7c5b4..33ff0d9 100644
--- a/LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt
@@ -7,6 +7,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,-1.67) size 490x225
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {circle} at (20,30) size 20x20 [fill={[type=SOLID] [color=#000000]}] [data="M40.00,40.00 L39.98,40.63 L39.92,41.25 L39.82,41.87 L39.69,42.49 L39.51,43.09 L39.30,43.68 L39.05,44.26 L38.76,44.82 L38.44,45.36 L38.09,45.88 L37.71,46.37 L37.29,46.85 L36.85,47.29 L36.37,47.71 L35.88,48.09 L35.36,48.44 L34.82,48.76 L34.26,49.05 L33.68,49.30 L33.09,49.51 L32.49,49.69 L31.87,49.82 L31.25,49.92 L30.63,49.98 L30.00,50.00 L29.37,49.98 L28.75,49.92 L28.13,49.82 L27.51,49.69 L26.91,49.51 L26.32,49.30 L25.74,49.05 L25.18,48.76 L24.64,48.44 L24.12,48.09 L23.63,47.71 L23.15,47.29 L22.71,46.85 L22.29,46.37 L21.91,45.88 L21.56,45.36 L21.24,44.82 L20.95,44.26 L20.70,43.68 L20.49,43.09 L20.31,42.49 L20.18,41.87 L20.08,41.25 L20.02,40.63 L20.00,40.00 L20.02,39.37 L20.08,38.75 L20.18,38.13 L20.31,37.51 L20.49,36.91 L20.70,36.32 L20.95,35.74 L21.24,35.18 L21.56,34.64 L21.91,34.12 L22.29,33.63 L22.71,33.15 L23.15,32.71 L23.63,32.29 L24.12,31.91 L24.64,31.56 L25.18,31.24 L25.74,30.95 L26.32,30.70 L26.91,30.49 L27.51,30.31 L28.13,30.18 L28.75,30.08 L29.37,30.02 L30.00,30.00 L30.63,30.02 L31.25,30.08 L31.87,30.18 L32.49,30.31 L33.09,30.49 L33.68,30.70 L34.26,30.95 L34.82,31.24 L35.36,31.56 L35.88,31.91 L36.37,32.29 L36.85,32.71 L37.29,33.15 L37.71,33.63 L38.09,34.12 L38.44,34.64 L38.76,35.18 L39.05,35.74 L39.30,36.32 L39.51,36.91 L39.69,37.51 L39.82,38.13 L39.92,38.75 L39.98,39.37 Z"]
       RenderSVGHiddenContainer {linearGradient} at (0,0) size 0x0
         RenderSVGGradientStop {stop} at (0,0) size 0x0
     RenderSVGViewportContainer {marker} at (0,0) size 3.33x3.33
diff --git a/LayoutTests/platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt b/LayoutTests/platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt
index b6471a3..adea83e 100644
--- a/LayoutTests/platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt
@@ -7,3 +7,5 @@ layer at (0,0) size 800x600
       RenderSVGText {text} at (10,70) size 529x69 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-54) size 529x69
           chunk 1 text run 1 at (10.00,70.00) startOffset 0 endOffset 19 width 529.00: "Clipped. INVISIBLE."
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {path} at (0,0) size 200x200 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/js-late-clipPath-creation-expected.txt b/LayoutTests/platform/mac/svg/custom/js-late-clipPath-creation-expected.txt
index b6471a3..adea83e 100644
--- a/LayoutTests/platform/mac/svg/custom/js-late-clipPath-creation-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/js-late-clipPath-creation-expected.txt
@@ -7,3 +7,5 @@ layer at (0,0) size 800x600
       RenderSVGText {text} at (10,70) size 529x69 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-54) size 529x69
           chunk 1 text run 1 at (10.00,70.00) startOffset 0 endOffset 19 width 529.00: "Clipped. INVISIBLE."
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {path} at (0,0) size 200x200 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/recursive-clippath-expected.txt b/LayoutTests/platform/mac/svg/custom/recursive-clippath-expected.txt
index 5e5443c..1666500 100644
--- a/LayoutTests/platform/mac/svg/custom/recursive-clippath-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/recursive-clippath-expected.txt
@@ -3,5 +3,7 @@ layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 100x100
+    RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+      RenderPath {rect} at (0,0) size 100x100 [clip path="clipPath_0"] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [clip path="clipPath_0"] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
diff --git a/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt b/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt
index 8421bd6..d544461 100644
--- a/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt
@@ -6,6 +6,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,10) size 120x350
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {circle} at (0,0) size 1x1 [fill={[type=SOLID] [color=#000000]}] [data="M1.00,0.50 L1.00,0.53 L1.00,0.56 L0.99,0.59 L0.98,0.62 L0.98,0.65 L0.96,0.68 L0.95,0.71 L0.94,0.74 L0.92,0.77 L0.90,0.79 L0.89,0.82 L0.86,0.84 L0.84,0.86 L0.82,0.89 L0.79,0.90 L0.77,0.92 L0.74,0.94 L0.71,0.95 L0.68,0.96 L0.65,0.98 L0.62,0.98 L0.59,0.99 L0.56,1.00 L0.53,1.00 L0.50,1.00 L0.47,1.00 L0.44,1.00 L0.41,0.99 L0.38,0.98 L0.35,0.98 L0.32,0.96 L0.29,0.95 L0.26,0.94 L0.23,0.92 L0.21,0.90 L0.18,0.89 L0.16,0.86 L0.14,0.84 L0.11,0.82 L0.10,0.79 L0.08,0.77 L0.06,0.74 L0.05,0.71 L0.04,0.68 L0.02,0.65 L0.02,0.62 L0.01,0.59 L0.00,0.56 L0.00,0.53 L0.00,0.50 L0.00,0.47 L0.00,0.44 L0.01,0.41 L0.02,0.38 L0.02,0.35 L0.04,0.32 L0.05,0.29 L0.06,0.26 L0.08,0.23 L0.10,0.21 L0.11,0.18 L0.14,0.16 L0.16,0.14 L0.18,0.11 L0.21,0.10 L0.23,0.08 L0.26,0.06 L0.29,0.05 L0.32,0.04 L0.35,0.02 L0.38,0.02 L0.41,0.01 L0.44,0.00 L0.47,0.00 L0.50,0.00 L0.53,0.00 L0.56,0.00 L0.59,0.01 L0.62,0.02 L0.65,0.02 L0.68,0.04 L0.71,0.05 L0.74,0.06 L0.77,0.08 L0.79,0.10 L0.82,0.11 L0.84,0.14 L0.86,0.16 L0.89,0.18 L0.90,0.21 L0.92,0.23 L0.94,0.26 L0.95,0.29 L0.96,0.32 L0.98,0.35 L0.98,0.38 L0.99,0.41 L1.00,0.44 L1.00,0.47 Z"]
       RenderSVGContainer {mask} at (0,0) size 1x1
         RenderPath {circle} at (0,0) size 1x1 [fill={[type=SOLID] [color=#FFFFFF]}] [data="M1.00,0.50 L1.00,0.53 L1.00,0.56 L0.99,0.59 L0.98,0.62 L0.98,0.65 L0.96,0.68 L0.95,0.71 L0.94,0.74 L0.92,0.77 L0.90,0.79 L0.89,0.82 L0.86,0.84 L0.84,0.86 L0.82,0.89 L0.79,0.90 L0.77,0.92 L0.74,0.94 L0.71,0.95 L0.68,0.96 L0.65,0.98 L0.62,0.98 L0.59,0.99 L0.56,1.00 L0.53,1.00 L0.50,1.00 L0.47,1.00 L0.44,1.00 L0.41,0.99 L0.38,0.98 L0.35,0.98 L0.32,0.96 L0.29,0.95 L0.26,0.94 L0.23,0.92 L0.21,0.90 L0.18,0.89 L0.16,0.86 L0.14,0.84 L0.11,0.82 L0.10,0.79 L0.08,0.77 L0.06,0.74 L0.05,0.71 L0.04,0.68 L0.02,0.65 L0.02,0.62 L0.01,0.59 L0.00,0.56 L0.00,0.53 L0.00,0.50 L0.00,0.47 L0.00,0.44 L0.01,0.41 L0.02,0.38 L0.02,0.35 L0.04,0.32 L0.05,0.29 L0.06,0.26 L0.08,0.23 L0.10,0.21 L0.11,0.18 L0.14,0.16 L0.16,0.14 L0.18,0.11 L0.21,0.10 L0.23,0.08 L0.26,0.06 L0.29,0.05 L0.32,0.04 L0.35,0.02 L0.38,0.02 L0.41,0.01 L0.44,0.00 L0.47,0.00 L0.50,0.00 L0.53,0.00 L0.56,0.00 L0.59,0.01 L0.62,0.02 L0.65,0.02 L0.68,0.04 L0.71,0.05 L0.74,0.06 L0.77,0.08 L0.79,0.10 L0.82,0.11 L0.84,0.14 L0.86,0.16 L0.89,0.18 L0.90,0.21 L0.92,0.23 L0.94,0.26 L0.95,0.29 L0.96,0.32 L0.98,0.35 L0.98,0.38 L0.99,0.41 L1.00,0.44 L1.00,0.47 Z"]
     RenderSVGContainer {g} at (0,10) size 120x350
diff --git a/LayoutTests/platform/mac/svg/custom/text-clip-expected.txt b/LayoutTests/platform/mac/svg/custom/text-clip-expected.txt
index d040f4a..ef2365e 100644
--- a/LayoutTests/platform/mac/svg/custom/text-clip-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/text-clip-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,76) size 133x63
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {path} at (200,200) size 100x200 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,200.00 L300.00,200.00 L300.00,400.00 L200.00,400.00 Z"]
     RenderSVGContainer {g} at (0,76) size 133x63
       RenderSVGText {text} at (0,125) size 133x63 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,-49) size 133x63
diff --git a/LayoutTests/platform/mac/svg/custom/visibility-override-clip-expected.txt b/LayoutTests/platform/mac/svg/custom/visibility-override-clip-expected.txt
index 2da978d..bf88f4d 100644
--- a/LayoutTests/platform/mac/svg/custom/visibility-override-clip-expected.txt
+++ b/LayoutTests/platform/mac/svg/custom/visibility-override-clip-expected.txt
@@ -4,6 +4,8 @@ layer at (0,0) size 800x600
 layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 100x100
     RenderSVGHiddenContainer {defs} at (0,0) size 0x0
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
       RenderSVGContainer {g} at (0,0) size 200x200
diff --git a/LayoutTests/platform/mac/svg/filters/filter-clip-expected.txt b/LayoutTests/platform/mac/svg/filters/filter-clip-expected.txt
index 8e61414..ec69359 100644
--- a/LayoutTests/platform/mac/svg/filters/filter-clip-expected.txt
+++ b/LayoutTests/platform/mac/svg/filters/filter-clip-expected.txt
@@ -9,4 +9,6 @@ layer at (0,0) size 800x600
       RenderSVGContainer {mask} at (0,0) size 140x140
         RenderPath {rect} at (0,0) size 140x140 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L140.00,0.00 L140.00,140.00 L0.00,140.00 Z"]
         RenderPath {circle} at (30,30) size 80x80 [fill={[type=SOLID] [color=#FFFF00]}] [data="M110.00,70.00 L109.92,72.51 L109.68,75.01 L109.29,77.50 L108.74,79.95 L108.04,82.36 L107.19,84.72 L106.19,87.03 L105.05,89.27 L103.77,91.43 L102.36,93.51 L100.82,95.50 L99.16,97.38 L97.38,99.16 L95.50,100.82 L93.51,102.36 L91.43,103.77 L89.27,105.05 L87.03,106.19 L84.72,107.19 L82.36,108.04 L79.95,108.74 L77.50,109.29 L75.01,109.68 L72.51,109.92 L70.00,110.00 L67.49,109.92 L64.99,109.68 L62.50,109.29 L60.05,108.74 L57.64,108.04 L55.28,107.19 L52.97,106.19 L50.73,105.05 L48.57,103.77 L46.49,102.36 L44.50,100.82 L42.62,99.16 L40.84,97.38 L39.18,95.50 L37.64,93.51 L36.23,91.43 L34.95,89.27 L33.81,87.03 L32.81,84.72 L31.96,82.36 L31.26,79.95 L30.71,77.50 L30.32,75.01 L30.08,72.51 L30.00,70.00 L30.08,67.49 L30.32,64.99 L30.71,62.50 L31.26,60.05 L31.96,57.64 L32.81,55.28 L33.81,52.97 L34.95,50.73 L36.23,48.57 L37.64,46.49 L39.18,44.50 L40.84,42.62 L42.62,40.84 L44.50,39.18 L46.49,37.64 L48.57,36.23 L50.73,34.95 L52.97,33.81 L55.28,32.81 L57.64,31.96 L60.05,31.26 L62.50,30.71 L64.99,30.32 L67.49,30.08 L70.00,30.00 L72.51,30.08 L75.01,30.32 L77.50,30.71 L79.95,31.26 L82.36,31.96 L84.72,32.81 L87.03,33.81 L89.27,34.95 L91.43,36.23 L93.51,37.64 L95.50,39.18 L97.38,40.84 L99.16,42.62 L100.82,44.50 L102.36,46.49 L103.77,48.57 L105.05,50.73 L106.19,52.97 L107.19,55.28 L108.04,57.64 L108.74,60.05 L109.29,62.50 L109.68,64.99 L109.92,67.49 Z"]
+      RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+        RenderPath {circle} at (20,20) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M120.00,70.00 L119.90,73.14 L119.61,76.27 L119.11,79.37 L118.43,82.43 L117.55,85.45 L116.49,88.41 L115.24,91.29 L113.82,94.09 L112.22,96.79 L110.45,99.39 L108.53,101.87 L106.45,104.23 L104.23,106.45 L101.87,108.53 L99.39,110.45 L96.79,112.22 L94.09,113.82 L91.29,115.24 L88.41,116.49 L85.45,117.55 L82.43,118.43 L79.37,119.11 L76.27,119.61 L73.14,119.90 L70.00,120.00 L66.86,119.90 L63.73,119.61 L60.63,119.11 L57.57,118.43 L54.55,117.55 L51.59,116.49 L48.71,115.24 L45.91,113.82 L43.21,112.22 L40.61,110.45 L38.13,108.53 L35.77,106.45 L33.55,104.23 L31.47,101.87 L29.55,99.39 L27.78,96.79 L26.18,94.09 L24.76,91.29 L23.51,88.41 L22.45,85.45 L21.57,82.43 L20.89,79.37 L20.39,76.27 L20.10,73.14 L20.00,70.00 L20.10,66.86 L20.39,63.73 L20.89,60.63 L21.57,57.57 L22.45,54.55 L23.51,51.59 L24.76,48.71 L26.18,45.91 L27.78,43.21 L29.55,40.61 L31.47,38.13 L33.55,35.77 L35.77,33.55 L38.13,31.47 L40.61,29.55 L43.21,27.78 L45.91,26.18 L48.71,24.76 L51.59,23.51 L54.55,22.45 L57.57,21.57 L60.63,20.89 L63.73,20.39 L66.86,20.10 L70.00,20.00 L73.14,20.10 L76.27,20.39 L79.37,20.89 L82.43,21.57 L85.45,22.45 L88.41,23.51 L91.29,24.76 L94.09,26.18 L96.79,27.78 L99.39,29.55 L101.87,31.47 L104.23,33.55 L106.45,35.77 L108.53,38.13 L110.45,40.61 L112.22,43.21 L113.82,45.91 L115.24,48.71 L116.49,51.59 L117.55,54.55 L118.43,57.57 L119.11,60.63 L119.61,63.73 L119.90,66.86 Z"]
     RenderPath {rect} at (20,20) size 100x100 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [filter=blur] [data="M20.00,20.00 L120.00,20.00 L120.00,120.00 L20.00,120.00 Z"]
diff --git a/LayoutTests/svg/custom/use-clipped-transform-expected.txt b/LayoutTests/svg/custom/use-clipped-transform-expected.txt
index 9205359..cde310b 100644
--- a/LayoutTests/svg/custom/use-clipped-transform-expected.txt
+++ b/LayoutTests/svg/custom/use-clipped-transform-expected.txt
@@ -5,4 +5,8 @@ layer at (0,0) size 800x600
   RenderSVGRoot {svg} at (0,0) size 200x200
     RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
+    RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
+      RenderSVGContainer {use} at (0,0) size 200x200
+        RenderSVGContainer {g} at (0,0) size 200x200
+          RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
     RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [data="M0.00,0.00 L400.00,0.00 L400.00,200.00 L0.00,200.00 Z"]
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c91e70c..6a2cb52 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-01-13  Nikolas Zimmermann  <nzimmermann at rim.com>
+
+        Reviewed by Oliver Hunt.
+
+        SVGClipPathElement shouldn't resolve style manually
+        https://bugs.webkit.org/show_bug.cgi?id=33647
+
+        Build renderers for SVGClipPathElement, so we can query the style from the renderer
+        instead of re-resolving style on every clip path resource invalidation.
+
+        * svg/SVGClipPathElement.cpp:
+        (WebCore::SVGClipPathElement::createRenderer):
+        (WebCore::SVGClipPathElement::canvasResource):
+        * svg/SVGClipPathElement.h:
+        (WebCore::SVGClipPathElement::isValid):
+
 2010-01-13  Kelly Norton  <knorton at google.com>
 
         Reviewed by Timothy Hatcher.
diff --git a/WebCore/svg/SVGClipPathElement.cpp b/WebCore/svg/SVGClipPathElement.cpp
index 6cf0219..78311d3 100644
--- a/WebCore/svg/SVGClipPathElement.cpp
+++ b/WebCore/svg/SVGClipPathElement.cpp
@@ -26,6 +26,7 @@
 #include "CSSStyleSelector.h"
 #include "Document.h"
 #include "MappedAttribute.h"
+#include "RenderSVGHiddenContainer.h"
 #include "SVGNames.h"
 #include "SVGTransformList.h"
 #include "SVGUnitTypes.h"
@@ -89,6 +90,11 @@ void SVGClipPathElement::childrenChanged(bool changedByParser, Node* beforeChang
     m_clipper->invalidate();
 }
 
+RenderObject* SVGClipPathElement::createRenderer(RenderArena* arena, RenderStyle*)
+{
+    return new (arena) RenderSVGHiddenContainer(this);
+}
+
 SVGResource* SVGClipPathElement::canvasResource(const RenderObject*)
 {
     if (!m_clipper)
@@ -98,17 +104,17 @@ SVGResource* SVGClipPathElement::canvasResource(const RenderObject*)
 
     bool bbox = clipPathUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
 
-    RefPtr<RenderStyle> clipPathStyle = styleForRenderer(); // FIXME: Manual style resolution is a hack
-    for (Node* n = firstChild(); n; n = n->nextSibling()) {
-        if (n->isSVGElement() && static_cast<SVGElement*>(n)->isStyledTransformable()) {
-            SVGStyledTransformableElement* styled = static_cast<SVGStyledTransformableElement*>(n);
-            RefPtr<RenderStyle> pathStyle = document()->styleSelector()->styleForElement(styled, clipPathStyle.get());
-            if (pathStyle->display() != NONE) {
-                Path pathData = styled->toClipPath();
-                if (!pathData.isEmpty())
-                    m_clipper->addClipData(pathData, pathStyle->svgStyle()->clipRule(), bbox);
-            }
-        }
+    for (Node* node = firstChild(); node; node = node->nextSibling()) {
+        if (!node->isSVGElement() || !static_cast<SVGElement*>(node)->isStyledTransformable())
+            continue;
+        SVGStyledTransformableElement* styled = static_cast<SVGStyledTransformableElement*>(node);
+        RenderStyle* style = styled->renderer() ? styled->renderer()->style() : 0;
+        if (!style || style->display() == NONE)
+            continue;
+        Path pathData = styled->toClipPath();
+        if (pathData.isEmpty())
+            continue;
+        m_clipper->addClipData(pathData, style->svgStyle()->clipRule(), bbox);
     }
     if (m_clipper->clipData().isEmpty()) {
         Path pathData;
diff --git a/WebCore/svg/SVGClipPathElement.h b/WebCore/svg/SVGClipPathElement.h
index f8d37da..ef6e629 100644
--- a/WebCore/svg/SVGClipPathElement.h
+++ b/WebCore/svg/SVGClipPathElement.h
@@ -40,12 +40,12 @@ namespace WebCore {
         virtual ~SVGClipPathElement();
 
         virtual bool isValid() const { return SVGTests::isValid(); }
-        virtual bool rendererIsNeeded(RenderStyle*) { return false; }
 
         virtual void parseMappedAttribute(MappedAttribute*);
         virtual void svgAttributeChanged(const QualifiedName&);
         virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
 
+        virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
         virtual SVGResource* canvasResource(const RenderObject*);
 
     private:

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list