Changeset 29012 in webkit


Ignore:
Timestamp:
Dec 28, 2007 6:41:53 PM (16 years ago)
Author:
Nikolas Zimmermann
Message:

Reviewed by Eric.

Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)

Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).

Location:
trunk
Files:
13 added
4 deleted
48 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r29010 r29012  
     12007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Oliver.
     4
     5        Update layout test results after the SVG Fonts addition.
     6        <font-face> is now also disabled by default wrapped in ENABLE(SVG_FONTS) block.
     7
     8        Fix two misplaced layout test results (results addeed in the wrong place.)
     9
     10        * platform/mac/svg/css/css-box-min-width-expected.checksum:
     11        * platform/mac/svg/css/css-box-min-width-expected.png:
     12        * platform/mac/svg/custom/font-face-simple-expected.checksum:
     13        * platform/mac/svg/custom/font-face-simple-expected.png:
     14        * platform/mac/svg/custom/font-face-simple-expected.txt:
     15        * platform/mac/svg/custom/inline-svg-in-xhtml-expected.checksum:
     16        * platform/mac/svg/custom/inline-svg-in-xhtml-expected.png:
     17        * platform/mac/svg/custom/use-infinite-recursion-expected.png: Added.
     18        * svg/custom/inline-svg-in-xhtml-expected.checksum: Removed.
     19        * svg/custom/inline-svg-in-xhtml-expected.png: Removed.
     20        * svg/custom/use-infinite-recursion-expected.checksum: Removed.
     21        * svg/custom/use-infinite-recursion-expected.png: Removed.
     22
    1232007-12-27  Dan Bernstein  <mitz@apple.com>
    224
  • trunk/LayoutTests/platform/mac/svg/css/css-box-min-width-expected.checksum

    r28755 r29012  
    1 658bb899a309b09540fe1d7868835e58
     17c1bfcfcb60f27e4a6142ecdd4fa7355
  • trunk/LayoutTests/platform/mac/svg/custom/font-face-simple-expected.checksum

    r27850 r29012  
    1 4e1fa149e2a3bfc94ec252d6437e558f
     16960fd15370d0ff0aaf299d684972228
  • trunk/LayoutTests/platform/mac/svg/custom/font-face-simple-expected.txt

    r26904 r29012  
    22  RenderView at (0,0) size 800x600
    33layer at (0,0) size 800x600
    4   RenderSVGRoot {svg} at (10,34) size 676x235
     4  RenderSVGRoot {svg} at (10,34) size 676x245
    55    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    66    RenderSVGText {text} at (10,113) size 676x100 contains 1 chunk(s)
    77      RenderSVGInlineText {#text} at (0,-79) size 676x100
    88        chunk 1 text run 1 at (10.00,113.39) startOffset 0 endOffset 13 width 676.00: "CSS font-face"
    9     RenderSVGText {text} at (10,226) size 676x101 contains 1 chunk(s)
    10       RenderSVGInlineText {#text} at (0,-79) size 676x101
    11         chunk 1 text run 1 at (10.00,226.77) startOffset 0 endOffset 13 width 676.00: "SVG font-face"
     9    RenderSVGText {text} at (10,226) size 567x135 contains 1 chunk(s)
     10      RenderSVGInlineText {#text} at (0,-82) size 567x135
     11        chunk 1 text run 1 at (10.00,226.77) startOffset 0 endOffset 13 width 567.00: "SVG font-face"
    1212    RenderSVGText {text} at (40,264) size 257x19 contains 1 chunk(s)
    1313      RenderSVGInlineText {#text} at (0,-14) size 257x19
  • trunk/LayoutTests/platform/mac/svg/custom/inline-svg-in-xhtml-expected.checksum

    r26602 r29012  
    1 d4536237244e184c3a03356b4e178731
     1798b1b82327eb94b8ab92cc619a8307a
  • trunk/WebCore/ChangeLog

    r29011 r29012  
     12007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Eric.
     4
     5        Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
     6
     7        Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
     8        Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
     9        are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
     10
     11        Limited to single char <-> glyph mapping, no ligatures supported yet.
     12        (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
     13
     14        Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
     15
     16        No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
     17        attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
     18
     19        * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
     20        * WebCore.pro: Updated build system.
     21        * WebCore.vcproj/WebCore.vcproj: Ditto.
     22        * WebCore.xcodeproj/project.pbxproj: Ditto.
     23        * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
     24        * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
     25        (WebCore::createElementClassMap):
     26        * bindings/objc/DOMInternal.h: Ditto.
     27        * bindings/objc/DOMSVG.h: Ditto.
     28        * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
     29        * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
     30        (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
     31        (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
     32        (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
     33        * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
     34        (WebCore::CSSFontSelector::addFontFaceRule):
     35        * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
     36        (WebCore::SVGCSSFontFace::SVGCSSFontFace):
     37        (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
     38        (WebCore::SVGCSSFontFace::isValid):
     39        (WebCore::SVGCSSFontFace::addSource):
     40        (WebCore::SVGCSSFontFace::getFontData):
     41        * css/SVGCSSFontFace.h: Added.
     42        * platform/graphics/cg/PathCG.cpp:
     43        (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
     44        * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
     45        (WebCore::Font::ascent): Pass font size to FontData::ascent() call
     46        (WebCore::Font::descent): Pass font size to FontData::descent() call
     47        (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
     48        (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
     49        * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
     50        (WebCore::TextRun::TextRun):
     51        (WebCore::TextRun::referencingRenderObject):
     52        (WebCore::TextRun::setReferencingRenderObject):
     53        * platform/graphics/FontData.cpp:
     54        (WebCore::FontData::FontData):
     55        (WebCore::FontData::ascent):
     56        (WebCore::FontData::descent):
     57        * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
     58        (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
     59        (WebCore::FontData::svgFontFace):
     60        * rendering/SVGInlineTextBox.cpp:
     61        (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
     62        * rendering/SVGRootInlineBox.cpp:
     63        (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
     64        * svg/SVGFont.cpp: Added.
     65        (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
     66        * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
     67        (WebCore::SVGFontElement::SVGFontElement):
     68        (WebCore::SVGFontElement::~SVGFontElement):
     69        (WebCore::SVGFontElement::parseMappedAttribute):
     70        (WebCore::SVGFontElement::collectGlyphs):
     71        (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
     72        * svg/SVGFontElement.h: Added.
     73        (WebCore::GlyphHash::hash):
     74        (WebCore::GlyphHash::equal):
     75        (WebCore::GlyphHashTraits::deletedValue):
     76        (WebCore::SVGFontElement::rendererIsNeeded):
     77        (WebCore::SVGFontElement::contextElement):
     78        * svg/SVGFontElement.idl: Added.
     79        * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
     80        (WebCore::SVGFontFaceElement::unitsPerEm):
     81        (WebCore::SVGFontFaceElement::fontFamily):
     82        (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
     83        (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
     84        (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
     85        (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
     86        * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
     87        * svg/SVGFontFaceElement.idl: Ditto.
     88        * svg/SVGFontFaceFormatElement.cpp: Ditto.
     89        * svg/SVGFontFaceFormatElement.h: Ditto.
     90        * svg/SVGFontFaceFormatElement.idl: Ditto.
     91        * svg/SVGFontFaceNameElement.cpp: Ditto.
     92        * svg/SVGFontFaceNameElement.h: Ditto.
     93        * svg/SVGFontFaceNameElement.idl: Ditto.
     94        * svg/SVGFontFaceSrcElement.cpp: Ditto.
     95        * svg/SVGFontFaceSrcElement.h: Ditto.
     96        * svg/SVGFontFaceSrcElement.idl: Ditto.
     97        * svg/SVGFontFaceUriElement.cpp: Ditto.
     98        * svg/SVGFontFaceUriElement.h: Ditto.
     99        * svg/SVGFontFaceUriElement.idl: Ditto.
     100        * svg/SVGDefinitionSrcElement.cpp: Ditto.
     101        * svg/SVGDefinitionSrcElement.h: Ditto.
     102        * svg/SVGDefinitionSrcElement.idl: Ditto.
     103        * svg/SVGGlyphElement.cpp: Added.
     104        (WebCore::SVGGlyphElement::SVGGlyphElement):
     105        (WebCore::SVGGlyphElement::parseMappedAttribute):
     106        (WebCore::SVGGlyphElement::childrenChanged):
     107        * svg/SVGGlyphElement.h: Added.
     108        (WebCore::SVGGlyphElement::rendererIsNeeded):
     109        (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
     110        (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
     111        * svg/SVGGlyphElement.idl: Added.
     112        * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
     113        (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
     114        (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
     115        (WebCore::SVGMissingGlyphElement::childrenChanged):
     116        * svg/SVGMissingGlyphElement.h: Added.
     117        (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
     118        * svg/SVGMissingGlyphElement.idl: Added.
     119        * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
     120
    11212007-12-27  Dan Bernstein  <mitz@apple.com>
    2122
  • trunk/WebCore/DerivedSources.make

    r28798 r29012  
    204204    DOMSVGFETileElement.h \
    205205    DOMSVGFETurbulenceElement.h \
     206    DOMSVGFontElement.h \
    206207    DOMSVGFontFaceElement.h \
    207208    DOMSVGFontFaceFormatElement.h \
     
    214215    DOMSVGForeignObjectElement.h \
    215216    DOMSVGGElement.h \
     217    DOMSVGGlyphElement.h \
    216218    DOMSVGGradientElement.h \
    217219    DOMSVGImageElement.h \
     
    226228    DOMSVGMatrix.h \
    227229    DOMSVGMetadataElement.h \
     230    DOMSVGMissingGlyphElement.h \
    228231    DOMSVGNumber.h \
    229232    DOMSVGNumberList.h \
     
    544547    JSSVGFETurbulenceElement.h \
    545548    JSSVGFilterElement.h \
     549    JSSVGFontElement.h \
    546550    JSSVGFontFaceElement.h \
    547551    JSSVGFontFaceFormatElement.h \
     
    551555    JSSVGForeignObjectElement.h \
    552556    JSSVGGElement.h \
     557    JSSVGGlyphElement.h \
    553558    JSSVGGradientElement.h \
    554559    JSSVGImageElement.h \
     
    559564    JSSVGMaskElement.h \
    560565    JSSVGMarkerElement.h \
     566    JSSVGMissingGlyphElement.h \
    561567    JSSVGTransform.h \
    562568    JSSVGZoomEvent.h \
  • trunk/WebCore/WebCore.pro

    r29006 r29012  
    12371237        svg/SVGFETurbulenceElement.idl \
    12381238        svg/SVGFilterElement.idl \
     1239        svg/SVGFontElement.idl \
    12391240        svg/SVGFontFaceElement.idl \
    12401241        svg/SVGFontFaceFormatElement.idl \
     
    12441245        svg/SVGForeignObjectElement.idl \
    12451246        svg/SVGGElement.idl \
     1247        svg/SVGGlyphElement.idl \
    12461248        svg/SVGGradientElement.idl \
    12471249        svg/SVGImageElement.idl \
     
    12541256        svg/SVGMatrix.idl \
    12551257        svg/SVGMetadataElement.idl \
     1258        svg/SVGMissingGlyphElement.idl \
    12561259        svg/SVGNumber.idl \
    12571260        svg/SVGNumberList.idl \
     
    13211324        css/SVGCSSParser.cpp \
    13221325        css/SVGCSSStyleSelector.cpp \
     1326        css/SVGCSSFontFace.cpp \
    13231327        rendering/SVGRenderStyle.cpp \
    13241328        rendering/SVGRenderStyleDefs.cpp \
     
    13801384        svg/SVGFilterPrimitiveStandardAttributes.cpp \
    13811385        svg/SVGFitToViewBox.cpp \
     1386        svg/SVGFont.cpp \
     1387        svg/SVGFontElement.cpp \
    13821388        svg/SVGFontFaceElement.cpp \
    13831389        svg/SVGFontFaceFormatElement.cpp \
     
    13871393        svg/SVGForeignObjectElement.cpp \
    13881394        svg/SVGGElement.cpp \
     1395        svg/SVGGlyphElement.cpp \
    13891396        svg/SVGGradientElement.cpp \
    13901397        svg/SVGImageElement.cpp \
     
    13981405        svg/SVGMaskElement.cpp \
    13991406        svg/SVGMetadataElement.cpp \
     1407        svg/SVGMissingGlyphElement.cpp \
    14001408        svg/SVGMPathElement.cpp \
    14011409        svg/SVGNumberList.cpp \
  • trunk/WebCore/WebCore.vcproj/WebCore.vcproj

    r28989 r29012  
    17861786                        </File>
    17871787                        <File
     1788                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGFontElement.cpp"
     1789                                >
     1790                        </File>
     1791                        <File
     1792                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGFontElement.h"
     1793                                >
     1794                        </File>
     1795                        <File
     1796                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGGlyphElement.cpp"
     1797                                >
     1798                        </File>
     1799                        <File
     1800                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGGlyphElement.h"
     1801                                >
     1802                        </File>
     1803                        <File
     1804                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGMissingGlyphElement.cpp"
     1805                                >
     1806                        </File>
     1807                        <File
     1808                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGMissingGlyphElement.h"
     1809                                >
     1810                        </File>
     1811                        <File
    17881812                                RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\JSSVGFontFaceElement.cpp"
    17891813                                >
     
    48394863                        </File>
    48404864                        <File
     4865                                RelativePath="..\css\SVGCSSFontFace.cpp"
     4866                                >
     4867                        </File>
     4868                        <File
    48414869                                RelativePath="..\css\SVGCSSParser.cpp"
    48424870                                >
     
    83108338                        </File>
    83118339                        <File
     8340                                RelativePath="..\svg\SVGFont.cpp"
     8341                                >
     8342                        </File>
     8343                        <File
     8344                                RelativePath="..\svg\SVGFont.h"
     8345                                >
     8346                        </File>
     8347                        <File
     8348                                RelativePath="..\svg\SVGFontElement.cpp"
     8349                                >
     8350                        </File>
     8351                        <File
     8352                                RelativePath="..\svg\SVGFontElement.h"
     8353                                >
     8354                        </File>
     8355                        <File
    83128356                                RelativePath="..\svg\SVGFontFaceElement.cpp"
    83138357                                >
     
    83668410                        </File>
    83678411                        <File
     8412                                RelativePath="..\svg\SVGGlyphElement.cpp"
     8413                                >
     8414                        </File>
     8415                        <File
     8416                                RelativePath="..\svg\SVGGlyphElement.h"
     8417                                >
     8418                        </File>
     8419                        <File
    83688420                                RelativePath="..\svg\SVGGradientElement.cpp"
    83698421                                >
     
    84678519                        <File
    84688520                                RelativePath="..\svg\SVGMetadataElement.h"
     8521                                >
     8522                        </File>
     8523                        <File
     8524                                RelativePath="..\svg\SVGMissingGlyphElement.cpp"
     8525                                >
     8526                        </File>
     8527                        <File
     8528                                RelativePath="..\svg\SVGMissingGlyphElement.h"
    84698529                                >
    84708530                        </File>
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r28988 r29012  
    30963096                B25BE5110D06B70800B524C6 /* JSEventTargetBase.h in Headers */ = {isa = PBXBuildFile; fileRef = B25BE50F0D06B70800B524C6 /* JSEventTargetBase.h */; };
    30973097                B25DFAAF0B2E2929000E6510 /* JSSVGMatrixCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B25DFAAE0B2E2929000E6510 /* JSSVGMatrixCustom.cpp */; };
     3098                B262B8040D1F32D000158F09 /* SVGFont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B262B8030D1F32D000158F09 /* SVGFont.cpp */; };
    30983099                B26554EA0B80D74900A50EC3 /* RenderSVGTextPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B26554E80B80D74900A50EC3 /* RenderSVGTextPath.cpp */; };
    30993100                B26554EB0B80D74900A50EC3 /* RenderSVGTextPath.h in Headers */ = {isa = PBXBuildFile; fileRef = B26554E90B80D74900A50EC3 /* RenderSVGTextPath.h */; };
     
    31463147                B275358E0B053A66002CE64F /* IconMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B275358D0B053A66002CE64F /* IconMac.mm */; };
    31473148                B277B4040B22F37C0004BEC6 /* GraphicsContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */; };
     3149                B27B28250CEF0C0700D39D54 /* JSSVGFontElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B27B281F0CEF0C0700D39D54 /* JSSVGFontElement.cpp */; };
     3150                B27B28260CEF0C0700D39D54 /* JSSVGFontElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28200CEF0C0700D39D54 /* JSSVGFontElement.h */; };
     3151                B27B28270CEF0C0700D39D54 /* JSSVGGlyphElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B27B28210CEF0C0700D39D54 /* JSSVGGlyphElement.cpp */; };
     3152                B27B28280CEF0C0700D39D54 /* JSSVGGlyphElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28220CEF0C0700D39D54 /* JSSVGGlyphElement.h */; };
     3153                B27B28290CEF0C0700D39D54 /* JSSVGMissingGlyphElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B27B28230CEF0C0700D39D54 /* JSSVGMissingGlyphElement.cpp */; };
     3154                B27B282A0CEF0C0700D39D54 /* JSSVGMissingGlyphElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28240CEF0C0700D39D54 /* JSSVGMissingGlyphElement.h */; };
     3155                B27B28360CEF0C3600D39D54 /* CSSPropertyNames.in in Resources */ = {isa = PBXBuildFile; fileRef = B27B282B0CEF0C3500D39D54 /* CSSPropertyNames.in */; };
     3156                B27B28370CEF0C3600D39D54 /* CSSValueKeywords.in in Resources */ = {isa = PBXBuildFile; fileRef = B27B282C0CEF0C3500D39D54 /* CSSValueKeywords.in */; };
     3157                B27B28380CEF0C3600D39D54 /* DOMSVGFontElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B282D0CEF0C3500D39D54 /* DOMSVGFontElement.h */; settings = {ATTRIBUTES = (); }; };
     3158                B27B28390CEF0C3600D39D54 /* DOMSVGFontElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = B27B282E0CEF0C3500D39D54 /* DOMSVGFontElement.mm */; };
     3159                B27B283A0CEF0C3600D39D54 /* DOMSVGFontElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B282F0CEF0C3500D39D54 /* DOMSVGFontElementInternal.h */; };
     3160                B27B283B0CEF0C3600D39D54 /* DOMSVGGlyphElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28300CEF0C3500D39D54 /* DOMSVGGlyphElement.h */; settings = {ATTRIBUTES = (); }; };
     3161                B27B283C0CEF0C3600D39D54 /* DOMSVGGlyphElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = B27B28310CEF0C3500D39D54 /* DOMSVGGlyphElement.mm */; };
     3162                B27B283D0CEF0C3600D39D54 /* DOMSVGGlyphElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28320CEF0C3500D39D54 /* DOMSVGGlyphElementInternal.h */; };
     3163                B27B283E0CEF0C3600D39D54 /* DOMSVGMissingGlyphElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28330CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.h */; settings = {ATTRIBUTES = (); }; };
     3164                B27B283F0CEF0C3600D39D54 /* DOMSVGMissingGlyphElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = B27B28340CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.mm */; };
     3165                B27B28400CEF0C3600D39D54 /* DOMSVGMissingGlyphElementInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = B27B28350CEF0C3500D39D54 /* DOMSVGMissingGlyphElementInternal.h */; };
     3166                B27B285C0CEF0D7200D39D54 /* DOMSVGFontElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = B27B282D0CEF0C3500D39D54 /* DOMSVGFontElement.h */; };
     3167                B27B285D0CEF0D7200D39D54 /* DOMSVGGlyphElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = B27B28300CEF0C3500D39D54 /* DOMSVGGlyphElement.h */; };
     3168                B27B285E0CEF0D7200D39D54 /* DOMSVGMissingGlyphElement.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = B27B28330CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.h */; };
    31483169                B28BC31A0D135E5400CDBA27 /* JSEventTargetBase.lut.h in Headers */ = {isa = PBXBuildFile; fileRef = B28BC3190D135E5400CDBA27 /* JSEventTargetBase.lut.h */; };
    31493170                B28C6A270D00C44800334AA4 /* SVGDocumentExtensions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B28C6A1E0D00C44800334AA4 /* SVGDocumentExtensions.cpp */; };
     
    31633184                B2A10B920B3818BD00099AA4 /* ImageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A10B910B3818BD00099AA4 /* ImageBuffer.h */; };
    31643185                B2A10B940B3818D700099AA4 /* ImageBufferCG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A10B930B3818D700099AA4 /* ImageBufferCG.cpp */; };
     3186                B2A1F2AA0CEF0ABF00442F6A /* SVGFontElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A1F2A10CEF0ABF00442F6A /* SVGFontElement.cpp */; };
     3187                B2A1F2AB0CEF0ABF00442F6A /* SVGFontElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A1F2A20CEF0ABF00442F6A /* SVGFontElement.h */; };
     3188                B2A1F2AC0CEF0ABF00442F6A /* SVGFontElement.idl in Resources */ = {isa = PBXBuildFile; fileRef = B2A1F2A30CEF0ABF00442F6A /* SVGFontElement.idl */; };
     3189                B2A1F2AD0CEF0ABF00442F6A /* SVGGlyphElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A1F2A40CEF0ABF00442F6A /* SVGGlyphElement.cpp */; };
     3190                B2A1F2AE0CEF0ABF00442F6A /* SVGGlyphElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A1F2A50CEF0ABF00442F6A /* SVGGlyphElement.h */; };
     3191                B2A1F2AF0CEF0ABF00442F6A /* SVGGlyphElement.idl in Resources */ = {isa = PBXBuildFile; fileRef = B2A1F2A60CEF0ABF00442F6A /* SVGGlyphElement.idl */; };
     3192                B2A1F2B00CEF0ABF00442F6A /* SVGMissingGlyphElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2A1F2A70CEF0ABF00442F6A /* SVGMissingGlyphElement.cpp */; };
     3193                B2A1F2B10CEF0ABF00442F6A /* SVGMissingGlyphElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B2A1F2A80CEF0ABF00442F6A /* SVGMissingGlyphElement.h */; };
     3194                B2A1F2B20CEF0ABF00442F6A /* SVGMissingGlyphElement.idl in Resources */ = {isa = PBXBuildFile; fileRef = B2A1F2A90CEF0ABF00442F6A /* SVGMissingGlyphElement.idl */; };
    31653195                B2AE9B9D0C3AF27400F23F7F /* DOMSVGTextPathElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2AE9B9C0C3AF27400F23F7F /* DOMSVGTextPathElement.mm */; };
    31663196                B2AFFC7C0D00A5C10030074D /* FontCacheMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = B2AFFC740D00A5C10030074D /* FontCacheMac.mm */; };
     
    32633293                B2CCEC470C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2CCEC450C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp */; };
    32643294                B2CCEC480C6CA9F1006A5424 /* RenderSVGViewportContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CCEC460C6CA9F1006A5424 /* RenderSVGViewportContainer.h */; };
     3295                B2D19A480CEF9DC1000E033B /* SVGCSSFontFace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2D19A460CEF9DC1000E033B /* SVGCSSFontFace.cpp */; };
     3296                B2D19A490CEF9DC1000E033B /* SVGCSSFontFace.h in Headers */ = {isa = PBXBuildFile; fileRef = B2D19A470CEF9DC1000E033B /* SVGCSSFontFace.h */; };
    32653297                B2D3FC8A0C2212CB00CF3618 /* JSSVGTransformListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2D3FC890C2212CB00CF3618 /* JSSVGTransformListCustom.cpp */; };
    32663298                B2E27C9F0B0F2B0900F17C7B /* FloatPoint3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */; };
     
    38953927                        dstSubfolderSpec = 1;
    38963928                        files = (
     3929                                B27B285C0CEF0D7200D39D54 /* DOMSVGFontElement.h in Copy Generated Headers */,
     3930                                B27B285D0CEF0D7200D39D54 /* DOMSVGGlyphElement.h in Copy Generated Headers */,
     3931                                B27B285E0CEF0D7200D39D54 /* DOMSVGMissingGlyphElement.h in Copy Generated Headers */,
    38973932                                8538F0300AD71CDB006A81D1 /* DOMAbstractView.h in Copy Generated Headers */,
    38983933                                1C11CCBC0AA6093700DADB20 /* DOMAttr.h in Copy Generated Headers */,
     
    71067141                B25BE50F0D06B70800B524C6 /* JSEventTargetBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSEventTargetBase.h; sourceTree = "<group>"; };
    71077142                B25DFAAE0B2E2929000E6510 /* JSSVGMatrixCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGMatrixCustom.cpp; sourceTree = "<group>"; };
     7143                B262B8030D1F32D000158F09 /* SVGFont.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFont.cpp; sourceTree = "<group>"; };
    71087144                B26554E80B80D74900A50EC3 /* RenderSVGTextPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGTextPath.cpp; sourceTree = "<group>"; };
    71097145                B26554E90B80D74900A50EC3 /* RenderSVGTextPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGTextPath.h; sourceTree = "<group>"; };
     
    71567192                B275358D0B053A66002CE64F /* IconMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = IconMac.mm; sourceTree = "<group>"; };
    71577193                B277B4030B22F37C0004BEC6 /* GraphicsContextMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = GraphicsContextMac.mm; sourceTree = "<group>"; };
     7194                B27B281F0CEF0C0700D39D54 /* JSSVGFontElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGFontElement.cpp; sourceTree = "<group>"; };
     7195                B27B28200CEF0C0700D39D54 /* JSSVGFontElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGFontElement.h; sourceTree = "<group>"; };
     7196                B27B28210CEF0C0700D39D54 /* JSSVGGlyphElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGGlyphElement.cpp; sourceTree = "<group>"; };
     7197                B27B28220CEF0C0700D39D54 /* JSSVGGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGGlyphElement.h; sourceTree = "<group>"; };
     7198                B27B28230CEF0C0700D39D54 /* JSSVGMissingGlyphElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGMissingGlyphElement.cpp; sourceTree = "<group>"; };
     7199                B27B28240CEF0C0700D39D54 /* JSSVGMissingGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGMissingGlyphElement.h; sourceTree = "<group>"; };
     7200                B27B282B0CEF0C3500D39D54 /* CSSPropertyNames.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSPropertyNames.in; sourceTree = "<group>"; };
     7201                B27B282C0CEF0C3500D39D54 /* CSSValueKeywords.in */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CSSValueKeywords.in; sourceTree = "<group>"; };
     7202                B27B282D0CEF0C3500D39D54 /* DOMSVGFontElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGFontElement.h; sourceTree = "<group>"; };
     7203                B27B282E0CEF0C3500D39D54 /* DOMSVGFontElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGFontElement.mm; sourceTree = "<group>"; };
     7204                B27B282F0CEF0C3500D39D54 /* DOMSVGFontElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGFontElementInternal.h; sourceTree = "<group>"; };
     7205                B27B28300CEF0C3500D39D54 /* DOMSVGGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGGlyphElement.h; sourceTree = "<group>"; };
     7206                B27B28310CEF0C3500D39D54 /* DOMSVGGlyphElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGGlyphElement.mm; sourceTree = "<group>"; };
     7207                B27B28320CEF0C3500D39D54 /* DOMSVGGlyphElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGGlyphElementInternal.h; sourceTree = "<group>"; };
     7208                B27B28330CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGMissingGlyphElement.h; sourceTree = "<group>"; };
     7209                B27B28340CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGMissingGlyphElement.mm; sourceTree = "<group>"; };
     7210                B27B28350CEF0C3500D39D54 /* DOMSVGMissingGlyphElementInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMSVGMissingGlyphElementInternal.h; sourceTree = "<group>"; };
    71587211                B28BC3190D135E5400CDBA27 /* JSEventTargetBase.lut.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSEventTargetBase.lut.h; sourceTree = "<group>"; };
    71597212                B28C6A1E0D00C44800334AA4 /* SVGDocumentExtensions.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGDocumentExtensions.cpp; sourceTree = "<group>"; };
     
    71737226                B2A10B910B3818BD00099AA4 /* ImageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ImageBuffer.h; sourceTree = "<group>"; };
    71747227                B2A10B930B3818D700099AA4 /* ImageBufferCG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ImageBufferCG.cpp; sourceTree = "<group>"; };
     7228                B2A1F2A10CEF0ABF00442F6A /* SVGFontElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFontElement.cpp; sourceTree = "<group>"; };
     7229                B2A1F2A20CEF0ABF00442F6A /* SVGFontElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFontElement.h; sourceTree = "<group>"; };
     7230                B2A1F2A30CEF0ABF00442F6A /* SVGFontElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGFontElement.idl; sourceTree = "<group>"; };
     7231                B2A1F2A40CEF0ABF00442F6A /* SVGGlyphElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGGlyphElement.cpp; sourceTree = "<group>"; };
     7232                B2A1F2A50CEF0ABF00442F6A /* SVGGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGGlyphElement.h; sourceTree = "<group>"; };
     7233                B2A1F2A60CEF0ABF00442F6A /* SVGGlyphElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGGlyphElement.idl; sourceTree = "<group>"; };
     7234                B2A1F2A70CEF0ABF00442F6A /* SVGMissingGlyphElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGMissingGlyphElement.cpp; sourceTree = "<group>"; };
     7235                B2A1F2A80CEF0ABF00442F6A /* SVGMissingGlyphElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGMissingGlyphElement.h; sourceTree = "<group>"; };
     7236                B2A1F2A90CEF0ABF00442F6A /* SVGMissingGlyphElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGMissingGlyphElement.idl; sourceTree = "<group>"; };
    71757237                B2AE9B9C0C3AF27400F23F7F /* DOMSVGTextPathElement.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGTextPathElement.mm; sourceTree = "<group>"; };
    71767238                B2AFFC740D00A5C10030074D /* FontCacheMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = FontCacheMac.mm; sourceTree = "<group>"; };
     
    72737335                B2CCEC450C6CA9F1006A5424 /* RenderSVGViewportContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGViewportContainer.cpp; sourceTree = "<group>"; };
    72747336                B2CCEC460C6CA9F1006A5424 /* RenderSVGViewportContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderSVGViewportContainer.h; sourceTree = "<group>"; };
     7337                B2D19A460CEF9DC1000E033B /* SVGCSSFontFace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGCSSFontFace.cpp; sourceTree = "<group>"; };
     7338                B2D19A470CEF9DC1000E033B /* SVGCSSFontFace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGCSSFontFace.h; sourceTree = "<group>"; };
    72757339                B2D3FC890C2212CB00CF3618 /* JSSVGTransformListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGTransformListCustom.cpp; sourceTree = "<group>"; };
    72767340                B2E27C9D0B0F2B0900F17C7B /* FloatPoint3D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FloatPoint3D.cpp; sourceTree = "<group>"; };
     
    86458709                        isa = PBXGroup;
    86468710                        children = (
     8711                                B27B282D0CEF0C3500D39D54 /* DOMSVGFontElement.h */,
     8712                                B27B282E0CEF0C3500D39D54 /* DOMSVGFontElement.mm */,
     8713                                B27B282F0CEF0C3500D39D54 /* DOMSVGFontElementInternal.h */,
     8714                                B27B28300CEF0C3500D39D54 /* DOMSVGGlyphElement.h */,
     8715                                B27B28310CEF0C3500D39D54 /* DOMSVGGlyphElement.mm */,
     8716                                B27B28320CEF0C3500D39D54 /* DOMSVGGlyphElementInternal.h */,
     8717                                B27B28330CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.h */,
     8718                                B27B28340CEF0C3500D39D54 /* DOMSVGMissingGlyphElement.mm */,
     8719                                B27B28350CEF0C3500D39D54 /* DOMSVGMissingGlyphElementInternal.h */,
    86478720                                85ACEF740ACDCFCE001214FF /* DOMSVGAElement.h */,
    86488721                                85ACEF750ACDCFCE001214FF /* DOMSVGAElement.mm */,
     
    92099282                        isa = PBXGroup;
    92109283                        children = (
     9284                                B27B282B0CEF0C3500D39D54 /* CSSPropertyNames.in */,
     9285                                B27B282C0CEF0C3500D39D54 /* CSSValueKeywords.in */,
    92119286                                85967D9F0AA8BB59005FEDEE /* Core */,
    92129287                                85967DCA0AA8BF0F005FEDEE /* CSS */,
     
    1024710322                                B2FA3C9A0AB75A6E000E5AC4 /* JSSVGFEGaussianBlurElement.cpp */,
    1024810323                                B2FA3C9B0AB75A6E000E5AC4 /* JSSVGFEGaussianBlurElement.h */,
     10324                                B27B281F0CEF0C0700D39D54 /* JSSVGFontElement.cpp */,
     10325                                B27B28200CEF0C0700D39D54 /* JSSVGFontElement.h */,
     10326                                B27B28210CEF0C0700D39D54 /* JSSVGGlyphElement.cpp */,
     10327                                B27B28220CEF0C0700D39D54 /* JSSVGGlyphElement.h */,
     10328                                B27B28230CEF0C0700D39D54 /* JSSVGMissingGlyphElement.cpp */,
     10329                                B27B28240CEF0C0700D39D54 /* JSSVGMissingGlyphElement.h */,
    1024910330                                B2FA3C9C0AB75A6E000E5AC4 /* JSSVGFEImageElement.cpp */,
    1025010331                                B2FA3C9D0AB75A6E000E5AC4 /* JSSVGFEImageElement.h */,
     
    1057910660                        isa = PBXGroup;
    1058010661                        children = (
     10662                                B262B8030D1F32D000158F09 /* SVGFont.cpp */,
    1058110663                                B25598860D00D8B800BB825C /* graphics */,
     10664                                B2A1F2A10CEF0ABF00442F6A /* SVGFontElement.cpp */,
     10665                                B2A1F2A20CEF0ABF00442F6A /* SVGFontElement.h */,
     10666                                B2A1F2A30CEF0ABF00442F6A /* SVGFontElement.idl */,
     10667                                B2A1F2A40CEF0ABF00442F6A /* SVGGlyphElement.cpp */,
     10668                                B2A1F2A50CEF0ABF00442F6A /* SVGGlyphElement.h */,
     10669                                B2A1F2A60CEF0ABF00442F6A /* SVGGlyphElement.idl */,
     10670                                B2A1F2A70CEF0ABF00442F6A /* SVGMissingGlyphElement.cpp */,
     10671                                B2A1F2A80CEF0ABF00442F6A /* SVGMissingGlyphElement.h */,
     10672                                B2A1F2A90CEF0ABF00442F6A /* SVGMissingGlyphElement.idl */,
    1058210673                                B22277CB0D00BF1F0071B782 /* ColorDistance.cpp */,
    1058310674                                B22277CC0D00BF1F0071B782 /* ColorDistance.h */,
     
    1194112032                                B2227B000D00BFF10071B782 /* SVGCSSComputedStyleDeclaration.cpp */,
    1194212033                                B2227B010D00BFF10071B782 /* SVGCSSParser.cpp */,
     12034                                B2D19A460CEF9DC1000E033B /* SVGCSSFontFace.cpp */,
     12035                                B2D19A470CEF9DC1000E033B /* SVGCSSFontFace.h */,
    1194312036                                B2227B020D00BFF10071B782 /* SVGCSSPropertyNames.in */,
    1194412037                                B2227B030D00BFF10071B782 /* SVGCSSStyleSelector.cpp */,
     
    1413814231                                93309DF8099E64920056E581 /* markup.h in Headers */,
    1413914232                                93309E1E099E64920056E581 /* visible_units.h in Headers */,
     14233                                B2A1F2AB0CEF0ABF00442F6A /* SVGFontElement.h in Headers */,
     14234                                B2A1F2AE0CEF0ABF00442F6A /* SVGGlyphElement.h in Headers */,
     14235                                B2A1F2B10CEF0ABF00442F6A /* SVGMissingGlyphElement.h in Headers */,
     14236                                B27B28260CEF0C0700D39D54 /* JSSVGFontElement.h in Headers */,
     14237                                B27B28280CEF0C0700D39D54 /* JSSVGGlyphElement.h in Headers */,
     14238                                B27B282A0CEF0C0700D39D54 /* JSSVGMissingGlyphElement.h in Headers */,
     14239                                B27B28380CEF0C3600D39D54 /* DOMSVGFontElement.h in Headers */,
     14240                                B27B283A0CEF0C3600D39D54 /* DOMSVGFontElementInternal.h in Headers */,
     14241                                B27B283B0CEF0C3600D39D54 /* DOMSVGGlyphElement.h in Headers */,
     14242                                B27B283D0CEF0C3600D39D54 /* DOMSVGGlyphElementInternal.h in Headers */,
     14243                                B27B283E0CEF0C3600D39D54 /* DOMSVGMissingGlyphElement.h in Headers */,
     14244                                B27B28400CEF0C3600D39D54 /* DOMSVGMissingGlyphElementInternal.h in Headers */,
     14245                                B2D19A490CEF9DC1000E033B /* SVGCSSFontFace.h in Headers */,
    1414014246                                BCA379150D163E5500B793D6 /* JSLocation.h in Headers */,
    1414114247                                BCA3793F0D1647E000B793D6 /* JSLocation.lut.h in Headers */,
     
    1418214288                        isa = PBXProject;
    1418314289                        buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
    14184                         compatibilityVersion = "Xcode 2.4";
    1418514290                        hasScannedForEncodings = 1;
    1418614291                        knownRegions = (
     
    1440514510                                1AB1AE7A0C051FDE00139F4F /* zoomInCursor.png in Resources */,
    1440614511                                1AB1AE7B0C051FDE00139F4F /* zoomOutCursor.png in Resources */,
     14512                                B2A1F2AC0CEF0ABF00442F6A /* SVGFontElement.idl in Resources */,
     14513                                B2A1F2AF0CEF0ABF00442F6A /* SVGGlyphElement.idl in Resources */,
     14514                                B2A1F2B20CEF0ABF00442F6A /* SVGMissingGlyphElement.idl in Resources */,
     14515                                B27B28360CEF0C3600D39D54 /* CSSPropertyNames.in in Resources */,
     14516                                B27B28370CEF0C3600D39D54 /* CSSValueKeywords.in in Resources */,
    1440714517                        );
    1440814518                        runOnlyForDeploymentPostprocessing = 0;
     
    1585715967                                93309E1D099E64920056E581 /* visible_units.cpp in Sources */,
    1585815968                                BCA379140D163E5500B793D6 /* JSLocation.cpp in Sources */,
     15969                                B2A1F2AA0CEF0ABF00442F6A /* SVGFontElement.cpp in Sources */,
     15970                                B2A1F2AD0CEF0ABF00442F6A /* SVGGlyphElement.cpp in Sources */,
     15971                                B2A1F2B00CEF0ABF00442F6A /* SVGMissingGlyphElement.cpp in Sources */,
     15972                                B27B28250CEF0C0700D39D54 /* JSSVGFontElement.cpp in Sources */,
     15973                                B27B28270CEF0C0700D39D54 /* JSSVGGlyphElement.cpp in Sources */,
     15974                                B27B28290CEF0C0700D39D54 /* JSSVGMissingGlyphElement.cpp in Sources */,
     15975                                B27B28390CEF0C3600D39D54 /* DOMSVGFontElement.mm in Sources */,
     15976                                B27B283C0CEF0C3600D39D54 /* DOMSVGGlyphElement.mm in Sources */,
     15977                                B27B283F0CEF0C3600D39D54 /* DOMSVGMissingGlyphElement.mm in Sources */,
     15978                                B2D19A480CEF9DC1000E033B /* SVGCSSFontFace.cpp in Sources */,
     15979                                B262B8040D1F32D000158F09 /* SVGFont.cpp in Sources */,
    1585915980                                BC7FA6200D1F0CBD00DB22A9 /* DynamicNodeList.cpp in Sources */,
    1586015981                                BC7FA62E0D1F0EFF00DB22A9 /* StaticNodeList.cpp in Sources */,
  • trunk/WebCore/bindings/js/JSSVGElementWrapperFactory.cpp

    r28568 r29012  
    5858#include "JSSVGFilterElement.h"
    5959#include "JSSVGForeignObjectElement.h"
     60#include "JSSVGFontElement.h"
    6061#include "JSSVGFontFaceElement.h"
    6162#include "JSSVGFontFaceFormatElement.h"
     
    6465#include "JSSVGFontFaceUriElement.h"
    6566#include "JSSVGGElement.h"
     67#include "JSSVGGlyphElement.h"
    6668#include "JSSVGImageElement.h"
    6769#include "JSSVGLinearGradientElement.h"
     
    7072#include "JSSVGMaskElement.h"
    7173#include "JSSVGMetadataElement.h"
     74#include "JSSVGMissingGlyphElement.h"
    7275#include "JSSVGPathElement.h"
    7376#include "JSSVGPatternElement.h"
     
    128131#include "SVGFilterElement.h"
    129132#include "SVGForeignObjectElement.h"
     133#include "SVGFontElement.h"
    130134#include "SVGFontFaceElement.h"
    131135#include "SVGFontFaceFormatElement.h"
     
    134138#include "SVGFontFaceUriElement.h"
    135139#include "SVGGElement.h"
     140#include "SVGGlyphElement.h"
    136141#include "SVGImageElement.h"
    137142#include "SVGLinearGradientElement.h"
     
    140145#include "SVGMaskElement.h"
    141146#include "SVGMetadataElement.h"
     147#include "SVGMissingGlyphElement.h"
    142148#include "SVGPathElement.h"
    143149#include "SVGPatternElement.h"
     
    186192#define FOR_EACH_FONT_TAG(macro) \
    187193    macro(definition_src, DefinitionSrc) \
     194    macro(font, Font) \
    188195    macro(font_face, FontFace) \
    189196    macro(font_face_format, FontFaceFormat) \
     
    191198    macro(font_face_src, FontFaceSrc) \
    192199    macro(font_face_uri, FontFaceUri) \
     200    macro(glyph, Glyph) \
     201    macro(missing_glyph, MissingGlyph)
    193202    // end of macro
    194203   
  • trunk/WebCore/bindings/objc/DOM.mm

    r28966 r29012  
    229229#endif
    230230#if ENABLE(SVG_FONTS)
     231    addElementClass(SVGNames::fontTag, [DOMSVGFontElement class]);
    231232    addElementClass(SVGNames::font_faceTag, [DOMSVGFontFaceElement class]);
    232233    addElementClass(SVGNames::font_face_formatTag, [DOMSVGFontFaceFormatElement class]);
     
    234235    addElementClass(SVGNames::font_face_srcTag, [DOMSVGFontFaceSrcElement class]);
    235236    addElementClass(SVGNames::font_face_uriTag, [DOMSVGFontFaceUriElement class]);
     237    addElementClass(SVGNames::glyphTag, [DOMSVGGlyphElement class]);
    236238#endif
    237239    addElementClass(SVGNames::gTag, [DOMSVGGElement class]);
     
    242244    addElementClass(SVGNames::maskTag, [DOMSVGMaskElement class]);
    243245    addElementClass(SVGNames::metadataTag, [DOMSVGMetadataElement class]);
     246#if ENABLE(SVG_FONTS)
     247    addElementClass(SVGNames::missing_glyphTag, [DOMSVGMissingGlyphElement class]);
     248#endif
    244249    addElementClass(SVGNames::pathTag, [DOMSVGPathElement class]);
    245250    addElementClass(SVGNames::patternTag, [DOMSVGPatternElement class]);
  • trunk/WebCore/bindings/objc/DOMInternal.h

    r26429 r29012  
    172172#import "DOMSVGCursorElementInternal.h"
    173173#import "DOMSVGDefsElementInternal.h"
     174#import "DOMSVGDefinitionSrcElementInternal.h"
    174175#import "DOMSVGDescElementInternal.h"
    175176#import "DOMSVGDocumentInternal.h"
     
    201202#import "DOMSVGFETurbulenceElementInternal.h"
    202203#import "DOMSVGFilterElementInternal.h"
     204#import "DOMSVGFontElementInternal.h"
     205#import "DOMSVGFontFaceElementInternal.h"
     206#import "DOMSVGFontFaceFormatElementInternal.h"
     207#import "DOMSVGFontFaceNameElementInternal.h"
     208#import "DOMSVGFontFaceSrcElementInternal.h"
     209#import "DOMSVGFontFaceUriElementInternal.h"
    203210#import "DOMSVGForeignObjectElementInternal.h"
    204211#import "DOMSVGGElementInternal.h"
     212#import "DOMSVGGlyphElementInternal.h"
    205213#import "DOMSVGGradientElementInternal.h"
    206214#import "DOMSVGImageElementInternal.h"
     
    213221#import "DOMSVGMatrixInternal.h"
    214222#import "DOMSVGMetadataElementInternal.h"
     223#import "DOMSVGMissingGlyphElementInternal.h"
    215224#import "DOMSVGNumberInternal.h"
    216225#import "DOMSVGNumberListInternal.h"
  • trunk/WebCore/bindings/objc/DOMSVG.h

    r26907 r29012  
    8585#import <WebCore/DOMSVGFilterPrimitiveStandardAttributes.h>
    8686#import <WebCore/DOMSVGFitToViewBox.h>
     87#import <WebCore/DOMSVGFontElement.h>
    8788#import <WebCore/DOMSVGFontFaceElement.h>
    8889#import <WebCore/DOMSVGFontFaceFormatElement.h>
     
    9293#import <WebCore/DOMSVGForeignObjectElement.h>
    9394#import <WebCore/DOMSVGGElement.h>
     95#import <WebCore/DOMSVGGlyphElement.h>
    9496#import <WebCore/DOMSVGGradientElement.h>
    9597#import <WebCore/DOMSVGImageElement.h>
     
    104106#import <WebCore/DOMSVGMatrix.h>
    105107#import <WebCore/DOMSVGMetadataElement.h>
     108#import <WebCore/DOMSVGMissingGlyphElement.h>
    106109#import <WebCore/DOMSVGNumber.h>
    107110#import <WebCore/DOMSVGNumberList.h>
  • trunk/WebCore/css/CSSFontFace.h

    r27776 r29012  
    4040public:
    4141    CSSFontFace(CSSFontSelector*);
    42     ~CSSFontFace();
     42    virtual ~CSSFontFace();
    4343
    4444    bool isLoaded() const;
    45     bool isValid() const;
     45    virtual bool isValid() const;
    4646
    47     void addSource(CSSFontFaceSource*);
     47    virtual void addSource(CSSFontFaceSource*);
    4848
    4949    void fontLoaded(CSSFontFaceSource*);
    5050
    51     FontData* getFontData(const FontDescription&, bool syntheticBold, bool syntheticItalic);
     51    virtual FontData* getFontData(const FontDescription&, bool syntheticBold, bool syntheticItalic);
    5252
    5353private:
  • trunk/WebCore/css/CSSFontFaceSrcValue.h

    r26484 r29012  
    3232namespace WebCore {
    3333
     34class SVGFontFaceElement;
     35
    3436class CSSFontFaceSrcValue : public CSSValue {
    3537public:
    3638    CSSFontFaceSrcValue(const String& resource, bool local)
    37     :m_resource(resource), m_isLocal(local) {}
     39    :m_resource(resource), m_isLocal(local)
     40#if ENABLE(SVG_FONTS)
     41    , m_fontFaceElement(0)
     42#endif   
     43    {}
    3844    virtual ~CSSFontFaceSrcValue() {};
    3945
     
    4551
    4652    bool isSupportedFormat() const;
    47    
     53
     54#if ENABLE(SVG_FONTS)
     55    SVGFontFaceElement* svgFontFaceElement() const { return m_fontFaceElement; }
     56    void setSVGFontFaceElement(SVGFontFaceElement* element) { m_fontFaceElement = element; }
     57#endif
     58
    4859    virtual String cssText() const;
    4960
     
    5263    String m_format;
    5364    bool m_isLocal;
     65#if ENABLE(SVG_FONTS)
     66    SVGFontFaceElement* m_fontFaceElement;
     67#endif
    5468};
    5569
  • trunk/WebCore/css/CSSFontSelector.cpp

    r28882 r29012  
    11/*
    22 * Copyright (C) 2007 Apple Inc. All rights reserved.
     3 *           (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    2526
    2627#include "config.h"
     28
    2729#include "CSSFontSelector.h"
    28 
    2930#include "AtomicString.h"
     31#include "CString.h"
    3032#include "CSSFontFace.h"
    3133#include "CSSFontFaceRule.h"
     
    4446#include "RenderObject.h"
    4547#include "Settings.h"
     48
     49#if ENABLE(SVG_FONTS)
     50#include "NodeList.h"
     51#include "SVGCSSFontFace.h"
     52#include "SVGFontFaceElement.h"
     53#include "SVGNames.h"
     54#endif
    4655
    4756namespace WebCore {
     
    113122        }
    114123    }
    115    
     124
    116125    // Each item in the src property's list is a single CSSFontFaceSource. Put them all into a CSSFontFace.
    117     CSSFontFace* fontFace = new CSSFontFace(this);
    118    
     126    CSSFontFace* fontFace = 0;
     127
    119128    int i;
    120129    int srcLength = srcList->length();
     130
    121131    bool foundLocal = false;
     132
     133#if ENABLE(SVG_FONTS)
     134    SVGFontFaceElement* svgFontFaceElement = 0;
     135#endif
     136
    122137    for (i = 0; i < srcLength; i++) {
    123138        // An item in the list either specifies a string (local font name) or a URL (remote font to download).
    124139        CSSFontFaceSrcValue* item = static_cast<CSSFontFaceSrcValue*>(srcList->item(i));
    125140        CSSFontFaceSource* source = 0;
     141
     142#if ENABLE(SVG_FONTS)
     143        // SVG Fonts support (internal fonts, living within the document)
     144        svgFontFaceElement = item->svgFontFaceElement();
     145        if (svgFontFaceElement)
     146            break;
     147#endif
     148
    126149        if (!item->isLocal()) {
    127150            if (item->isSupportedFormat()) {
     
    140163        }
    141164
     165        if (!fontFace)
     166            fontFace = new CSSFontFace(this);
     167
    142168        if (source)
    143169            fontFace->addSource(source);
     
    147173            break;
    148174    }
    149    
    150     if (!fontFace->isValid()) {
     175
     176#if ENABLE(SVG_FONTS)
     177    ASSERT(fontFace || svgFontFaceElement);
     178#else
     179    ASSERT(fontFace);
     180#endif
     181
     182    if (fontFace && !fontFace->isValid()) {
    151183        delete fontFace;
    152184        return;
     
    184216            }
    185217        }
    186        
    187         if (!familyName.isEmpty())
    188             m_fonts.set(hashForFont(familyName.lower(), fontDescription.bold(), fontDescription.italic()), fontFace);
     218
     219        if (familyName.isEmpty())
     220            continue;
     221
     222#if ENABLE(SVG_FONTS)
     223        if (svgFontFaceElement) {
     224            ASSERT(svgFontFaceElement->fontFamily() == familyName);
     225            fontFace = new SVGCSSFontFace(this, svgFontFaceElement);
     226        }
     227#endif
     228
     229        m_fonts.set(hashForFont(familyName.lower(), fontDescription.bold(), fontDescription.italic()), fontFace);
    189230    }
    190231}
  • trunk/WebCore/platform/graphics/Font.cpp

    r28621 r29012  
    508508int Font::ascent() const
    509509{
    510     return primaryFont()->ascent();
     510    return primaryFont()->ascent(size());
    511511}
    512512
    513513int Font::descent() const
    514514{
    515     return primaryFont()->descent();
     515    return primaryFont()->descent(size());
    516516}
    517517
     
    549549bool Font::canUseGlyphCache(const TextRun& run) const
    550550{
     551#if ENABLE(SVG_FONTS)
     552    // SVG fonts don't support any caching for now, we pretend it here to assure SVG
     553    // font drawing always ends up in the 'simple code path', when SVG fonts are used.
     554    if (primaryFont() && primaryFont()->isSVGFont())
     555        return true;
     556#endif
     557
    551558    switch (codePath) {
    552559        case Auto:
     
    655662        FloatSize nextOffset = glyphBuffer.offsetAt(nextGlyph);
    656663        if (nextFontData != fontData || nextOffset != offset) {
     664#if ENABLE(SVG_FONTS)
     665            if (fontData->isSVGFont())
     666                drawGlyphsWithSVGFont(context, run.referencingRenderObject(), fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
     667            else
     668#endif
    657669            drawGlyphs(context, fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
     670
    658671            lastFrom = nextGlyph;
    659672            fontData = nextFontData;
     
    664677        nextGlyph++;
    665678    }
     679
     680#if ENABLE(SVG_FONTS)
     681    if (fontData->isSVGFont())
     682        drawGlyphsWithSVGFont(context, run.referencingRenderObject(), fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
     683    else
     684#endif
    666685    drawGlyphs(context, fontData, glyphBuffer, lastFrom, nextGlyph - lastFrom, startPoint);
    667686}
  • trunk/WebCore/platform/graphics/Font.h

    r28867 r29012  
    4747class GraphicsContext;
    4848class IntPoint;
     49class RenderObject;
    4950
    5051struct GlyphData;
     
    6465        , m_applyWordRounding(applyWordRounding)
    6566        , m_disableSpacing(false)
     67#if ENABLE(SVG_FONTS)
     68        , m_referencingRenderObject(0)
     69#endif
    6670    {
    6771    }
     
    7983        , m_applyWordRounding(applyWordRounding)
    8084        , m_disableSpacing(false)
     85#if ENABLE(SVG_FONTS)
     86        , m_referencingRenderObject(0)
     87#endif
    8188    {
    8289    }
     
    104111    void setRTL(bool b) { m_rtl = b; }
    105112    void setDirectionalOverride(bool override) { m_directionalOverride = override; }
    106    
     113
     114#if ENABLE(SVG_FONTS)
     115    RenderObject* referencingRenderObject() const { return m_referencingRenderObject; }
     116    void setReferencingRenderObject(RenderObject* object) { m_referencingRenderObject = object; }
     117#endif
     118
    107119private:
    108120    const UChar* m_characters;
     
    117129    bool m_applyWordRounding;
    118130    bool m_disableSpacing;
     131
     132#if ENABLE(SVG_FONTS)
     133    RenderObject* m_referencingRenderObject;
     134#endif
    119135};
    120136
     
    200216    void drawSimpleText(GraphicsContext*, const TextRun&, const FloatPoint&, int from, int to) const;
    201217    void drawGlyphs(GraphicsContext*, const FontData*, const GlyphBuffer&, int from, int to, const FloatPoint&) const;
     218#if ENABLE(SVG_FONTS)
     219    void drawGlyphsWithSVGFont(GraphicsContext*, RenderObject*, const FontData*, const GlyphBuffer&, int from, int to, const FloatPoint&) const;
     220#endif
    202221    void drawGlyphBuffer(GraphicsContext*, const GlyphBuffer&, const TextRun&, const FloatPoint&) const;
    203222    void drawComplexText(GraphicsContext*, const TextRun&, const FloatPoint&, int from, int to) const;
  • trunk/WebCore/platform/graphics/FontData.cpp

    r28234 r29012  
    3333#include <wtf/MathExtras.h>
    3434
     35#if ENABLE(SVG_FONTS)
     36#include "SVGFontFaceElement.h"
     37#endif
     38
    3539namespace WebCore {
    3640
     
    3842    : m_font(f)
    3943    , m_treatAsFixedPitch(false)
     44#if ENABLE(SVG_FONTS)
     45    , m_isSVGFont(false)
     46    , m_svgFontFace(0)
     47#endif
    4048    , m_isCustomFont(customFont)
    4149    , m_isLoading(loading)
     
    9098}
    9199
     100int FontData::ascent(float fontSize) const
     101{
     102#if ENABLE(SVG_FONTS)
     103    if (m_isSVGFont) {
     104        ASSERT(m_unitsPerEm > 0);
     105        return m_ascent * fontSize / m_unitsPerEm;
     106    }
     107#endif
     108
     109    return m_ascent;
     110}
     111
     112int FontData::descent(float fontSize) const
     113{
     114#if ENABLE(SVG_FONTS)
     115    if (m_isSVGFont) {
     116        ASSERT(m_unitsPerEm > 0);
     117        return m_descent * fontSize / m_unitsPerEm;
     118    }
     119#endif
     120
     121    return m_descent;
     122}
     123
    92124float FontData::widthForGlyph(Glyph glyph) const
    93125{
  • trunk/WebCore/platform/graphics/FontData.h

    r28498 r29012  
    4646class WidthMap;
    4747
     48#if ENABLE(SVG_FONTS)
     49class SVGFontFaceElement;
     50#endif
     51
    4852enum Pitch { UnknownPitch, FixedPitch, VariablePitch };
    4953
     
    5862
    5963    // vertical metrics
    60     int ascent() const { return m_ascent; }
    61     int descent() const { return m_descent; }
     64    int ascent(float fontSize) const;
     65    int descent(float fontSize) const;
    6266    int lineSpacing() const { return m_lineSpacing; }
    6367    int lineGap() const { return m_lineGap; }
     
    7276    void determinePitch();
    7377    Pitch pitch() const { return m_treatAsFixedPitch ? FixedPitch : VariablePitch; }
     78
     79#if ENABLE(SVG_FONTS)
     80    bool isSVGFont() const { return m_isSVGFont; }
     81    SVGFontFaceElement* svgFontFace() const { return m_svgFontFace.get(); }
     82#endif
    7483
    7584    bool isCustomFont() const { return m_isCustomFont; }
     
    125134    bool m_treatAsFixedPitch;
    126135
     136#if ENABLE(SVG_FONTS)
     137    bool m_isSVGFont;
     138    RefPtr<SVGFontFaceElement> m_svgFontFace;
     139#endif
     140
    127141    bool m_isCustomFont;  // Whether or not we are custom font loaded via @font-face
    128142    bool m_isLoading; // Whether or not this custom font is still in the act of loading.
  • trunk/WebCore/platform/graphics/cg/PathCG.cpp

    r26383 r29012  
    151151void Path::closeSubpath()
    152152{
    153     CGPathCloseSubpath(m_path);
     153    if (!CGPathIsEmpty(m_path)) // to silence a warning when trying to close an empty path
     154        CGPathCloseSubpath(m_path);
    154155}
    155156
  • trunk/WebCore/rendering/SVGInlineTextBox.cpp

    r28962 r29012  
    7777float SVGInlineTextBox::calculateGlyphWidth(RenderStyle* style, int offset) const
    7878{
     79    ASSERT(style);
    7980    return style->font().floatWidth(svgTextRunForInlineTextBox(textObject()->text()->characters() + offset, 1, style, this, 0));
    8081}
  • trunk/WebCore/rendering/SVGRootInlineBox.cpp

    r28559 r29012  
    645645    TextRun run(c, len, false, static_cast<int>(xPos), textBox->toAdd(), textBox->m_reversed, textBox->m_dirOverride || style->visuallyOrdered());
    646646
     647#if ENABLE(SVG_FONTS)
     648    run.setReferencingRenderObject(textBox->textObject()->parent());
     649#endif
     650
    647651    // We handle letter & word spacing ourselves
    648652    run.disableSpacing();
  • trunk/WebCore/svg/SVGDefinitionSrcElement.cpp

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#include "config.h"
    21 #if ENABLE(SVG)
     21
     22#if ENABLE(SVG_FONTS)
    2223#include "SVGDefinitionSrcElement.h"
    2324
     
    4041}
    4142
    42 #endif // ENABLE(SVG)
     43#endif // ENABLE(SVG_FONTS)
    4344
  • trunk/WebCore/svg/SVGDefinitionSrcElement.h

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#ifndef SVGDefinitionSrcElement_h
    2121#define SVGDefinitionSrcElement_h
    22 #if ENABLE(SVG)
    2322
     23#if ENABLE(SVG_FONTS)
    2424#include "SVGElement.h"
    2525
    26 namespace WebCore
    27 {
     26namespace WebCore {
    2827    class SVGDefinitionSrcElement : public SVGElement {
    29 public:
    30     SVGDefinitionSrcElement(const QualifiedName&, Document*);
     28    public:
     29        SVGDefinitionSrcElement(const QualifiedName&, Document*);
    3130   
    32     virtual void childrenChanged();
    33 };
     31        virtual void childrenChanged();
     32    };
    3433
    3534} // namespace WebCore
    3635
    37 #endif // ENABLE(SVG)
     36#endif // ENABLE(SVG_FONTS)
    3837#endif
    3938
  • trunk/WebCore/svg/SVGDefinitionSrcElement.idl

    r26907 r29012  
    2626module svg {
    2727
    28     interface [Conditional=SVG] SVGDefinitionSrcElement : SVGElement {
     28    interface [Conditional=SVG&SVG_FONTS] SVGDefinitionSrcElement : SVGElement {
    2929    };
    3030
  • trunk/WebCore/svg/SVGFontFaceElement.cpp

    r26917 r29012  
    11/*
    2 Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3 
    4 This library is free software; you can redistribute it and/or
    5 modify it under the terms of the GNU Library General Public
    6 License as published by the Free Software Foundation; either
    7 version 2 of the License, or (at your option) any later version.
    8 
    9 This library is distributed in the hope that it will be useful,
    10 but WITHOUT ANY WARRANTY; without even the implied warranty of
    11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12 Library General Public License for more details.
    13 
    14 You should have received a copy of the GNU Library General Public License
    15 along with this library; see the file COPYING.LIB.  If not, write to
    16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17 Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3   Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
     4   
     5   This library is free software; you can redistribute it and/or
     6   modify it under the terms of the GNU Library General Public
     7   License as published by the Free Software Foundation; either
     8   version 2 of the License, or (at your option) any later version.
     9
     10   This library is distributed in the hope that it will be useful,
     11   but WITHOUT ANY WARRANTY; without even the implied warranty of
     12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13   Library General Public License for more details.
     14
     15   You should have received a copy of the GNU Library General Public License
     16   along with this library; see the file COPYING.LIB.  If not, write to
     17   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18   Boston, MA 02110-1301, USA.
    1819*/
    1920
    2021#include "config.h"
    21 #if ENABLE(SVG)
     22
     23#if ENABLE(SVG_FONTS)
    2224#include "SVGFontFaceElement.h"
    2325
    2426#include "CSSFontFaceRule.h"
     27#include "CSSFontFaceSrcValue.h"
    2528#include "CSSProperty.h"
    2629#include "CSSPropertyNames.h"
     
    2831#include "CSSStyleSheet.h"
    2932#include "CSSValueList.h"
     33#include "FontCache.h"
     34#include "FontData.h"
     35#include "FontPlatformData.h"
     36#include "SVGDefinitionSrcElement.h"
    3037#include "SVGNames.h"
     38#include "SVGFontElement.h"
    3139#include "SVGFontFaceSrcElement.h"
    32 #include "SVGDefinitionSrcElement.h"
     40#include "SVGGlyphElement.h"
    3341
    3442namespace WebCore {
     
    126134}
    127135
     136unsigned SVGFontFaceElement::unitsPerEm() const
     137{
     138    if (hasAttribute(units_per_emAttr))
     139        return getAttribute(units_per_emAttr).toInt();
     140   
     141    return 1000;
     142}
     143
     144String SVGFontFaceElement::fontFamily() const
     145{
     146    return m_styleDeclaration->getPropertyValue(CSS_PROP_FONT_FAMILY);
     147}
     148
     149FontData* SVGFontFaceElement::createFontData(const FontDescription& fontDescription) const
     150{
     151    // We only expect to have this method called by a parent font element
     152    ASSERT(parentNode());
     153    ASSERT(parentNode()->hasTagName(fontTag));
     154    SVGFontElement* fontElement = static_cast<SVGFontElement*>(parentNode());
     155
     156    // Use default fallback platform data - it's not needed anyway...
     157    FontPlatformData* cachedPlatformData = FontCache::getLastResortFallbackFont(fontDescription);
     158    if (!cachedPlatformData)
     159        return 0;
     160
     161    OwnPtr<FontData> fontData(new FontData(*cachedPlatformData));
     162    fontData->m_isSVGFont = true;
     163    fontData->m_svgFontFace = const_cast<SVGFontFaceElement*>(this);
     164
     165    fontData->m_xHeight = fontElement->getAttribute(x_heightAttr).toFloat();
     166    fontData->m_unitsPerEm = unitsPerEm();
     167
     168    if (hasAttribute(ascentAttr))
     169        fontData->m_ascent = getAttribute(ascentAttr).toInt();
     170    else if (fontElement->hasAttribute(vert_origin_yAttr))
     171        fontData->m_ascent = fontData->m_unitsPerEm - fontElement->getAttribute(vert_origin_yAttr).toInt();
     172    else
     173        // invalid font, should log
     174        fontData->m_ascent = 0;
     175
     176    if (hasAttribute(descentAttr))
     177        fontData->m_descent = getAttribute(descentAttr).toInt();
     178    else if (fontElement->hasAttribute(vert_origin_yAttr))
     179        fontData->m_descent = fontElement->getAttribute(vert_origin_yAttr).toInt();
     180    else
     181        fontData->m_descent = fontData->m_ascent;
     182
     183    return fontData.release();
     184}
     185
    128186void SVGFontFaceElement::rebuildFontFace()
    129187{
     188    // Ignore changes until we live in the tree
     189    if (!parentNode())
     190        return;
     191
     192    // Special handling for local SVG fonts (those which have a <font> parent, and are only used within the document)
     193    if (parentNode() && parentNode()->hasTagName(fontTag)) {
     194        RefPtr<CSSValueList> list = new CSSValueList;
     195
     196        RefPtr<CSSFontFaceSrcValue> src = new CSSFontFaceSrcValue(StringImpl::empty(), false);
     197        src->setSVGFontFaceElement(this);
     198        list->append(src);
     199
     200        CSSProperty srcProperty(CSS_PROP_SRC, list);
     201        const CSSProperty* srcPropertyRef = &srcProperty;
     202        m_styleDeclaration->addParsedProperties(&srcPropertyRef, 1);
     203
     204        document()->updateStyleSelector();
     205        return;
     206    }
     207
     208    // TODO: External SVG fonts support - re use existing "custom font" handling logic.
     209
    130210    // we currently ignore all but the first src element, alternatively we could concat them
    131211    SVGFontFaceSrcElement* srcElement = 0;
    132212    SVGDefinitionSrcElement* definitionSrc = 0;
    133    
     213
    134214    for (Node* child = firstChild(); child; child = child->nextSibling()) {
    135215        if (child->hasTagName(font_face_srcTag) && !srcElement)
     
    144224        m_styleDeclaration->setProperty(CSS_PROP_DEFINITION_SRC, definitionSrc->getAttribute(XLinkNames::hrefAttr), false);
    145225#endif
    146    
    147     if (parentNode() && parentNode()->localName() == "font") // SVGNames::fontTag isn't generated yet
    148         return; // this font-face applies to its parent font, which we ignore.
    149     else if (srcElement) {
     226
     227    if (srcElement) {
    150228        // This is the only class (other than CSSParser) to create CSSValue objects and set them on the CSSStyleDeclaration manually
    151229        // we use the addParsedProperties method, and fake having an array of CSSProperty pointers.
     
    154232        m_styleDeclaration->addParsedProperties(&srcPropertyRef, 1);
    155233    }
    156    
     234
    157235    document()->updateStyleSelector();
    158236}
    159237
     238void SVGFontFaceElement::insertedIntoDocument()
     239{
     240    rebuildFontFace();
     241}
     242
    160243void SVGFontFaceElement::childrenChanged()
    161244{
     
    163246}
    164247
    165 }
    166 
    167 #endif // ENABLE(SVG)
    168 
     248SVGGlyphIdentifier SVGFontFaceElement::glyphIdentifierForGlyphCode(const Glyph& code) const
     249{
     250    // We only expect to have this method called by a parent font element
     251    ASSERT(parentNode());
     252    ASSERT(parentNode()->hasTagName(fontTag));
     253
     254    SVGFontElement* fontElement = static_cast<SVGFontElement*>(parentNode());
     255    return fontElement->glyphIdentifierForGlyphCode(code);
     256}
     257
     258}
     259
     260#endif // ENABLE(SVG_FONTS)
  • trunk/WebCore/svg/SVGFontFaceElement.h

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3      
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
    18  */
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3   Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
     4
     5   This library is free software; you can redistribute it and/or
     6   modify it under the terms of the GNU Library General Public
     7   License as published by the Free Software Foundation; either
     8   version 2 of the License, or (at your option) any later version.
     9
     10   This library is distributed in the hope that it will be useful,
     11   but WITHOUT ANY WARRANTY; without even the implied warranty of
     12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13   Library General Public License for more details.
     14
     15   You should have received a copy of the GNU Library General Public License
     16   along with this library; see the file COPYING.LIB.  If not, write to
     17   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     18   Boston, MA 02110-1301, USA.
     19*/
    1920
    2021#ifndef SVGFontFaceElement_h
    2122#define SVGFontFaceElement_h
    22 #if ENABLE(SVG)
    2323
     24#if ENABLE(SVG_FONTS)
    2425#include "SVGElement.h"
     26#include "GlyphBuffer.h"
    2527
    2628namespace WebCore {
     29
    2730    class CSSFontFaceRule;
    2831    class CSSMutableStyleDeclaration;
     32    class FontData;
     33    class FontDescription;
     34    struct SVGGlyphIdentifier;
     35
    2936    class SVGFontFaceElement : public SVGElement {
    3037    public:
     
    3340
    3441        virtual void parseMappedAttribute(MappedAttribute*);
    35        
     42
    3643        virtual void childrenChanged();
    37        
     44        virtual void insertedIntoDocument();
     45
     46        unsigned unitsPerEm() const;
     47        String fontFamily() const;
     48
    3849        void rebuildFontFace();
    39    
    40     private:       
     50        FontData* createFontData(const FontDescription&) const;
     51
     52        SVGGlyphIdentifier glyphIdentifierForGlyphCode(const Glyph&) const;
     53
     54    private:
    4155        RefPtr<CSSFontFaceRule> m_fontFaceRule;
    4256        RefPtr<CSSMutableStyleDeclaration> m_styleDeclaration;
     
    4559} // namespace WebCore
    4660
    47 #endif // ENABLE(SVG)
     61#endif // ENABLE(SVG_FONTS)
    4862#endif
    4963
  • trunk/WebCore/svg/SVGFontFaceElement.idl

    r26904 r29012  
    2626module svg {
    2727
    28     interface [Conditional=SVG] SVGFontFaceElement : SVGElement {
     28    interface [Conditional=SVG&SVG_FONTS] SVGFontFaceElement : SVGElement {
    2929    };
    3030
  • trunk/WebCore/svg/SVGFontFaceFormatElement.cpp

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#include "config.h"
    21 #if ENABLE(SVG)
     21
     22#if ENABLE(SVG_FONTS)
    2223#include "SVGFontFaceFormatElement.h"
    2324
     
    5051}
    5152
    52 #endif // ENABLE(SVG)
    53 
     53#endif // ENABLE(SVG_FONTS)
  • trunk/WebCore/svg/SVGFontFaceFormatElement.h

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#ifndef SVGFontFaceFormatElement_h
    2121#define SVGFontFaceFormatElement_h
    22 #if ENABLE(SVG)
    2322
     23#if ENABLE(SVG_FONTS)
    2424#include "SVGElement.h"
    2525
    2626namespace WebCore {
    27     class SVGFontFaceFormatElement : public SVGElement {
     27
     28class SVGFontFaceFormatElement : public SVGElement {
    2829public:
    2930    SVGFontFaceFormatElement(const QualifiedName&, Document*);
     
    3435} // namespace WebCore
    3536
    36 #endif // ENABLE(SVG)
     37#endif // ENABLE(SVG_FONTS)
    3738#endif
    3839
  • trunk/WebCore/svg/SVGFontFaceFormatElement.idl

    r26904 r29012  
    2626module svg {
    2727
    28     interface [Conditional=SVG] SVGFontFaceFormatElement : SVGElement {
     28    interface [Conditional=SVG&SVG_FONTS] SVGFontFaceFormatElement : SVGElement {
    2929    };
    3030
  • trunk/WebCore/svg/SVGFontFaceNameElement.cpp

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#include "config.h"
    21 #if ENABLE(SVG)
     21
     22#if ENABLE(SVG_FONTS)
    2223#include "SVGFontFaceNameElement.h"
    2324
  • trunk/WebCore/svg/SVGFontFaceNameElement.h

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#ifndef SVGFontFaceNameElement_h
    2121#define SVGFontFaceNameElement_h
    22 #if ENABLE(SVG)
    2322
     23#if ENABLE(SVG_FONTS)
    2424#include "SVGElement.h"
    2525
     
    3535} // namespace WebCore
    3636
    37 #endif // ENABLE(SVG)
     37#endif // ENABLE(SVG_FONTS)
    3838#endif
    3939
  • trunk/WebCore/svg/SVGFontFaceNameElement.idl

    r26904 r29012  
    2626module svg {
    2727
    28     interface [Conditional=SVG] SVGFontFaceNameElement : SVGElement {
     28    interface [Conditional=SVG&SVG_FONTS] SVGFontFaceNameElement : SVGElement {
    2929    };
    3030
  • trunk/WebCore/svg/SVGFontFaceSrcElement.cpp

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#include "config.h"
    21 #if ENABLE(SVG)
     21
     22#if ENABLE(SVG_FONTS)
    2223#include "SVGFontFaceSrcElement.h"
    2324
     
    5859}
    5960
    60 #endif // ENABLE(SVG)
    61 
     61#endif // ENABLE(SVG_FONTS)
  • trunk/WebCore/svg/SVGFontFaceSrcElement.h

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#ifndef SVGFontFaceSrcElement_h
    2121#define SVGFontFaceSrcElement_h
    22 #if ENABLE(SVG)
    2322
     23#if ENABLE(SVG_FONTS)
    2424#include "SVGElement.h"
    2525
     
    3737} // namespace WebCore
    3838
    39 #endif // ENABLE(SVG)
     39#endif // ENABLE(SVG_FONTS)
    4040#endif
    4141
  • trunk/WebCore/svg/SVGFontFaceSrcElement.idl

    r26904 r29012  
    2626module svg {
    2727
    28     interface [Conditional=SVG] SVGFontFaceSrcElement : SVGElement {
     28    interface [Conditional=SVG&SVG_FONTS] SVGFontFaceSrcElement : SVGElement {
    2929    };
    3030
  • trunk/WebCore/svg/SVGFontFaceUriElement.cpp

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#include "config.h"
    21 #if ENABLE(SVG)
     21
     22#if ENABLE(SVG_FONTS)
    2223#include "SVGFontFaceUriElement.h"
    2324
     
    5556}
    5657
    57 #endif // ENABLE(SVG)
    58 
     58#endif // ENABLE(SVG_FONTS)
  • trunk/WebCore/svg/SVGFontFaceUriElement.h

    r26904 r29012  
    11/*
    2  Copyright (C) 2007 Eric Seidel <eric@webkit.org>
    3  
    4  This library is free software; you can redistribute it and/or
    5  modify it under the terms of the GNU Library General Public
    6  License as published by the Free Software Foundation; either
    7  version 2 of the License, or (at your option) any later version.
    8  
    9  This library is distributed in the hope that it will be useful,
    10  but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    12  Library General Public License for more details.
    13  
    14  You should have received a copy of the GNU Library General Public License
    15  along with this library; see the file COPYING.LIB.  If not, write to
    16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    17  Boston, MA 02110-1301, USA.
     2   Copyright (C) 2007 Eric Seidel <eric@webkit.org>
     3
     4   This library is free software; you can redistribute it and/or
     5   modify it under the terms of the GNU Library General Public
     6   License as published by the Free Software Foundation; either
     7   version 2 of the License, or (at your option) any later version.
     8
     9   This library is distributed in the hope that it will be useful,
     10   but WITHOUT ANY WARRANTY; without even the implied warranty of
     11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     12   Library General Public License for more details.
     13
     14   You should have received a copy of the GNU Library General Public License
     15   along with this library; see the file COPYING.LIB.  If not, write to
     16   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     17   Boston, MA 02110-1301, USA.
    1818 */
    1919
    2020#ifndef SVGFontFaceUriElement_h
    2121#define SVGFontFaceUriElement_h
    22 #if ENABLE(SVG)
    2322
     23#if ENABLE(SVG_FONTS)
    2424#include "SVGElement.h"
    2525
     
    3737} // namespace WebCore
    3838
    39 #endif // ENABLE(SVG)
     39#endif // ENABLE(SVG_FONTS)
    4040#endif
    4141
  • trunk/WebCore/svg/SVGFontFaceUriElement.idl

    r26904 r29012  
    2626module svg {
    2727
    28     interface [Conditional=SVG] SVGFontFaceUriElement : SVGElement {
     28    interface [Conditional=SVG&SVG_FONTS] SVGFontFaceUriElement : SVGElement {
    2929    };
    3030
  • trunk/WebCore/svg/svgtags.in

    r28568 r29012  
    1717#endif
    1818cursor
     19#if ENABLE_SVG_FONTS
    1920definition_src
     21#endif
    2022defs
    2123desc
     
    5254filter
    5355#endif
    54 #if 0
     56#ifdef ENABLE_SVG_FONTS
    5557font
    56 #endif
    5758font_face
    5859font_face_format
     
    6061font_face_src
    6162font_face_uri
     63#endif
    6264foreignObject
    6365g
     66#ifdef ENABLE_SVG_FONTS
     67glyph
     68#endif
    6469#if 0
    65 glyph
    6670glyphRef
    6771hkern
     
    7377mask
    7478metadata
    75 #if 0
     79#ifdef ENABLE_SVG_FONTS
    7680missing_glyph
    7781#endif
  • trunk/WebKit/mac/ChangeLog

    r28982 r29012  
     12007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
     2
     3        Reviewed by Eric.
     4
     5        Add DOMSVGFontElement/DOMSVGGlyphElement/DOMSVGMissingGlyphElement to MigrateHeaders.make
     6
     7        * MigrateHeaders.make:
     8
    192007-12-25  Dan Bernstein  <mitz@apple.com>
    210
  • trunk/WebKit/mac/MigrateHeaders.make

    r27496 r29012  
    327327    $(PRIVATE_HEADERS_DIR)/DOMSVGFilterPrimitiveStandardAttributes.h \
    328328    $(PRIVATE_HEADERS_DIR)/DOMSVGFitToViewBox.h \
     329    $(PRIVATE_HEADERS_DIR)/DOMSVGFontElement.h \
    329330    $(PRIVATE_HEADERS_DIR)/DOMSVGFontFaceElement.h \
    330331    $(PRIVATE_HEADERS_DIR)/DOMSVGFontFaceFormatElement.h \
     
    336337    $(PRIVATE_HEADERS_DIR)/DOMSVGGElement.h \
    337338    $(INTERNAL_HEADERS_DIR)/DOMSVGGElementInternal.h \
     339    $(PRIVATE_HEADERS_DIR)/DOMSVGGlyphElement.h \
    338340    $(PRIVATE_HEADERS_DIR)/DOMSVGGradientElement.h \
    339341    $(INTERNAL_HEADERS_DIR)/DOMSVGGradientElementInternal.h \
     
    358360    $(PRIVATE_HEADERS_DIR)/DOMSVGMetadataElement.h \
    359361    $(INTERNAL_HEADERS_DIR)/DOMSVGMetadataElementInternal.h \
     362    $(PRIVATE_HEADERS_DIR)/DOMSVGMissingGlyphElement.h \
    360363    $(PRIVATE_HEADERS_DIR)/DOMSVGNumber.h \
    361364    $(PRIVATE_HEADERS_DIR)/DOMSVGNumberList.h \
Note: See TracChangeset for help on using the changeset viewer.