Changeset 152120 in webkit


Ignore:
Timestamp:
Jun 27, 2013 12:36:25 PM (11 years ago)
Author:
Christophe Dumez
Message:

Update SVG interfaces to stop inheriting from SVGURIReference and SVGTests
https://bugs.webkit.org/show_bug.cgi?id=118142

Reviewed by Ryosuke Niwa.

Stop inheriting from SVGURIReference and SVGTests and use IDL implements statements
instead. This is one step towards getting rid of multiple inheritance in SVG (which
is no longer supported by Web IDL) and matching the latest specification:

No new tests, no behavior change.

  • CMakeLists.txt:
  • DerivedSources.pri:
  • GNUmakefile.list.am:
  • svg/SVGAElement.idl:
  • svg/SVGAltGlyphElement.idl:
  • svg/SVGAnimationElement.idl:
  • svg/SVGCircleElement.idl:
  • svg/SVGClipPathElement.idl:
  • svg/SVGCursorElement.idl:
  • svg/SVGDefsElement.idl:
  • svg/SVGEllipseElement.idl:
  • svg/SVGFEImageElement.idl:
  • svg/SVGFilterElement.idl:
  • svg/SVGForeignObjectElement.idl:
  • svg/SVGGElement.idl:
  • svg/SVGGlyphRefElement.idl:
  • svg/SVGGradientElement.idl:
  • svg/SVGImageElement.idl:
  • svg/SVGLineElement.idl:
  • svg/SVGMPathElement.idl:
  • svg/SVGMaskElement.idl:
  • svg/SVGPathElement.idl:
  • svg/SVGPatternElement.idl:
  • svg/SVGPolygonElement.idl:
  • svg/SVGPolylineElement.idl:
  • svg/SVGRectElement.idl:
  • svg/SVGSVGElement.idl:
  • svg/SVGScriptElement.idl:
  • svg/SVGSwitchElement.idl:
  • svg/SVGTRefElement.idl:
  • svg/SVGTextContentElement.idl:
  • svg/SVGTextPathElement.idl:
  • svg/SVGUseElement.idl:
