diff options
Diffstat (limited to '')
17 files changed, 571 insertions, 0 deletions
diff --git a/layout/reftests/text-svgglyphs/resources/README b/layout/reftests/text-svgglyphs/resources/README new file mode 100644 index 0000000000..852e5e4206 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/README @@ -0,0 +1,61 @@ +.woff files for SVG-in-OpenType testing +======================================= + +There are three .woff files in this directory: + * nosvg.woff + * svg.woff + * rubbish.woff + +nosvg.woff +---------- +This font is FiraSansOT-Regular, with its metrics hacked so that its ascent +is 1000 and descent is 0. Its unitsPerEm value is 1000. + +It contains no 'SVG ' table. + +svg.woff +-------- +This font is the same as nosvg.woff above, but with the glyphs-*.svg SVG +documents from this directory embedded in it using the tools described below. + +rubbish.woff +------------ +This font is the same as nosvg.woff above, but with the addition of an 'SVG ' +table with the contents of rubbish.txt. Its purpose is to test that SVG tables +without valid XML are ignored. + +Creating the Fonts +------------------ +The tools used here are insertsvg.py from [1] and sfnt2woff from [2]. + +svg.woff can be recreated with: + +woff2sfnt nosvg.woff > nosvg.ttf +insertsvg.py nosvg.ttf svg.ttf glyphs-*.svg +sfnt2woff svg.ttf + +[1] https://github.com/edf825/SVG-OpenType-Utils +[2] http://people.mozilla.com/~jkew/woff/ + + + +Additional test fonts: +====================== + +svg-glyph-extents.otf +--------------------- + +This is a copy of Fira Sans with a simple SVG table added using the tool from +https://github.com/rocallahan/svg-opentype-workshop. The SVG table defines four +glyphs, corresponding to 'A' through 'D': + + <svg xmlns='http://www.w3.org/2000/svg'> + <rect id='glyph36' x='0' y='-1000' width='1000' height='1500' fill='red'/> + <rect id='glyph37' x='0' y='-1000' width='1000' height='1500' fill='green' transform='scale(2)'/> + <g id='glyph38'> + <rect x='0' y='-1000' width='1000' height='1500' fill='red'/> + </g> + <g id='glyph39'> + <rect x='0' y='-1000' width='1000' height='1500' fill='green' transform='scale(2)'/> + </g> + </svg> diff --git a/layout/reftests/text-svgglyphs/resources/bug1320197-testFont2.ttf b/layout/reftests/text-svgglyphs/resources/bug1320197-testFont2.ttf Binary files differnew file mode 100644 index 0000000000..8ef2e89edf --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/bug1320197-testFont2.ttf diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-base.svg b/layout/reftests/text-svgglyphs/resources/glyphs-base.svg new file mode 100644 index 0000000000..51c32135c0 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-base.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + Basic test SVG glyphs + Covers glyph ID 47 +--> + <!-- char = L --> + <g id="glyph47"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + stroke="black" fill="red"/> + <rect x="100" y="-1000" width="100" height="100" stroke="none" + fill="turquoise" /> + </g> +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-invalid.svg b/layout/reftests/text-svgglyphs/resources/glyphs-invalid.svg new file mode 100644 index 0000000000..4740b4ff3b --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-invalid.svg @@ -0,0 +1,40 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + Test handling of invalid ids +--> + <!-- not valid: leading space not allowed --> + <g id="glyph 48"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="red"/> + </g> + <!-- not valid: leading zero not allowed --> + <g id="glyph048"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="red"/> + </g> + <!-- not valid: trailing garbage not allowed --> + <g id="glyph48xxx"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="red"/> + </g> + <!-- not valid: trailing space not allowed --> + <g id="glyph48 "> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="red"/> + </g> + <!-- not valid: floating point not allowed --> + <g id="glyph48.0"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="red"/> + </g> + <!-- char = M --> + <g id="glyph48"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="lime"/> + </g> + <!-- Ensure first glyph48 is picked --> + <g id="glyph48"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="red"/> + </g> +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-objectcolor.svg b/layout/reftests/text-svgglyphs/resources/glyphs-objectcolor.svg new file mode 100644 index 0000000000..cf738d0cc1 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-objectcolor.svg @@ -0,0 +1,24 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + Test SVG glyphs for text object pattern inheritance + Covers glyph ID range 49 (N) to 52 (Q) +--> +<!-- context-fill, no stroke --> + <!-- N --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + stroke="none" fill="context-fill" id="glyph49"/> + + <!-- O --> + <rect x="50" y="-950" width="900" height="900" stroke-width="100" + fill="context-fill" stroke="none" id="glyph50"/> + +<!-- context-stroke --> + <!-- P --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + stroke="context-stroke" fill="burlywood" id="glyph51"/> + +<!-- both context-stroke and context-fill (but note swapped usage!) --> + <!-- Q --> + <rect x="50" y="-950" width="900" height="900" stroke-width="100" + fill="context-stroke" stroke="context-fill" id="glyph52"/> +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-objectopacity.svg b/layout/reftests/text-svgglyphs/resources/glyphs-objectopacity.svg new file mode 100644 index 0000000000..7fc479e22b --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-objectopacity.svg @@ -0,0 +1,59 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + Test SVG glyphs for text object opacity inheritance + Covers glyph ID range 53 (R) to 60 (Y) +--> + <!-- R --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="context-fill" stroke="context-stroke" + fill-opacity="context-fill-opacity" + stroke-opacity="context-stroke-opacity" id="glyph53"/> + + <!-- S --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="context-fill" stroke="context-stroke" + fill-opacity="context-stroke-opacity" + stroke-opacity="context-fill-opacity" id="glyph54"/> + + <!-- T --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="context-stroke" stroke="context-fill" + fill-opacity="context-fill-opacity" + stroke-opacity="context-stroke-opacity" id="glyph55"/> + + <!-- U --> + <!-- Test for bug where explicit `inherit' would fail for + *-opacity="objectStrokeOpacity" or "objectFillOpacity" --> + <g style="fill-opacity : context-stroke-opacity; stroke-opacity : context-fill-opacity"> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="context-stroke" stroke="context-fill" + fill-opacity="inherit" stroke-opacity="inherit" id="glyph56"/> + </g> + + <!-- W --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="darkorchid" stroke="goldenrod" + fill-opacity="context-fill-opacity" + stroke-opacity="context-stroke-opacity" id="glyph58"/> + + <!-- X --> + <rect x="100" y="-900" width="800" height="800" stroke-width="50" + fill="darkorchid" stroke="goldenrod" + fill-opacity="context-stroke-opacity" + stroke-opacity="context-fill-opacity" id="glyph59"/> + + <style type="text/css"><![CDATA[ + #glyph60 { + fill-opacity : context-fill-opacity; + stroke-opacity : context-stroke-opacity; + } + #ychild { + color-interpolation : sRGB; + } + ]]></style> + <!-- Y --> + <g id="glyph60"> + <rect x="100" y="-900" width="800" height="300" stroke="red" stroke-width="50"/> + <rect x="100" y="-400" width="800" height="300" stroke="red" stroke-width="50" id="ychild" /> + </g> +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-objectstroke.svg b/layout/reftests/text-svgglyphs/resources/glyphs-objectstroke.svg new file mode 100644 index 0000000000..44afb2f600 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-objectstroke.svg @@ -0,0 +1,25 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + Test SVG glyphs for text object stroke value inheritance + Covers glyph ID range 68 (a) to 71 (d) +--> + <!-- a --> + <rect x="100" y="-900" width="800" height="800" stroke="powderblue" + stroke-width="50" stroke-dashoffset="35" + stroke-dasharray="50 50" id="glyph68" /> + + <!-- b --> + <rect x="100" y="-900" width="800" height="800" stroke="chartreuse" + stroke-width="50" stroke-dashoffset="35" + stroke-dasharray="context-value" id="glyph69" /> + + <!-- c --> + <rect x="100" y="-900" width="800" height="800" stroke="sienna" + stroke-width="50" stroke-dasharray="50 50" + stroke-dashoffset="context-value" id="glyph70" /> + + <!-- d --> + <rect x="100" y="-900" width="800" height="800" stroke="olivedrab" + stroke-width="context-value" stroke-dasharray="context-value" + stroke-dashoffset="context-value" id="glyph71" /> +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-paintservers.svg b/layout/reftests/text-svgglyphs/resources/glyphs-paintservers.svg new file mode 100644 index 0000000000..7f5a95ac09 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-paintservers.svg @@ -0,0 +1,28 @@ +<svg xmlns="http://www.w3.org/2000/svg"> +<!-- + SVG test glyphs for paint servers within SVG glyphs + e: tests that we can refer to paint servers within the SVG glyph doc + (i.e. fill="url(#grad)" works) + f: tests that stop-color="context-{fill,stroke}" uses the context fill/stroke + fallback color +--> + <defs> + <linearGradient id="grad"> + <stop offset="0%" stop-color="papayawhip" /> + <stop offset="100%" stop-color="plum" /> + </linearGradient> + + <linearGradient id="grad2"> + <stop offset="0%" stop-color="context-fill" /> + <stop offset="100%" stop-color="context-stroke" /> + </linearGradient> + </defs> + + <!-- char 'e' --> + <rect id="glyph72" x="250" y="-750" width="500" height="500" + fill="url(#grad)" /> + + <!-- char 'f' --> + <rect id="glyph73" x="250" y="-750" width="500" height="500" + fill="url(#grad2)" /> +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/glyphs-transforms.svg b/layout/reftests/text-svgglyphs/resources/glyphs-transforms.svg new file mode 100644 index 0000000000..ff3d9ffb76 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/glyphs-transforms.svg @@ -0,0 +1,67 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<!-- + SVG test glyphs for transforms within SVG glyphs + 'g': simple red square used as a reference + 'h': a smaller square, with a transform that should make it match the 'g' + 'i': similar, applying a transform to the referenced element + 'j': has a large blue square that should be transformed such that it is + completely hidden by the red + 'k': tests the accumulation of several transforms + 'l': checks that a transform from outside the glyph element is NOT applied + 'm', 'n', 'o', 'p': all render the same <rect> but only 'm' and 'n' should be + transformed; 'o' and 'p' should match 'q' + 'q': the unscaled small square, reference for 'o' and 'p' above +--> + + <defs> + <!-- this rect will need to be scaled 5x to match the reference glyph 'g' --> + <rect id="small" x="50" y="-150" width="100" height="100" fill="red" /> + </defs> + + <!-- char 'g' --> + <rect id="glyph74" x="250" y="-750" width="500" height="500" fill="red" /> + + <!-- char 'h' --> + <rect id="glyph75" x="25" y="-75" width="50" height="50" transform="scale(10)" fill="red" /> + + <!-- char 'i' --> + <g id="glyph76"> + <use xlink:href="#small" transform="scale(5)" /> + </g> + + <!-- char 'j' --> + <g id="glyph77"> + <g transform="translate(300,-300) scale(0.4)"> + <rect x="0" y="-1000" width="1000" height="1000" fill="blue" /> + </g> + <g transform="scale(5)"> + <use xlink:href="#small" /> + </g> + </g> + + <!-- char 'k' --> + <g id="glyph78" transform="scale(0.5)"> + <g transform="scale(0.5)"> + <use xlink:href="#small" transform="scale(20)" /> + </g> + </g> + + <!-- char 'l' --> + <g transform="scale(2)"> + <g id="glyph79"> + <use xlink:href="#small" transform="scale(5)" /> + </g> + </g> + + <g id="glyph80"> <!-- char 'm' --> + <g id="glyph81" transform="scale(5)"> <!-- char 'n' --> + <g id="glyph82"> <!-- char 'o' --> + <use id="glyph83" xlink:href="#small" /> <!-- char 'p' --> + </g> + </g> + </g> + + <!-- char 'q' --> + <use id="glyph84" xlink:href="#small" /> + +</svg> diff --git a/layout/reftests/text-svgglyphs/resources/nosvg.woff b/layout/reftests/text-svgglyphs/resources/nosvg.woff Binary files differnew file mode 100644 index 0000000000..ad53341871 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/nosvg.woff diff --git a/layout/reftests/text-svgglyphs/resources/rubbish.txt b/layout/reftests/text-svgglyphs/resources/rubbish.txt new file mode 100644 index 0000000000..1ad1631812 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/rubbish.txt @@ -0,0 +1 @@ +This is the text contained in the rubbish.ttf 'SVG ' table. It is obviously not XML, and should thus be ignored. diff --git a/layout/reftests/text-svgglyphs/resources/rubbish.woff b/layout/reftests/text-svgglyphs/resources/rubbish.woff Binary files differnew file mode 100644 index 0000000000..3c83e02a30 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/rubbish.woff diff --git a/layout/reftests/text-svgglyphs/resources/svg-bitmap.ttf b/layout/reftests/text-svgglyphs/resources/svg-bitmap.ttf Binary files differnew file mode 100644 index 0000000000..cb0e3bd95d --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/svg-bitmap.ttf diff --git a/layout/reftests/text-svgglyphs/resources/svg-bitmap.ttx b/layout/reftests/text-svgglyphs/resources/svg-bitmap.ttx new file mode 100644 index 0000000000..cd3e9f4c5c --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/svg-bitmap.ttx @@ -0,0 +1,253 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.16"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="uni0000"/> + <GlyphID id="2" name="uni000D"/> + <GlyphID id="3" name="space"/> + <GlyphID id="4" name="A"/> + <GlyphID id="5" name="B"/> + <GlyphID id="6" name="C"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0xcbb705e8"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Tue Mar 1 20:28:26 2022"/> + <modified value="Tue Mar 1 20:28:26 2022"/> + <xMin value="0"/> + <yMin value="-250"/> + <xMax value="1000"/> + <yMax value="750"/> + <macStyle value="00000000 00000000"/> + <lowestRecPPEM value="3"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="750"/> + <descent value="-250"/> + <lineGap value="0"/> + <advanceWidthMax value="1000"/> + <minLeftSideBearing value="0"/> + <minRightSideBearing value="0"/> + <xMaxExtent value="1000"/> + <caretSlopeRise value="1"/> + <caretSlopeRun value="0"/> + <caretOffset value="0"/> + <reserved0 value="0"/> + <reserved1 value="0"/> + <reserved2 value="0"/> + <reserved3 value="0"/> + <metricDataFormat value="0"/> + <numberOfHMetrics value="4"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="7"/> + <maxPoints value="2"/> + <maxContours value="2"/> + <maxCompositePoints value="0"/> + <maxCompositeContours value="0"/> + <maxZones value="2"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="512"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="0"/> + <maxComponentDepth value="0"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="1000"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00000000"/> + <ySubscriptXSize value="650"/> + <ySubscriptYSize value="699"/> + <ySubscriptXOffset value="0"/> + <ySubscriptYOffset value="140"/> + <ySuperscriptXSize value="650"/> + <ySuperscriptYSize value="699"/> + <ySuperscriptXOffset value="0"/> + <ySuperscriptYOffset value="479"/> + <yStrikeoutSize value="49"/> + <yStrikeoutPosition value="258"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <bProportion value="0"/> + <bContrast value="0"/> + <bStrokeVariation value="0"/> + <bArmStyle value="0"/> + <bLetterForm value="0"/> + <bMidline value="0"/> + <bXHeight value="0"/> + </panose> + <ulUnicodeRange1 value="00000000 00000000 00000000 00000111"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="XXXX"/> + <fsSelection value="00000000 01000000"/> + <usFirstCharIndex value="0"/> + <usLastCharIndex value="67"/> + <sTypoAscender value="750"/> + <sTypoDescender value="-250"/> + <sTypoLineGap value="0"/> + <usWinAscent value="750"/> + <usWinDescent value="250"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000011"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="400"/> + <sCapHeight value="700"/> + <usDefaultChar value="32"/> + <usBreakChar value="32"/> + <usMaxContext value="0"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="1000" lsb="0"/> + <mtx name="A" width="1000" lsb="0"/> + <mtx name="B" width="1000" lsb="0"/> + <mtx name="C" width="1000" lsb="0"/> + <mtx name="space" width="1000" lsb="0"/> + <mtx name="uni0000" width="0" lsb="0"/> + <mtx name="uni000D" width="0" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x0" name="uni0000"/><!-- ???? --> + <map code="0xd" name="uni000D"/><!-- ???? --> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x42" name="B"/><!-- LATIN CAPITAL LETTER B --> + <map code="0x43" name="C"/><!-- LATIN CAPITAL LETTER C --> + </cmap_format_4> + </cmap> + + <loca> + <!-- The 'loca' table will be calculated by the compiler --> + </loca> + + <glyf> + + <!-- The xMin, yMin, xMax and yMax values + will be recalculated by the compiler. --> + + <TTGlyph name=".notdef"/><!-- contains no outline data --> + + <TTGlyph name="A" xMin="0" yMin="-250" xMax="1000" yMax="750"> + <contour> + <pt x="0" y="-250" on="1"/> + </contour> + <contour> + <pt x="1000" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="B" xMin="0" yMin="-250" xMax="1000" yMax="750"> + <contour> + <pt x="0" y="-250" on="1"/> + </contour> + <contour> + <pt x="1000" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="C" xMin="0" yMin="-250" xMax="1000" yMax="750"> + <contour> + <pt x="0" y="-250" on="1"/> + </contour> + <contour> + <pt x="1000" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space" xMin="0" yMin="-250" xMax="1000" yMax="750"> + <contour> + <pt x="0" y="-250" on="1"/> + </contour> + <contour> + <pt x="1000" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="uni0000"/><!-- contains no outline data --> + + <TTGlyph name="uni000D"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + SVG-Bitmap + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Regular + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + SVG-Bitmap-Regular:v1.0 + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + SVG-Bitmap Regular + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.0 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SVG-Bitmap-Regular + </namerecord> + </name> + + <post> + <formatType value="3.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="0"/> + <underlineThickness value="0"/> + <isFixedPitch value="0"/> + <minMemType42 value="0"/> + <maxMemType42 value="0"/> + <minMemType1 value="0"/> + <maxMemType1 value="0"/> + </post> + + <SVG> + + <svgDoc endGlyphID="4" startGlyphID="4"> + <![CDATA[<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="glyph4" viewBox="0 0 1000 1000"><image x="0" y="-750" width="1000" height="1000" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUENAAAIBKDT/p01hQ83KEBNbnUEAoFAIBAIBALBk2ABo8QBP1gd7ycAAAAASUVORK5CYII="/></svg>]]> + </svgDoc> + <svgDoc endGlyphID="5" startGlyphID="5"> + <![CDATA[<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="glyph5" viewBox="0 0 1000 1000"><image x="0" y="-750" width="1000" height="1000" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUENAAAIBKDT/p01hQ83KEDN5FQnAoFAIBAIBAKB4EewtloCPhS2RvMAAAAASUVORK5CYII="/></svg>]]> + </svgDoc> + <svgDoc endGlyphID="6" startGlyphID="6"> + <![CDATA[<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="glyph6" viewBox="0 0 1000 1000"><image x="0" y="-750" width="1000" height="1000" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAChJREFUSMftzUEBAAAEBLCjf2dK8NsKrJLJp84zgUAgEAgEAoFAcGUBocYBP+pqhN4AAAAASUVORK5CYII="/></svg>]]> + </svgDoc> + </SVG> + +</ttFont> diff --git a/layout/reftests/text-svgglyphs/resources/svg-glyph-extents.otf b/layout/reftests/text-svgglyphs/resources/svg-glyph-extents.otf Binary files differnew file mode 100644 index 0000000000..1083f397f6 --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/svg-glyph-extents.otf diff --git a/layout/reftests/text-svgglyphs/resources/svg-gz.ttf b/layout/reftests/text-svgglyphs/resources/svg-gz.ttf Binary files differnew file mode 100644 index 0000000000..3a9660224a --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/svg-gz.ttf diff --git a/layout/reftests/text-svgglyphs/resources/svg.woff b/layout/reftests/text-svgglyphs/resources/svg.woff Binary files differnew file mode 100644 index 0000000000..6deee1460d --- /dev/null +++ b/layout/reftests/text-svgglyphs/resources/svg.woff |