https://bugs.webkit.org/show_bug.cgi?id=65711
Reviewed by Zoltan Herczeg.
Source/WebCore:
Enable simple code path in SVGTextMetricsBuilder, allowing fast-measurement of simple text.
This affects the geometry of several <text> elements, thus several tests need rebaselining.
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::advance):
(WebCore::SVGTextMetricsBuilder::advanceComplexText):
LayoutTests:
Update some test results after enabling the simple code path to measure SVG text.
* platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.png:
* platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/text-text-01-b-expected.txt:
* platform/mac/svg/batik/text/smallFonts-expected.png:
* platform/mac/svg/batik/text/textAnchor-expected.txt:
* platform/mac/svg/carto.net/window-expected.png:
* platform/mac/svg/carto.net/window-expected.txt:
* platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.png:
* platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
* platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.png:
* platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.txt:
* platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.png:
* platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.txt:
* platform/mac/svg/custom/text-repaint-including-stroke-expected.png:
* platform/mac/svg/custom/use-clipped-hit-expected.txt:
* platform/mac/svg/custom/use-detach-expected.png:
* platform/mac/svg/custom/use-detach-expected.txt:
* platform/mac/svg/foreignObject/text-tref-02-b-expected.png:
* platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-1-expected.png:
* platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-2-expected.png:
* platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-3-expected.png:
* platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-4-expected.png:
* platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-4-expected.txt:
* platform/mac/svg/text/select-textLength-spacingAndGlyphs-stretch-4-expected.txt:
* platform/mac/svg/text/text-align-01-b-expected.png:
* platform/mac/svg/text/text-align-01-b-expected.txt:
* platform/mac/svg/text/text-align-02-b-expected.txt:
* platform/mac/svg/text/text-align-04-b-expected.txt:
* platform/mac/svg/text/text-align-06-b-expected.png:
* platform/mac/svg/text/text-align-06-b-expected.txt:
* platform/mac/svg/text/text-deco-01-b-expected.txt:
* platform/mac/svg/text/text-fonts-01-t-expected.txt:
* platform/mac/svg/text/text-spacing-01-b-expected.png:
* platform/mac/svg/text/text-text-04-t-expected.png:
* platform/mac/svg/text/text-text-05-t-expected.png:
* platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
* platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.png:
* platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@105061
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-01-16 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Large SVG text layout performance regression in r81168
+ https://bugs.webkit.org/show_bug.cgi?id=65711
+
+ Reviewed by Zoltan Herczeg.
+
+ Update some test results after enabling the simple code path to measure SVG text.
+
+ * platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.png:
+ * platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
+ * platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:
+ * platform/mac/svg/W3C-SVG-1.1/text-text-01-b-expected.txt:
+ * platform/mac/svg/batik/text/smallFonts-expected.png:
+ * platform/mac/svg/batik/text/textAnchor-expected.txt:
+ * platform/mac/svg/carto.net/window-expected.png:
+ * platform/mac/svg/carto.net/window-expected.txt:
+ * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.png:
+ * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
+ * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.png:
+ * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.txt:
+ * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.png:
+ * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.txt:
+ * platform/mac/svg/custom/text-repaint-including-stroke-expected.png:
+ * platform/mac/svg/custom/use-clipped-hit-expected.txt:
+ * platform/mac/svg/custom/use-detach-expected.png:
+ * platform/mac/svg/custom/use-detach-expected.txt:
+ * platform/mac/svg/foreignObject/text-tref-02-b-expected.png:
+ * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-1-expected.png:
+ * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-2-expected.png:
+ * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-3-expected.png:
+ * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-4-expected.png:
+ * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-4-expected.txt:
+ * platform/mac/svg/text/select-textLength-spacingAndGlyphs-stretch-4-expected.txt:
+ * platform/mac/svg/text/text-align-01-b-expected.png:
+ * platform/mac/svg/text/text-align-01-b-expected.txt:
+ * platform/mac/svg/text/text-align-02-b-expected.txt:
+ * platform/mac/svg/text/text-align-04-b-expected.txt:
+ * platform/mac/svg/text/text-align-06-b-expected.png:
+ * platform/mac/svg/text/text-align-06-b-expected.txt:
+ * platform/mac/svg/text/text-deco-01-b-expected.txt:
+ * platform/mac/svg/text/text-fonts-01-t-expected.txt:
+ * platform/mac/svg/text/text-spacing-01-b-expected.png:
+ * platform/mac/svg/text/text-text-04-t-expected.png:
+ * platform/mac/svg/text/text-text-05-t-expected.png:
+ * platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
+ * platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.png:
+ * platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.txt:
+
2012-01-15 Pavel Feldman <pfeldman@chromium.org>
Web Inspector: editing body multiplies head
RenderSVGText {text} at (7,0) size 67x9 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 67x9
chunk 1 text run 1 at (7.00,8.00) startOffset 0 endOffset 18 width 66.33: "Test a motion path"
- RenderSVGText {text} at (11,10) size 53x9 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 53x9
+ RenderSVGText {text} at (11,10) size 52x9 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 52x9
chunk 1 text run 1 at (11.00,18.00) startOffset 0 endOffset 17 width 52.00: "'path' attribute."
RenderSVGContainer {g} at (42,120) size 426x192
RenderSVGPath {path} at (87,120) size 305x141 [stroke={[type=SOLID] [color=#000000]}] [data="M 15 43 C 15 43 36 20 65 33"]
chunk 1 text run 1 at (10.00,180.00) startOffset 0 endOffset 11 width 162.40: "type: table"
RenderSVGRect {rect} at (22,155) size 415x29 [fill={[type=LINEAR-GRADIENT] [id="MyGradient"]}] [x=10.00] [y=210.00] [width=580.00] [height=40.00]
[filter="Linear"] RenderSVGResourceFilter {filter} at (10,210) size 580x40
- RenderSVGText {text} at (10,250) size 588x36 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 588x36
+ RenderSVGText {text} at (10,250) size 589x36 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 589x36
chunk 1 text run 1 at (10.00,280.00) startOffset 0 endOffset 40 width 588.00: "type:linear slope:.5 intercepts:.25/0/.5"
RenderSVGRect {rect} at (22,226) size 415x29 [fill={[type=LINEAR-GRADIENT] [id="MyGradient"]}] [x=10.00] [y=310.00] [width=580.00] [height=40.00]
[filter="Gamma"] RenderSVGResourceFilter {filter} at (10,310) size 580x40
RenderSVGText {text} at (6,32) size 62x7 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 62x7
chunk 1 text run 1 at (6.00,38.00) startOffset 0 endOffset 22 width 61.67: "textLength: 25% longer"
- RenderSVGText {text} at (6,38) size 48x7 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 48x7
+ RenderSVGText {text} at (6,38) size 49x7 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 49x7
chunk 1 text run 1 at (6.00,44.00) startOffset 0 endOffset 17 width 48.00: "lengthAdjust: sAG"
RenderSVGText {text} at (76,32) size 64x7 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 64x7
chunk 1 text run 1 at (76.00,38.00) startOffset 0 endOffset 23 width 63.67: "textLength: 20% shorter"
- RenderSVGText {text} at (76,38) size 48x7 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 48x7
+ RenderSVGText {text} at (76,38) size 49x7 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 49x7
chunk 1 text run 1 at (76.00,44.00) startOffset 0 endOffset 17 width 48.00: "lengthAdjust: sAG"
RenderSVGText {text} at (5,109) size 53x10 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 53x10
chunk 1 text run 1 at (320.00,30.00) startOffset 0 endOffset 18 width 116.00: "another text chunk"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderSVGContainer {g} at (108,123) size 276x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,40.00)}]
- RenderSVGText {text} at (69,15) size 367x39 contains 1 chunk(s)
+ RenderSVGText {text} at (69,15) size 366x39 contains 1 chunk(s)
RenderSVGTSpan {tspan} at (0,0) size 51x19
RenderSVGInlineText {#text} at (0,20) size 51x19
chunk 1 (middle anchor) text run 1 at (70.00,50.00) startOffset 0 endOffset 8 width 50.67: "I am the"
chunk 1 text run 1 at (124.67,50.00) startOffset 0 endOffset 15 width 101.33: "same text chunk"
RenderSVGInlineText {#text} at (156,20) size 4x19
chunk 1 text run 1 at (226.00,50.00) startOffset 0 endOffset 1 width 4.00: " "
- RenderSVGTSpan {tspan} at (0,0) size 117x19
+ RenderSVGTSpan {tspan} at (0,0) size 116x19
RenderSVGInlineText {#text} at (250,0) size 116x19
chunk 1 text run 1 at (320.00,30.00) startOffset 0 endOffset 18 width 116.00: "another text chunk"
RenderSVGInlineText {#text} at (0,0) size 0x0
chunk 1 (middle anchor) text run 1 at (262.00,30.00) startOffset 0 endOffset 18 width 116.00: "another text chunk"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderSVGContainer {g} at (108,251) size 232x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,160.00)}]
- RenderSVGText {text} at (69,15) size 309x39 contains 1 chunk(s)
+ RenderSVGText {text} at (69,15) size 308x39 contains 1 chunk(s)
RenderSVGTSpan {tspan} at (0,0) size 51x19
RenderSVGInlineText {#text} at (0,20) size 51x19
chunk 1 (middle anchor) text run 1 at (70.00,50.00) startOffset 0 endOffset 8 width 50.67: "I am the"
chunk 1 text run 1 at (124.67,50.00) startOffset 0 endOffset 15 width 101.33: "same text chunk"
RenderSVGInlineText {#text} at (156,20) size 4x19
chunk 1 text run 1 at (226.00,50.00) startOffset 0 endOffset 1 width 4.00: " "
- RenderSVGTSpan {tspan} at (0,0) size 117x19
+ RenderSVGTSpan {tspan} at (0,0) size 116x19
RenderSVGInlineText {#text} at (192,0) size 116x19
chunk 1 (middle anchor) text run 1 at (262.00,30.00) startOffset 0 endOffset 18 width 116.00: "another text chunk"
RenderSVGInlineText {#text} at (0,0) size 0x0
chunk 1 (end anchor) text run 1 at (204.00,30.00) startOffset 0 endOffset 18 width 116.00: "another text chunk"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderSVGContainer {g} at (108,378) size 189x30 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,300.00)}]
- RenderSVGText {text} at (69,15) size 251x39 contains 1 chunk(s)
+ RenderSVGText {text} at (69,15) size 250x39 contains 1 chunk(s)
RenderSVGTSpan {tspan} at (0,0) size 51x19
RenderSVGInlineText {#text} at (0,20) size 51x19
chunk 1 (middle anchor) text run 1 at (70.00,50.00) startOffset 0 endOffset 8 width 50.67: "I am the"
chunk 1 text run 1 at (124.67,50.00) startOffset 0 endOffset 15 width 101.33: "same text chunk"
RenderSVGInlineText {#text} at (156,20) size 4x19
chunk 1 text run 1 at (226.00,50.00) startOffset 0 endOffset 1 width 4.00: " "
- RenderSVGTSpan {tspan} at (0,0) size 117x19
+ RenderSVGTSpan {tspan} at (0,0) size 116x19
RenderSVGInlineText {#text} at (134,0) size 116x19
chunk 1 (end anchor) text run 1 at (204.00,30.00) startOffset 0 endOffset 18 width 116.00: "another text chunk"
RenderSVGInlineText {#text} at (0,0) size 0x0
RenderSVGRect {rect} at (38,143) size 549x392 [stroke={[type=SOLID] [color=#696969]}] [fill={[type=SOLID] [color=#F0F8FF]}] [x=0.00] [y=0.00] [width=700.00] [height=500.00]
RenderSVGContainer {g} at (0,0) size 0x0
RenderSVGRect {rect} at (38,523) size 549x12 [stroke={[type=SOLID] [color=#696969]}] [fill={[type=SOLID] [color=#F0F8FF]}] [x=0.00] [y=487.00] [width=700.00] [height=13.00]
- RenderSVGText {text} at (3,487) size 128x12 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 128x12
+ RenderSVGText {text} at (3,487) size 129x12 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 129x12
chunk 1 text run 1 at (3.00,497.00) startOffset 0 endOffset 28 width 128.00: "This is a big movable window"
RenderSVGContainer {g} at (77,182) size 315x236 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,50.00)}]
RenderSVGContainer {g} at (77,182) size 315x236
RenderSVGContainer {g} at (47,4) size 256x57
RenderSVGPath {svg:line} at (47,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=10.00] [y1=0.95] [x2=10.00] [y2=12.17]
RenderSVGPath {svg:line} at (297,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=60.00] [y1=0.95] [x2=60.00] [y2=12.17]
- RenderSVGRect {svg:rect} at (50,4) size 250x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=10.00] [y=0.95] [width=50.00] [height=11.17]
+ RenderSVGRect {svg:rect} at (50,4) size 251x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=10.00] [y=0.95] [width=50.00] [height=11.17]
RenderSVGText {text} at (10,0) size 50x12 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 50x12
chunk 1 text run 1 at (10.00,10.00) startOffset 0 endOffset 15 width 73.20: "Text to Squeeze"
RenderSVGContainer {g} at (47,4) size 706x57
RenderSVGPath {svg:line} at (47,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=10.00] [y1=0.95] [x2=10.00] [y2=12.17]
RenderSVGPath {svg:line} at (747,4) size 6x57 [stroke={[type=SOLID] [color=#008000]}] [fill={[type=SOLID] [color=#000000]}] [x1=150.00] [y1=0.95] [x2=150.00] [y2=12.17]
- RenderSVGRect {svg:rect} at (50,4) size 700x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=10.00] [y=0.95] [width=140.00] [height=11.17]
+ RenderSVGRect {svg:rect} at (50,4) size 701x57 [fill={[type=SOLID] [color=#FF0000] [opacity=0.40]}] [x=10.00] [y=0.95] [width=140.00] [height=11.17]
RenderSVGText {text} at (10,0) size 140x12 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 140x12
chunk 1 text run 1 at (10.00,10.00) startOffset 0 endOffset 15 width 65.40: "Text to Stretch"
RenderSVGText {text} at (5,9) size 446x39 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 446x39
chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 31 width 445.20: "Test 'text-anchor' (horizontal)"
- RenderSVGContainer {g} at (33,170) size 729x309
+ RenderSVGContainer {g} at (31,170) size 731x309
RenderSVGContainer {g} at (378,170) size 384x59 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,130.00)}]
RenderSVGPath {line} at (383,215) size 84x3 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [x1=0.00] [y1=0.00] [x2=50.00] [y2=0.00]
RenderSVGPath {circle} at (378,211) size 11x11 [fill={[type=SOLID] [color=#000000]}] [cx=0.00] [cy=0.00] [r=3.00]
RenderSVGText {text} at (-125,-28) size 249x34 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 249x34
chunk 1 (middle anchor) text run 1 at (-124.20,0.00) startOffset 0 endOffset 18 width 248.40: "text-anchor:middle"
- RenderSVGContainer {g} at (33,420) size 356x59 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,280.00)}]
+ RenderSVGContainer {g} at (31,420) size 358x59 [transform={m=((1.00,0.00)(0.00,1.00)) t=(230.00,280.00)}]
RenderSVGPath {line} at (300,465) size 84x3 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#000000]}] [x1=-50.00] [y1=0.00] [x2=0.00] [y2=0.00]
RenderSVGPath {circle} at (378,461) size 11x11 [fill={[type=SOLID] [color=#000000]}] [cx=0.00] [cy=0.00] [r=3.00]
- RenderSVGText {text} at (-210,-28) size 210x34 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 210x34
+ RenderSVGText {text} at (-211,-28) size 211x34 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 211x34
chunk 1 (end anchor) text run 1 at (-210.00,0.00) startOffset 0 endOffset 15 width 210.00: "text-anchor:end"
RenderSVGText {text} at (10,303) size 269x47 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 269x47
RenderSVGText {text} at (5,9) size 477x39 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 477x39
chunk 1 text run 1 at (5.00,40.00) startOffset 0 endOffset 34 width 476.40: "Test 'baseline-shift' (horizontal)"
- RenderSVGContainer {g} at (25,141) size 672x333 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,120.00)}]
+ RenderSVGContainer {g} at (25,141) size 670x333 [transform={m=((1.00,0.00)(0.00,1.00)) t=(15.00,120.00)}]
RenderSVGText {text} at (0,-35) size 349x41 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,7) size 98x34
chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 6 width 97.20: "Normal"
chunk 1 text run 1 at (97.20,-7.00) startOffset 0 endOffset 16 width 202.80: "baseline-shift:7"
RenderSVGInlineText {#text} at (300,7) size 49x34
chunk 1 text run 1 at (300.00,0.00) startOffset 0 endOffset 4 width 48.60: "text"
- RenderSVGText {text} at (0,42) size 403x55 contains 1 chunk(s)
+ RenderSVGText {text} at (0,42) size 402x55 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 98x34
chunk 1 text run 1 at (0.00,70.00) startOffset 0 endOffset 6 width 97.20: "Normal"
RenderSVGTSpan {tspan} at (0,0) size 257x34
RenderSVGInlineText {#text} at (0,0) size 160x34
chunk 1 (end anchor) text run 1 at (60.40,220.00) startOffset 0 endOffset 13 width 159.60: "end text tref"
RenderSVGInlineText {#text} at (0,0) size 0x0
- RenderSVGText {text} at (-6,232) size 226x34 contains 1 chunk(s)
+ RenderSVGText {text} at (-5,232) size 226x34 contains 1 chunk(s)
RenderSVGTextPath {textPath} at (0,0) size 226x34
RenderSVGInlineText {#text} at (0,0) size 226x34
chunk 1 (end anchor) text run 1 at (-0.80,260.00) startOffset 12 endOffset 13 width 8.40: " "
RenderSVGInlineText {#text} at (0,0) size 17x68
chunk 1 (vertical) text run 1 at (-10.40,0.00) startOffset 0 endOffset 1 height 33.52: "t"
chunk 1 (vertical) text run 2 at (-10.40,33.52) startOffset 1 endOffset 2 height 33.52: "e"
- RenderSVGTSpan {tspan} at (0,0) size 18x34
- RenderSVGInlineText {#text} at (6,67) size 17x34
+ RenderSVGTSpan {tspan} at (0,0) size 17x34
+ RenderSVGInlineText {#text} at (7,67) size 17x34
chunk 1 (vertical) text run 1 at (-3.40,67.03) startOffset 0 endOffset 1 height 33.52: "7"
RenderSVGInlineText {#text} at (0,100) size 15x68
chunk 1 (vertical) text run 1 at (-10.40,100.55) startOffset 0 endOffset 1 height 33.52: "x"
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (0,0) size 800x600
RenderSVGContainer {g} at (16,8) size 634x462
- RenderSVGText {text} at (10,5) size 156x19 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 156x19
+ RenderSVGText {text} at (10,5) size 157x19 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 157x19
chunk 1 text run 1 at (10.00,20.00) startOffset 0 endOffset 23 width 156.00: "Test 'text-decoration'."
RenderSVGContainer {g} at (40,70) size 610x400
RenderSVGText {text} at (25,43) size 122x27 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 293x28
chunk 1 text run 1 at (20.00,240.00) startOffset 0 endOffset 19 width 292.80: "A mono (iW) face \x{753B}\x{50CF}"
RenderSVGContainer {g} at (66,46) size 489x314
- RenderSVGText {text} at (40,28) size 189x28 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 189x28
+ RenderSVGText {text} at (40,28) size 190x28 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 190x28
chunk 1 text run 1 at (40.00,50.00) startOffset 0 endOffset 17 width 189.00: "A serifed face \x{753B}\x{50CF}"
RenderSVGText {text} at (40,107) size 233x28 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 233x28
RenderSVGRect {rect} at (146,113) size 13x12 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=10.00] [width=10.00] [height=10.00]
RenderSVGRect {rect} at (154,115) size 12x13 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=10.00] [height=10.00]
RenderSVGRect {rect} at (125,190) size 357x172 [stroke={[type=PATTERN] [id="pat2"] [stroke width=20.00]}] [x=35.00] [y=110.00] [width=410.00] [height=40.00]
- RenderSVGText {text} at (25,164) size 318x14 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 318x14
+ RenderSVGText {text} at (25,164) size 319x14 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 319x14
chunk 1 text run 1 at (25.00,175.00) startOffset 0 endOffset 59 width 318.00: "Pattern of 4 rectangles applied to a stroke of a rectangle."
RenderSVGResourcePattern {pattern} [id="pat3"] [patternUnits=objectBoundingBox] [patternContentUnits=userSpaceOnUse]
RenderSVGRect {rect} at (149,105) size 12x13 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=10.00] [height=10.00]
RenderSVGRect {rect} at (0,7) size 4x12 [fill={[type=SOLID] [color=#0000FF]}] [x=0.00] [y=10.00] [width=10.00] [height=10.00]
RenderSVGRect {rect} at (0,11) size 11x12 [fill={[type=SOLID] [color=#FFFF00]}] [x=10.00] [y=10.00] [width=10.00] [height=10.00]
RenderSVGRect {rect} at (0,82) size 287x224 [stroke={[type=PATTERN] [id="pat2"] [stroke width=20.00]}] [x=35.00] [y=110.00] [width=410.00] [height=40.00]
- RenderSVGText {text} at (25,164) size 318x14 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,0) size 318x14
+ RenderSVGText {text} at (25,164) size 319x14 contains 1 chunk(s)
+ RenderSVGInlineText {#text} at (0,0) size 319x14
chunk 1 text run 1 at (25.00,175.00) startOffset 0 endOffset 59 width 318.00: "Pattern of 4 rectangles applied to a stroke of a rectangle."
RenderSVGResourcePattern {pattern} [id="pat3"] [patternUnits=objectBoundingBox] [patternContentUnits=userSpaceOnUse]
RenderSVGRect {rect} at (0,0) size 8x12 [fill={[type=SOLID] [color=#FF0000]}] [x=0.00] [y=0.00] [width=10.00] [height=10.00]
+2012-01-16 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Large SVG text layout performance regression in r81168
+ https://bugs.webkit.org/show_bug.cgi?id=65711
+
+ Reviewed by Zoltan Herczeg.
+
+ Enable simple code path in SVGTextMetricsBuilder, allowing fast-measurement of simple text.
+ This affects the geometry of several <text> elements, thus several tests need rebaselining.
+
+ * rendering/svg/SVGTextMetricsBuilder.cpp:
+ (WebCore::SVGTextMetricsBuilder::advance):
+ (WebCore::SVGTextMetricsBuilder::advanceComplexText):
+
2012-01-16 Peter Rybin <peter.rybin@gmail.com>
Web Inspector: CodeGeneratorInspector.py: generate array types.
#if PLATFORM(QT)
advanceComplexText();
#else
- // FIXME: Enabling the simple code path, affects some layout test results, so this will be landed seperated.
- m_isComplexText = true;
if (m_isComplexText)
advanceComplexText();
else
unsigned metricsLength = currentCharacterStartsSurrogatePair() ? 2 : 1;
m_currentMetrics = SVGTextMetrics::measureCharacterRange(m_text, m_textPosition, metricsLength);
m_complexStartToCurrentMetrics = SVGTextMetrics::measureCharacterRange(m_text, 0, m_textPosition + metricsLength);
-
- // FIXME: Re-enable this assertion, once SVG Fonts stop using this code path.
- // ASSERT(m_currentMetrics.length() == metricsLength);
+ ASSERT(m_currentMetrics.length() == metricsLength);
// Frequent case for Arabic text: when measuring a single character the arabic isolated form is taken
// when rendering the glyph "in context" (with it's surrounding characters) it changes due to shaping.