Location:
trunk/Source/WebCore
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r152100 r152120  
    747747    svg/SVGTRefElement.idl
    748748    svg/SVGTSpanElement.idl
     749    svg/SVGTests.idl
    749750    svg/SVGTextContentElement.idl
    750751    svg/SVGTextElement.idl
     
    754755    svg/SVGTransform.idl
    755756    svg/SVGTransformList.idl
     757    svg/SVGURIReference.idl
    756758    svg/SVGUnitTypes.idl
    757759    svg/SVGUseElement.idl
  • trunk/Source/WebCore/ChangeLog

    r152117 r152120  
     12013-06-27  Christophe Dumez  <ch.dumez@sisa.samsung.com>
     2
     3        Update SVG interfaces to stop inheriting from SVGURIReference and SVGTests
     4        https://bugs.webkit.org/show_bug.cgi?id=118142
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        Stop inheriting from SVGURIReference and SVGTests and use IDL implements statements
     9        instead. This is one step towards getting rid of multiple inheritance in SVG (which
     10        is no longer supported by Web IDL) and matching the latest specification:
     11        - https://svgwg.org/svg2-draft/types.html#BasicDOMInterfaces
     12
     13        No new tests, no behavior change.
     14
     15        * CMakeLists.txt:
     16        * DerivedSources.pri:
     17        * GNUmakefile.list.am:
     18        * svg/SVGAElement.idl:
     19        * svg/SVGAltGlyphElement.idl:
     20        * svg/SVGAnimationElement.idl:
     21        * svg/SVGCircleElement.idl:
     22        * svg/SVGClipPathElement.idl:
     23        * svg/SVGCursorElement.idl:
     24        * svg/SVGDefsElement.idl:
     25        * svg/SVGEllipseElement.idl:
     26        * svg/SVGFEImageElement.idl:
     27        * svg/SVGFilterElement.idl:
     28        * svg/SVGForeignObjectElement.idl:
     29        * svg/SVGGElement.idl:
     30        * svg/SVGGlyphRefElement.idl:
     31        * svg/SVGGradientElement.idl:
     32        * svg/SVGImageElement.idl:
     33        * svg/SVGLineElement.idl:
     34        * svg/SVGMPathElement.idl:
     35        * svg/SVGMaskElement.idl:
     36        * svg/SVGPathElement.idl:
     37        * svg/SVGPatternElement.idl:
     38        * svg/SVGPolygonElement.idl:
     39        * svg/SVGPolylineElement.idl:
     40        * svg/SVGRectElement.idl:
     41        * svg/SVGSVGElement.idl:
     42        * svg/SVGScriptElement.idl:
     43        * svg/SVGSwitchElement.idl:
     44        * svg/SVGTRefElement.idl:
     45        * svg/SVGTextContentElement.idl:
     46        * svg/SVGTextPathElement.idl:
     47        * svg/SVGUseElement.idl:
     48
    1492013-06-27  Ruth Fong  <ruth_fong@apple.com>
    250
  • trunk/Source/WebCore/DerivedSources.pri

    r152100 r152120  
    628628    $$PWD/svg/SVGSwitchElement.idl \
    629629    $$PWD/svg/SVGSymbolElement.idl \
     630    $$PWD/svg/SVGTests.idl \
    630631    $$PWD/svg/SVGTextContentElement.idl \
    631632    $$PWD/svg/SVGTextElement.idl \
     
    637638    $$PWD/svg/SVGTRefElement.idl \
    638639    $$PWD/svg/SVGTSpanElement.idl \
     640    $$PWD/svg/SVGURIReference.idl \
    639641    $$PWD/svg/SVGUnitTypes.idl \
    640642    $$PWD/svg/SVGUseElement.idl \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r152094 r152120  
    17761776        $(WebCore)/svg/SVGTRefElement.idl \
    17771777        $(WebCore)/svg/SVGTSpanElement.idl \
     1778        $(WebCore)/svg/SVGTests.idl \
    17781779        $(WebCore)/svg/SVGTextContentElement.idl \
    17791780        $(WebCore)/svg/SVGTextElement.idl \
     
    17831784        $(WebCore)/svg/SVGTransform.idl \
    17841785        $(WebCore)/svg/SVGTransformList.idl \
     1786        $(WebCore)/svg/SVGURIReference.idl \
    17851787        $(WebCore)/svg/SVGUnitTypes.idl \
    17861788        $(WebCore)/svg/SVGUseElement.idl \
  • trunk/Source/WebCore/svg/SVGAElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGAElement : SVGStyledElement,
    29                                           SVGURIReference,
    30                                           SVGTests,
    31                                           SVGLangSpace,
    32                                           SVGTransformable {
     29                          SVGLangSpace,
     30                          SVGTransformable {
    3331    readonly attribute SVGAnimatedString target;
    3432};
    3533
    3634SVGAElement implements SVGExternalResourcesRequired;
     35SVGAElement implements SVGTests;
     36SVGAElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGAltGlyphElement.idl

    r151321 r152120  
    2626[
    2727    Conditional=SVG&SVG_FONTS,
    28 ] interface SVGAltGlyphElement : SVGTextPositioningElement, SVGURIReference {
     28] interface SVGAltGlyphElement : SVGTextPositioningElement {
    2929    [SetterRaisesException] attribute DOMString glyphRef;
    3030    [SetterRaisesException] attribute DOMString format;
    3131};
     32
     33SVGAltGlyphElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGAnimationElement.idl

    r151988 r152120  
    2828    Conditional=SVG,
    2929] interface SVGAnimationElement : SVGElement,
    30                                                   SVGTests,
    31                                                   ElementTimeControl {
     30                                  ElementTimeControl {
    3231    readonly attribute SVGElement targetElement;
    3332
     
    3837
    3938SVGAnimationElement implements SVGExternalResourcesRequired;
     39SVGAnimationElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGCircleElement.idl

    r151988 r152120  
    2828    Conditional=SVG
    2929] interface SVGCircleElement : SVGStyledElement,
    30                                                SVGTests,
    31                                                SVGLangSpace,
    32                                                SVGTransformable {
     30                               SVGLangSpace,
     31                               SVGTransformable {
    3332    readonly attribute SVGAnimatedLength cx;
    3433    readonly attribute SVGAnimatedLength cy;
     
    3736
    3837SVGCircleElement implements SVGExternalResourcesRequired;
     38SVGCircleElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGClipPathElement.idl

    r151988 r152120  
    2828    Conditional=SVG
    2929] interface SVGClipPathElement : SVGStyledElement,
    30                                                  SVGTests,
    31                                                  SVGLangSpace,
    32                                                  SVGTransformable
    33                                               /* SVGUnitTypes */ {
     30                                 SVGLangSpace,
     31                                 SVGTransformable {
    3432    readonly attribute SVGAnimatedEnumeration clipPathUnits;
    3533};
    3634
    3735SVGClipPathElement implements SVGExternalResourcesRequired;
     36SVGClipPathElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGCursorElement.idl

    r151988 r152120  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGCursorElement : SVGElement,
    29                                                SVGURIReference,
    30                                                SVGTests {
     28] interface SVGCursorElement : SVGElement {
    3129    readonly attribute SVGAnimatedLength x;
    3230    readonly attribute SVGAnimatedLength y;
     
    3432
    3533SVGCursorElement implements SVGExternalResourcesRequired;
     34SVGCursorElement implements SVGTests;
     35SVGCursorElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGDefsElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGDefsElement : SVGStyledElement,
    29                                              SVGTests,
    30                                              SVGLangSpace,
    31                                              SVGTransformable {
     29                             SVGLangSpace,
     30                             SVGTransformable {
    3231};
    3332
    3433SVGDefsElement implements SVGExternalResourcesRequired;
     34SVGDefsElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGEllipseElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGEllipseElement : SVGStyledElement,
    29                                                 SVGTests,
    30                                                 SVGLangSpace,
    31                                                 SVGTransformable {
     29                                SVGLangSpace,
     30                                SVGTransformable {
    3231    readonly attribute SVGAnimatedLength cx;
    3332    readonly attribute SVGAnimatedLength cy;
     
    3736
    3837SVGEllipseElement implements SVGExternalResourcesRequired;
     38SVGEllipseElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGFEImageElement.idl

    r151988 r152120  
    2727    Conditional=SVG&FILTERS
    2828] interface SVGFEImageElement : SVGStyledElement,
    29                                                         SVGURIReference,
    30                                                         SVGLangSpace,
    31                                                         SVGFilterPrimitiveStandardAttributes {
     29                                SVGLangSpace,
     30                                SVGFilterPrimitiveStandardAttributes {
    3231    readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
    3332};
    3433
    3534SVGFEImageElement implements SVGExternalResourcesRequired;
     35SVGFEImageElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGFilterElement.idl

    r151988 r152120  
    2828    Conditional=SVG&FILTERS
    2929] interface SVGFilterElement : SVGStyledElement,
    30                                                SVGURIReference,
    31                                                SVGLangSpace {
     30                               SVGLangSpace {
    3231    readonly attribute SVGAnimatedEnumeration filterUnits;
    3332    readonly attribute SVGAnimatedEnumeration primitiveUnits;
     
    4443
    4544SVGFilterElement implements SVGExternalResourcesRequired;
     45SVGFilterElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGForeignObjectElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGForeignObjectElement : SVGStyledElement,
    29                                                       SVGTests,
    30                                                       SVGLangSpace,
    31                                                       SVGTransformable {
     29                                      SVGLangSpace,
     30                                      SVGTransformable {
    3231    readonly attribute SVGAnimatedLength x;
    3332    readonly attribute SVGAnimatedLength y;
     
    3736
    3837SVGForeignObjectElement implements SVGExternalResourcesRequired;
     38SVGForeignObjectElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGGElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGGElement : SVGStyledElement,
    29                                           SVGTests,
    30                                           SVGLangSpace,
    31                                           SVGTransformable {
     29                          SVGLangSpace,
     30                          SVGTransformable {
    3231};
    3332
    3433SVGGElement implements SVGExternalResourcesRequired;
     34SVGGElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGGlyphRefElement.idl

    r151321 r152120  
    1818 */
    1919
    20 [Conditional=SVG&SVG_FONTS] interface SVGGlyphRefElement : SVGStyledElement,
    21                                                            SVGURIReference {
     20[
     21    Conditional=SVG&SVG_FONTS
     22] interface SVGGlyphRefElement : SVGStyledElement {
    2223    // FIXME: Use [Reflect] after https://bugs.webkit.org/show_bug.cgi?id=64843 is fixed.
    2324    [SetterRaisesException] attribute DOMString glyphRef;
     
    2930};
    3031
     32SVGGlyphRefElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGGradientElement.idl

    r151988 r152120  
    2727    Conditional=SVG,
    2828    DoNotCheckConstants
    29 ] interface SVGGradientElement : SVGStyledElement, SVGURIReference {
     29] interface SVGGradientElement : SVGStyledElement {
    3030    // Spread Method Types
    3131    const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
     
    4040
    4141SVGGradientElement implements SVGExternalResourcesRequired;
     42SVGGradientElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGImageElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGImageElement : SVGStyledElement,
    29                                               SVGURIReference,
    30                                               SVGTests,
    31                                               SVGLangSpace,
    32                                               SVGTransformable {
     29                              SVGLangSpace,
     30                              SVGTransformable {
    3331    readonly attribute SVGAnimatedLength x;
    3432    readonly attribute SVGAnimatedLength y;
     
    3937
    4038SVGImageElement implements SVGExternalResourcesRequired;
     39SVGImageElement implements SVGTests;
     40SVGImageElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGLineElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGLineElement : SVGStyledElement,
    29                                              SVGTests,
    30                                              SVGLangSpace,
    31                                              SVGTransformable {
     29                             SVGLangSpace,
     30                             SVGTransformable {
    3231    readonly attribute SVGAnimatedLength x1;
    3332    readonly attribute SVGAnimatedLength y1;
     
    3736
    3837SVGLineElement implements SVGExternalResourcesRequired;
     38SVGLineElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGMPathElement.idl

    r151988 r152120  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGMPathElement : SVGElement, SVGURIReference {
     28] interface SVGMPathElement : SVGElement {
    2929};
    3030
    3131SVGMPathElement implements SVGExternalResourcesRequired;
     32SVGMPathElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGMaskElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGMaskElement : SVGStyledElement,
    29                                              SVGTests,
    30                                              SVGLangSpace {
     29                             SVGLangSpace {
    3130    readonly attribute SVGAnimatedEnumeration maskUnits;
    3231    readonly attribute SVGAnimatedEnumeration maskContentUnits;
     
    3938
    4039SVGMaskElement implements SVGExternalResourcesRequired;
     40SVGMaskElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGPathElement.idl

    r151988 r152120  
    2828    Conditional=SVG
    2929] interface SVGPathElement : SVGStyledElement,
    30                                              SVGTests,
    31                                              SVGLangSpace,
    32                                              SVGTransformable {
     30                             SVGLangSpace,
     31                             SVGTransformable {
    3332    readonly attribute SVGAnimatedNumber pathLength;
    3433
     
    113112
    114113SVGPathElement implements SVGExternalResourcesRequired;
     114SVGPathElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGPatternElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGPatternElement : SVGStyledElement,
    29                                                 SVGURIReference,
    30                                                 SVGTests,
    31                                                 SVGLangSpace {
     29                                SVGLangSpace {
    3230    readonly attribute SVGAnimatedEnumeration   patternUnits;
    3331    readonly attribute SVGAnimatedEnumeration   patternContentUnits;
     
    4139SVGPatternElement implements SVGExternalResourcesRequired;
    4240SVGPatternElement implements SVGFitToViewBox;
     41SVGPatternElement implements SVGTests;
     42SVGPatternElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGPolygonElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGPolygonElement : SVGStyledElement,
    29                                                 SVGTests,
    30                                                 SVGLangSpace,
    31                                                 SVGTransformable {
     29                                SVGLangSpace,
     30                                SVGTransformable {
    3231    readonly attribute SVGPointList points;
    3332    readonly attribute SVGPointList animatedPoints;
     
    3534
    3635SVGPolygonElement implements SVGExternalResourcesRequired;
     36SVGPolygonElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGPolylineElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGPolylineElement : SVGStyledElement,
    29                                                  SVGTests,
    30                                                  SVGLangSpace,
    31                                                  SVGTransformable {
     29                                 SVGLangSpace,
     30                                 SVGTransformable {
    3231    readonly attribute SVGPointList points;
    3332    readonly attribute SVGPointList animatedPoints;
     
    3534
    3635SVGPolylineElement implements SVGExternalResourcesRequired;
     36SVGPolylineElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGRectElement.idl

    r151988 r152120  
    2828    Conditional=SVG
    2929] interface SVGRectElement : SVGStyledElement,
    30                                              SVGTests,
    31                                              SVGLangSpace,
    32                                              SVGTransformable {
     30                             SVGLangSpace,
     31                             SVGTransformable {
    3332    readonly attribute SVGAnimatedLength x;
    3433    readonly attribute SVGAnimatedLength y;
     
    4039
    4140SVGRectElement implements SVGExternalResourcesRequired;
     41SVGRectElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGSVGElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGSVGElement : SVGStyledElement,
    29                                             SVGTests,
    30                                             SVGLangSpace,
    31                                             SVGTransformable {
     29                            SVGLangSpace,
     30                            SVGTransformable {
    3231    readonly attribute SVGAnimatedLength x;
    3332    readonly attribute SVGAnimatedLength y;
     
    7877SVGSVGElement implements SVGExternalResourcesRequired;
    7978SVGSVGElement implements SVGFitToViewBox;
     79SVGSVGElement implements SVGTests;
    8080SVGSVGElement implements SVGZoomAndPan;
  • trunk/Source/WebCore/svg/SVGScriptElement.idl

    r151988 r152120  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGScriptElement : SVGElement, SVGURIReference {
     28] interface SVGScriptElement : SVGElement {
    2929    [TreatNullAs=NullString] attribute DOMString type;
    3030};
    3131
    3232SVGScriptElement implements SVGExternalResourcesRequired;
     33SVGScriptElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGSwitchElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGSwitchElement : SVGStyledElement,
    29                                                SVGTests,
    30                                                SVGLangSpace,
    31                                                SVGTransformable {
     29                               SVGLangSpace,
     30                               SVGTransformable {
    3231};
    3332
    3433SVGSwitchElement implements SVGExternalResourcesRequired;
     34SVGSwitchElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGTRefElement.idl

    r131172 r152120  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGTRefElement : SVGTextPositioningElement,
    29                                              SVGURIReference {
     28] interface SVGTRefElement : SVGTextPositioningElement {
    3029};
    3130
     31SVGTRefElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGTextContentElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGTextContentElement : SVGStyledElement,
    29                                                     SVGTests,
    30                                                     SVGLangSpace {
     29                                    SVGLangSpace {
    3130    // lengthAdjust Types
    3231    const unsigned short LENGTHADJUST_UNKNOWN          = 0;
     
    5150
    5251SVGTextContentElement implements SVGExternalResourcesRequired;
     52SVGTextContentElement implements SVGTests;
  • trunk/Source/WebCore/svg/SVGTextPathElement.idl

    r131172 r152120  
    2626[
    2727    Conditional=SVG
    28 ] interface SVGTextPathElement : SVGTextContentElement,
    29                                                  SVGURIReference {   
     28] interface SVGTextPathElement : SVGTextContentElement {
    3029    // textPath Method Types
    3130    const unsigned short TEXTPATH_METHODTYPE_UNKNOWN   = 0;
     
    4342};
    4443
     44SVGTextPathElement implements SVGURIReference;
  • trunk/Source/WebCore/svg/SVGUseElement.idl

    r151988 r152120  
    2727    Conditional=SVG
    2828] interface SVGUseElement : SVGStyledElement,
    29                                             SVGURIReference,
    30                                             SVGTests,
    31                                             SVGLangSpace,
    32                                             SVGTransformable {
     29                            SVGLangSpace,
     30                            SVGTransformable {
    3331    readonly attribute SVGAnimatedLength   x;
    3432    readonly attribute SVGAnimatedLength   y;
     
    4139
    4240SVGUseElement implements SVGExternalResourcesRequired;
     41SVGUseElement implements SVGTests;
     42SVGUseElement implements SVGURIReference;
Note: See TracChangeset for help on using the changeset viewer.