[SVG2]: Remove the SVGExternalResourcesRequired interface
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Oct 2019 01:18:17 +0000 (01:18 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Oct 2019 01:18:17 +0000 (01:18 +0000)
https://bugs.webkit.org/show_bug.cgi?id=191293

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-10-18
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

* web-platform-tests/svg/import/types-dom-04-b-manual.svg:
Use the preserveAlpha property of <feConvolveMatrix> element to test
SVGAnimatedBoolean.

Source/WebCore:

The spec page is: https://www.w3.org/TR/SVG/changes.html.

r251290 made externalResourcesRequired have no effect on firing the load
event. All the control was moved to SVGURIReference. This patch will remove
this interface entirely to conform with SVG2 specs and other browsers.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::SVGAElement):
(WebCore::SVGAElement::parseAttribute):
(WebCore::SVGAElement::svgAttributeChanged):
* svg/SVGAElement.h:
* svg/SVGAElement.idl:
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::SVGAnimationElement):
(WebCore::SVGAnimationElement::isSupportedAttribute):
(WebCore::SVGAnimationElement::parseAttribute):
* svg/SVGAnimationElement.h:
* svg/SVGAnimationElement.idl:
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::SVGCircleElement):
(WebCore::SVGCircleElement::parseAttribute):
(WebCore::SVGCircleElement::svgAttributeChanged):
* svg/SVGCircleElement.h:
* svg/SVGCircleElement.idl:
* svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::SVGClipPathElement):
(WebCore::SVGClipPathElement::parseAttribute):
(WebCore::SVGClipPathElement::svgAttributeChanged):
* svg/SVGClipPathElement.h:
* svg/SVGClipPathElement.idl:
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::SVGCursorElement):
(WebCore::SVGCursorElement::parseAttribute):
* svg/SVGCursorElement.h:
* svg/SVGCursorElement.idl:
* svg/SVGDefsElement.cpp:
(WebCore::SVGDefsElement::SVGDefsElement):
* svg/SVGDefsElement.h:
* svg/SVGDefsElement.idl:
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::SVGEllipseElement):
(WebCore::SVGEllipseElement::parseAttribute):
(WebCore::SVGEllipseElement::svgAttributeChanged):
* svg/SVGEllipseElement.h:
* svg/SVGEllipseElement.idl:
* svg/SVGExternalResourcesRequired.cpp: Removed.
* svg/SVGExternalResourcesRequired.h: Removed.
* svg/SVGExternalResourcesRequired.idl: Removed.
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::SVGFEImageElement):
(WebCore::SVGFEImageElement::parseAttribute):
* svg/SVGFEImageElement.h:
* svg/SVGFEImageElement.idl:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::parseAttribute):
(WebCore::SVGFilterElement::svgAttributeChanged):
* svg/SVGFilterElement.h:
* svg/SVGFilterElement.idl:
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::SVGFontElement):
* svg/SVGFontElement.h:
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
(WebCore::SVGForeignObjectElement::parseAttribute):
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
* svg/SVGForeignObjectElement.h:
* svg/SVGForeignObjectElement.idl:
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::SVGGElement):
(WebCore::SVGGElement::parseAttribute): Deleted.
(WebCore::SVGGElement::svgAttributeChanged): Deleted.
* svg/SVGGElement.h:
* svg/SVGGElement.idl:
* svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::parseAttribute):
* svg/SVGGradientElement.h:
* svg/SVGGradientElement.idl:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement):
(WebCore::SVGImageElement::parseAttribute):
(WebCore::SVGImageElement::svgAttributeChanged):
* svg/SVGImageElement.h:
* svg/SVGImageElement.idl:
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::SVGLineElement):
(WebCore::SVGLineElement::parseAttribute):
(WebCore::SVGLineElement::svgAttributeChanged):
* svg/SVGLineElement.h:
* svg/SVGLineElement.idl:
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::SVGMPathElement):
(WebCore::SVGMPathElement::parseAttribute):
(WebCore::SVGMPathElement::svgAttributeChanged):
* svg/SVGMPathElement.h:
* svg/SVGMPathElement.idl:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::parseAttribute):
(WebCore::SVGMarkerElement::svgAttributeChanged):
* svg/SVGMarkerElement.h:
* svg/SVGMarkerElement.idl:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::parseAttribute):
(WebCore::SVGMaskElement::svgAttributeChanged):
* svg/SVGMaskElement.h:
* svg/SVGMaskElement.idl:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::SVGPathElement):
(WebCore::SVGPathElement::parseAttribute):
(WebCore::SVGPathElement::svgAttributeChanged):
* svg/SVGPathElement.h:
* svg/SVGPathElement.idl:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::parseAttribute):
(WebCore::SVGPatternElement::svgAttributeChanged):
* svg/SVGPatternElement.h:
* svg/SVGPatternElement.idl:
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::SVGPolyElement):
(WebCore::SVGPolyElement::parseAttribute):
(WebCore::SVGPolyElement::svgAttributeChanged):
* svg/SVGPolyElement.h:
* svg/SVGPolygonElement.idl:
* svg/SVGPolylineElement.idl:
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::SVGRectElement):
(WebCore::SVGRectElement::parseAttribute):
(WebCore::SVGRectElement::svgAttributeChanged):
* svg/SVGRectElement.h:
* svg/SVGRectElement.idl:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement):
(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::svgAttributeChanged):
* svg/SVGSVGElement.h:
* svg/SVGSVGElement.idl:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::SVGScriptElement):
(WebCore::SVGScriptElement::parseAttribute):
(WebCore::SVGScriptElement::svgAttributeChanged):
* svg/SVGScriptElement.h:
* svg/SVGScriptElement.idl:
* svg/SVGSwitchElement.cpp:
(WebCore::SVGSwitchElement::SVGSwitchElement):
* svg/SVGSwitchElement.h:
* svg/SVGSwitchElement.idl:
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::SVGSymbolElement):
(WebCore::SVGSymbolElement::parseAttribute):
(WebCore::SVGSymbolElement::svgAttributeChanged): Deleted.
* svg/SVGSymbolElement.h:
* svg/SVGSymbolElement.idl:
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::SVGTextContentElement):
(WebCore::SVGTextContentElement::parseAttribute):
(WebCore::SVGTextContentElement::svgAttributeChanged):
* svg/SVGTextContentElement.h:
* svg/SVGTextContentElement.idl:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::SVGUseElement):
(WebCore::SVGUseElement::parseAttribute):
(WebCore::SVGUseElement::svgAttributeChanged):
* svg/SVGUseElement.h:
* svg/SVGUseElement.idl:
* svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::SVGViewElement):
(WebCore::SVGViewElement::parseAttribute):
(WebCore::SVGViewElement::svgAttributeChanged):
* svg/SVGViewElement.h:
* svg/SVGViewElement.idl:

LayoutTests:

* platform/gtk/TestExpectations:
The script-change-externalResourcesRequired-while-loading.svg has to be
removed and it was flaky on all platforms.

* platform/gtk/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
* platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
* platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
* platform/ios/TestExpectations:
* platform/ios/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
* platform/mac/TestExpectations:
* platform/mac/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
* platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
* platform/win/TestExpectations:
* platform/win/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
* platform/wpe/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
* svg/W3C-SVG-1.1-SE/types-dom-04-b.svg:
Use the preserveAlpha property of <feConvolveMatrix> element to test
SVGAnimatedBoolean.

* svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt: Removed.
* svg/animations/animate-externalResourcesRequired-no-load-event.html: Removed.
* svg/custom/path-domsubtreemodified-crash.html:

* svg/dom/SVGAnimatedBoolean-expected.txt:
* svg/dom/SVGAnimatedBoolean.html:
Use the preserveAlpha property of <feConvolveMatrix> element to test
SVGAnimatedBoolean.

* svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading-expected.txt: Removed.
* svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg: Removed.
* svg/dom/SVGScriptElement/script-load-and-error-events.svg:
* svg/dom/SVGScriptElement/script-onerror-bubbling.svg:
* svg/dom/SVGScriptElement/script-reexecution.svg:
* svg/dynamic-updates/SVGUseElement-dom-href1-attr.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251318 268f45cc-cd09-0410-ab3c-d52691b4dbfc

125 files changed:
LayoutTests/ChangeLog
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual.svg
LayoutTests/platform/gtk/TestExpectations
LayoutTests/platform/gtk/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt
LayoutTests/platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt
LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt
LayoutTests/platform/ios/TestExpectations
LayoutTests/platform/ios/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt
LayoutTests/platform/mac/TestExpectations
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt
LayoutTests/platform/win/TestExpectations
LayoutTests/platform/win/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt
LayoutTests/platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt
LayoutTests/platform/wpe/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt
LayoutTests/svg/W3C-SVG-1.1-SE/types-dom-04-b.svg
LayoutTests/svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt [deleted file]
LayoutTests/svg/animations/animate-externalResourcesRequired-no-load-event.html [deleted file]
LayoutTests/svg/custom/path-domsubtreemodified-crash.html
LayoutTests/svg/dom/SVGAnimatedBoolean-expected.txt
LayoutTests/svg/dom/SVGAnimatedBoolean.html
LayoutTests/svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading-expected.txt [deleted file]
LayoutTests/svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg [deleted file]
LayoutTests/svg/dom/SVGScriptElement/script-load-and-error-events.svg
LayoutTests/svg/dom/SVGScriptElement/script-onerror-bubbling.svg
LayoutTests/svg/dom/SVGScriptElement/script-reexecution.svg
LayoutTests/svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources-input.xcfilelist
Source/WebCore/DerivedSources-output.xcfilelist
Source/WebCore/DerivedSources.make
Source/WebCore/Sources.txt
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/svg/SVGAElement.cpp
Source/WebCore/svg/SVGAElement.h
Source/WebCore/svg/SVGAElement.idl
Source/WebCore/svg/SVGAnimationElement.cpp
Source/WebCore/svg/SVGAnimationElement.h
Source/WebCore/svg/SVGAnimationElement.idl
Source/WebCore/svg/SVGCircleElement.cpp
Source/WebCore/svg/SVGCircleElement.h
Source/WebCore/svg/SVGCircleElement.idl
Source/WebCore/svg/SVGClipPathElement.cpp
Source/WebCore/svg/SVGClipPathElement.h
Source/WebCore/svg/SVGClipPathElement.idl
Source/WebCore/svg/SVGCursorElement.cpp
Source/WebCore/svg/SVGCursorElement.h
Source/WebCore/svg/SVGCursorElement.idl
Source/WebCore/svg/SVGDefsElement.cpp
Source/WebCore/svg/SVGDefsElement.h
Source/WebCore/svg/SVGDefsElement.idl
Source/WebCore/svg/SVGEllipseElement.cpp
Source/WebCore/svg/SVGEllipseElement.h
Source/WebCore/svg/SVGEllipseElement.idl
Source/WebCore/svg/SVGExternalResourcesRequired.cpp [deleted file]
Source/WebCore/svg/SVGExternalResourcesRequired.h [deleted file]
Source/WebCore/svg/SVGExternalResourcesRequired.idl [deleted file]
Source/WebCore/svg/SVGFEImageElement.cpp
Source/WebCore/svg/SVGFEImageElement.h
Source/WebCore/svg/SVGFEImageElement.idl
Source/WebCore/svg/SVGFilterElement.cpp
Source/WebCore/svg/SVGFilterElement.h
Source/WebCore/svg/SVGFilterElement.idl
Source/WebCore/svg/SVGFontElement.cpp
Source/WebCore/svg/SVGFontElement.h
Source/WebCore/svg/SVGForeignObjectElement.cpp
Source/WebCore/svg/SVGForeignObjectElement.h
Source/WebCore/svg/SVGForeignObjectElement.idl
Source/WebCore/svg/SVGGElement.cpp
Source/WebCore/svg/SVGGElement.h
Source/WebCore/svg/SVGGElement.idl
Source/WebCore/svg/SVGGradientElement.cpp
Source/WebCore/svg/SVGGradientElement.h
Source/WebCore/svg/SVGGradientElement.idl
Source/WebCore/svg/SVGImageElement.cpp
Source/WebCore/svg/SVGImageElement.h
Source/WebCore/svg/SVGImageElement.idl
Source/WebCore/svg/SVGLineElement.cpp
Source/WebCore/svg/SVGLineElement.h
Source/WebCore/svg/SVGLineElement.idl
Source/WebCore/svg/SVGMPathElement.cpp
Source/WebCore/svg/SVGMPathElement.h
Source/WebCore/svg/SVGMPathElement.idl
Source/WebCore/svg/SVGMarkerElement.cpp
Source/WebCore/svg/SVGMarkerElement.h
Source/WebCore/svg/SVGMarkerElement.idl
Source/WebCore/svg/SVGMaskElement.cpp
Source/WebCore/svg/SVGMaskElement.h
Source/WebCore/svg/SVGMaskElement.idl
Source/WebCore/svg/SVGPathElement.cpp
Source/WebCore/svg/SVGPathElement.h
Source/WebCore/svg/SVGPathElement.idl
Source/WebCore/svg/SVGPatternElement.cpp
Source/WebCore/svg/SVGPatternElement.h
Source/WebCore/svg/SVGPatternElement.idl
Source/WebCore/svg/SVGPolyElement.cpp
Source/WebCore/svg/SVGPolyElement.h
Source/WebCore/svg/SVGPolygonElement.idl
Source/WebCore/svg/SVGPolylineElement.idl
Source/WebCore/svg/SVGRectElement.cpp
Source/WebCore/svg/SVGRectElement.h
Source/WebCore/svg/SVGRectElement.idl
Source/WebCore/svg/SVGSVGElement.cpp
Source/WebCore/svg/SVGSVGElement.h
Source/WebCore/svg/SVGSVGElement.idl
Source/WebCore/svg/SVGScriptElement.cpp
Source/WebCore/svg/SVGScriptElement.h
Source/WebCore/svg/SVGScriptElement.idl
Source/WebCore/svg/SVGSwitchElement.cpp
Source/WebCore/svg/SVGSwitchElement.h
Source/WebCore/svg/SVGSwitchElement.idl
Source/WebCore/svg/SVGSymbolElement.cpp
Source/WebCore/svg/SVGSymbolElement.h
Source/WebCore/svg/SVGSymbolElement.idl
Source/WebCore/svg/SVGTextContentElement.cpp
Source/WebCore/svg/SVGTextContentElement.h
Source/WebCore/svg/SVGTextContentElement.idl
Source/WebCore/svg/SVGUseElement.cpp
Source/WebCore/svg/SVGUseElement.h
Source/WebCore/svg/SVGUseElement.idl
Source/WebCore/svg/SVGViewElement.cpp
Source/WebCore/svg/SVGViewElement.h
Source/WebCore/svg/SVGViewElement.idl

index fa7f7f7..21c8e27 100644 (file)
@@ -1,3 +1,46 @@
+2019-10-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        [SVG2]: Remove the SVGExternalResourcesRequired interface
+        https://bugs.webkit.org/show_bug.cgi?id=191293
+
+        Reviewed by Simon Fraser.
+
+        * platform/gtk/TestExpectations:
+        The script-change-externalResourcesRequired-while-loading.svg has to be
+        removed and it was flaky on all platforms.
+
+        * platform/gtk/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
+        * platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
+        * platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
+        * platform/ios/TestExpectations:
+        * platform/ios/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
+        * platform/mac/TestExpectations:
+        * platform/mac/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
+        * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
+        * platform/win/TestExpectations:
+        * platform/win/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
+        * platform/wpe/imported/w3c/web-platform-tests/svg/import/types-dom-04-b-manual-expected.txt:
+        * platform/wpe/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
+        * svg/W3C-SVG-1.1-SE/types-dom-04-b.svg:
+        Use the preserveAlpha property of <feConvolveMatrix> element to test
+        SVGAnimatedBoolean.
+
+        * svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt: Removed.
+        * svg/animations/animate-externalResourcesRequired-no-load-event.html: Removed.
+        * svg/custom/path-domsubtreemodified-crash.html:
+
+        * svg/dom/SVGAnimatedBoolean-expected.txt:
+        * svg/dom/SVGAnimatedBoolean.html:
+        Use the preserveAlpha property of <feConvolveMatrix> element to test
+        SVGAnimatedBoolean.
+
+        * svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading-expected.txt: Removed.
+        * svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg: Removed.
+        * svg/dom/SVGScriptElement/script-load-and-error-events.svg:
+        * svg/dom/SVGScriptElement/script-onerror-bubbling.svg:
+        * svg/dom/SVGScriptElement/script-reexecution.svg:
+        * svg/dynamic-updates/SVGUseElement-dom-href1-attr.html:
+
 2019-10-18  Jiewen Tan  <jiewen_tan@apple.com>
 
         [WebAuthn] Warn users when no credentials are found
index 2ad4078..9175da5 100644 (file)
@@ -1,5 +1,16 @@
 2019-10-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
 
+        [SVG2]: Remove the SVGExternalResourcesRequired interface
+        https://bugs.webkit.org/show_bug.cgi?id=191293
+
+        Reviewed by Simon Fraser.
+
+        * web-platform-tests/svg/import/types-dom-04-b-manual.svg:
+        Use the preserveAlpha property of <feConvolveMatrix> element to test
+        SVGAnimatedBoolean.
+
+2019-10-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
         Load event must be fired only for the SVG structurally external elements and the outermost SVG element
         https://bugs.webkit.org/show_bug.cgi?id=203044
 
index 37df625..d492671 100644 (file)
@@ -92,6 +92,9 @@
       <filter>
         <feTurbulence id='feTurbulence' baseFrequency='2 3' numOctaves='2'/>
       </filter>
+      <filter>
+        <feConvolveMatrix id='feConvolveMatrix' order="1" kernelMatrix="1"/>
+      </filter>
     </g>
 
     <script><![CDATA[
           marker = $('marker'),
           svg = $('svg'),
           feTurbulence = $('feTurbulence');
+          feConvolveMatrix = $('feConvolveMatrix');
 
       function expect_exception(id, fn, code) {
         try {
          },
          true);
 
-      // SVGAnimatedBoolean: externalResourcesRequired on svg
+      // SVGAnimatedBoolean: preserveAlpha on svg
       expect_value
         ('r8',
          function() {
-           return !svg.externalResourcesRequired.baseVal
-               && (svg.setAttribute('externalResourcesRequired', 'true'), svg.externalResourcesRequired.baseVal);
+           return !feConvolveMatrix.preserveAlpha.baseVal
+               && (feConvolveMatrix.setAttribute('preserveAlpha', 'true'), feConvolveMatrix.preserveAlpha.baseVal);
          },
          true);
 
index 29ae316..b6be727 100644 (file)
@@ -1763,8 +1763,6 @@ webkit.org/b/173412 fast/scrolling/overflow-scrollable-after-back.html [ Pass Fa
 
 webkit.org/b/168373 media/video-seek-past-end-paused.html [ Failure Pass ]
 
-webkit.org/b/174240 svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg [ Pass Timeout ]
-
 webkit.org/b/174353 media/video-restricted-invisible-autoplay-not-allowed.html [ Crash Pass ]
 
 webkit.org/b/175933 media/audio-controls-timeline-in-media-document.html [ Pass Failure ]
index 11c90f9..4530619 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 800x600
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (16,518) size 380x60
       RenderSVGText {text} at (10,311) size 228x36 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 228x36
index 1614c55..b43056e 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 480x360
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (10,314) size 228x33
       RenderSVGText {text} at (10,314) size 228x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 228x32
index 5fc101e..8bc0ec4 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 800x600
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (16,516) size 385x64
       RenderSVGText {text} at (10,310) size 231x38 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 231x38
index 94bd000..0534769 100644 (file)
@@ -2327,8 +2327,6 @@ webkit.org/b/153371 imported/w3c/web-platform-tests/xhr/getresponseheader-chunke
 
 webkit.org/b/169210 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html [ Failure ]
 
-webkit.org/b/153498 svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg [ Pass Timeout ]
-
 # displaylist tests are flaky on ios-simulator wk2
 webkit.org/b/153656 displaylists/canvas-display-list.html [ Pass Failure ]
 webkit.org/b/153656 displaylists/extent-includes-transforms.html [ Pass Failure ]
index 2a8c7bc..5788df2 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 480x360
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (10,314) size 230x33
       RenderSVGText {text} at (10,314) size 230x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 230x33
index e33a0c6..607e3eb 100644 (file)
@@ -445,8 +445,6 @@ plugins/form-value.html
 # WebKit1 OOP plug-ins: Exceptions aren't thrown on invoke failure.
 plugins/npruntime/invoke-failure.html
 
-webkit.org/b/93589 svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg [ Pass Timeout ]
-
 # CSS image-resolution is not yet enabled.
 webkit.org/b/85262 fast/css/image-resolution
 
index 7572db7..7752dc9 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 800x600
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (16,517) size 381x62
       RenderSVGText {text} at (10,310) size 229x38 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 229x37
index 2d1a013..5a5a017 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 480x360
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (10,314) size 230x33
       RenderSVGText {text} at (10,314) size 230x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 230x33
index c9241de..f411fc0 100644 (file)
@@ -3797,8 +3797,6 @@ webkit.org/b/174801 fast/text/line-height-minimumFontSize-zoom.html [ ImageOnlyF
 webkit.org/b/174801 fast/text/line-height-minimumFontSize-autosize.html [ Failure ]
 webkit.org/b/174801 fast/text/line-height-minimumFontSize.html [ Failure ]
 
-webkit.org/b/93589 svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg [ Pass Timeout ]
-
 # No service worker implementation for WK1
 http/tests/appcache/main-resource-redirect-with-sw.html [ Skip ]
 http/tests/cache-storage [ Skip ]
index c6e4c60..3702b6a 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 480x360
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (10,314) size 231x33
       RenderSVGText {text} at (10,314) size 231x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 231x32
index 7c193c7..83060aa 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 800x600
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (16,518) size 380x60
       RenderSVGText {text} at (10,311) size 228x36 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 228x36
index 934f1ae..39f29ef 100644 (file)
@@ -67,6 +67,9 @@ layer at (0,0) size 800x600
         RenderSVGViewportContainer {svg} at (0,0) size 0x0
         RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
           [feTurbulence type="TURBULENCE" baseFrequency="4.00, 5.00" seed="0.00" numOctaves="1" stitchTiles="0"]
+        RenderSVGResourceFilter {filter} [id=""] [filterUnits=objectBoundingBox] [primitiveUnits=userSpaceOnUse]
+          [feConvolveMatrix order="width=1 height=1" kernelMatrix="[1.00]" divisor="1.00" bias="0.00" target="(0,0)" edgeMode="DUPLICATE" kernelUnitLength="(1,1)" preserveAlpha="1"]
+            [SourceGraphic]
     RenderSVGContainer {g} at (16,524) size 380x54
       RenderSVGText {text} at (10,314) size 228x33 contains 1 chunk(s)
         RenderSVGInlineText {#text} at (0,0) size 228x32
index 6e40550..f3f9e13 100644 (file)
       <text id='text' rotate='0 20 40' x='10 20' lengthAdjust='spacing'>abc</text>
       <circle id='circle' r='50' transform='scale(1) scale(2)' class='one'/>
       <marker id='marker' orient='30'/>
-      <svg id='svg' viewBox='10 20 30 40' preserveAspectRatio='none' externalResourcesRequired='false'/>
+      <svg id='svg' viewBox='10 20 30 40' preserveAspectRatio='none'/>
       <filter>
         <feTurbulence id='feTurbulence' baseFrequency='2 3' numOctaves='2'/>
       </filter>
+      <filter>
+        <feConvolveMatrix id='feConvolveMatrix' order="1" kernelMatrix="1"/>
+      </filter>
     </g>
 
     <script><![CDATA[
           marker = $('marker'),
           svg = $('svg'),
           feTurbulence = $('feTurbulence');
+          feConvolveMatrix = $('feConvolveMatrix');
 
       function expect_exception(id, fn, code) {
         try {
          },
          true);
 
-      // SVGAnimatedBoolean: externalResourcesRequired on svg
+      // SVGAnimatedBoolean: preserveAlpha on feConvolveMatrix
       expect_value
         ('r8',
          function() {
-           return !svg.externalResourcesRequired.baseVal
-               && (svg.setAttribute('externalResourcesRequired', 'true'), svg.externalResourcesRequired.baseVal);
+           return !feConvolveMatrix.preserveAlpha.baseVal
+               && (feConvolveMatrix.setAttribute('preserveAlpha', 'true'), feConvolveMatrix.preserveAlpha.baseVal);
          },
          true);
 
diff --git a/LayoutTests/svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt b/LayoutTests/svg/animations/animate-externalResourcesRequired-no-load-event-expected.txt
deleted file mode 100644 (file)
index 68fe806..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Test passes if it does not assert in debug builds.
-
-
diff --git a/LayoutTests/svg/animations/animate-externalResourcesRequired-no-load-event.html b/LayoutTests/svg/animations/animate-externalResourcesRequired-no-load-event.html
deleted file mode 100644 (file)
index 4f4935b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<body>
-    <p>Test passes if it does not assert in debug builds.</p>
-    <option id="option">
-        <svg id="svg">
-            <set id="set" attributeName="externalResourcesRequired" dur="20ms" to="true"/>
-        </svg>
-    </option>
-    <select id="select">
-    <script>
-        if (window.testRunner) {
-            testRunner.dumpAsText();
-            testRunner.waitUntilDone();
-        }
-
-        svg.addEventListener("load", () => {
-            select.add(option);
-        });
-
-        set.addEventListener("endEvent", () => {
-            if (window.testRunner)
-                testRunner.notifyDone();
-        });
-    </script>
-</body>
index 1cbbc82..9f7f0d9 100644 (file)
@@ -27,9 +27,6 @@
     }, false);
 
     function doCrash() {
-        var farthestViewportElement = defs["farthestViewportElement"];
-        var externalResourcesRequired = farthestViewportElement["externalResourcesRequired"];
-        externalResourcesRequired["baseVal"] = undefined;
         body.offsetWidth;
         body.innerHTML = "FAIL";
     }
index 936ffb3..539c827 100644 (file)
@@ -1,14 +1,14 @@
-This test checks the SVGAnimatedBoolean API - utilizing the externalResourcesRequired property of SVGRectElement
+This test checks the SVGAnimatedBoolean API - utilizing the preserveAlpha property of SVGFEConvolveMatrixElement
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
 
-Check initial SVGExternalResourcesRequired value
-PASS rectElement.externalResourcesRequired.baseVal is false
+Check initial preserveAlpha value
+PASS feConvolveMatrixElement.preserveAlpha.baseVal is false
 
 Set value to true
-PASS rectElement.externalResourcesRequired.baseVal = true is true
+PASS feConvolveMatrixElement.preserveAlpha.baseVal = true is true
 
 Caching baseVal in local variable
 PASS baseVal is true
@@ -16,19 +16,19 @@ PASS baseVal is true
 Modify local baseVal variable to true
 PASS baseVal = false is false
 
-Assure that rectElement.externalResourcesRequired has not been changed, but the local baseVal variable
+Assure that feConvolveMatrixElement.preserveAlpha has not been changed, but the local baseVal variable
 PASS baseVal is false
-PASS rectElement.externalResourcesRequired.baseVal is true
+PASS feConvolveMatrixElement.preserveAlpha.baseVal is true
 
 Check assigning values of various types
-PASS rectElement.externalResourcesRequired.baseVal = rectElement.externalResourcesRequired is rectElement.externalResourcesRequired
-PASS rectElement.externalResourcesRequired.baseVal is true
-PASS rectElement.externalResourcesRequired.baseVal = null is null
-PASS rectElement.externalResourcesRequired.baseVal is false
-PASS rectElement.externalResourcesRequired.baseVal = 'aString' is 'aString'
-PASS rectElement.externalResourcesRequired.baseVal is true
-PASS rectElement.externalResourcesRequired.baseVal = rectElement is rectElement
-PASS rectElement.externalResourcesRequired.baseVal is true
+PASS feConvolveMatrixElement.preserveAlpha.baseVal = feConvolveMatrixElement.preserveAlpha is feConvolveMatrixElement.preserveAlpha
+PASS feConvolveMatrixElement.preserveAlpha.baseVal is true
+PASS feConvolveMatrixElement.preserveAlpha.baseVal = null is null
+PASS feConvolveMatrixElement.preserveAlpha.baseVal is false
+PASS feConvolveMatrixElement.preserveAlpha.baseVal = 'aString' is 'aString'
+PASS feConvolveMatrixElement.preserveAlpha.baseVal is true
+PASS feConvolveMatrixElement.preserveAlpha.baseVal = feConvolveMatrixElement is feConvolveMatrixElement
+PASS feConvolveMatrixElement.preserveAlpha.baseVal is true
 PASS successfullyParsed is true
 
 TEST COMPLETE
index 6d4a264..90197ec 100644 (file)
@@ -7,20 +7,20 @@
 <p id="description"></p>
 <div id="console"></div>
 <script>
-description("This test checks the SVGAnimatedBoolean API - utilizing the externalResourcesRequired property of SVGRectElement");
+description("This test checks the SVGAnimatedBoolean API - utilizing the preserveAlpha property of SVGFEConvolveMatrixElement");
 
-var rectElement = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+var feConvolveMatrixElement = document.createElementNS("http://www.w3.org/2000/svg", "feConvolveMatrix");
 debug("");
-debug("Check initial SVGExternalResourcesRequired value");
-shouldBe("rectElement.externalResourcesRequired.baseVal", "false");
+debug("Check initial preserveAlpha value");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal", "false");
 
 debug("");
 debug("Set value to true");
-shouldBe("rectElement.externalResourcesRequired.baseVal = true", "true");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal = true", "true");
 
 debug("");
 debug("Caching baseVal in local variable");
-var baseVal = rectElement.externalResourcesRequired.baseVal;
+var baseVal = feConvolveMatrixElement.preserveAlpha.baseVal;
 shouldBe("baseVal", "true");
 
 debug("");
@@ -28,22 +28,22 @@ debug("Modify local baseVal variable to true");
 shouldBeFalse("baseVal = false");
 
 debug("");
-debug("Assure that rectElement.externalResourcesRequired has not been changed, but the local baseVal variable");
+debug("Assure that feConvolveMatrixElement.preserveAlpha has not been changed, but the local baseVal variable");
 shouldBe("baseVal", "false");
-shouldBe("rectElement.externalResourcesRequired.baseVal", "true");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal", "true");
 
 debug("");
 debug("Check assigning values of various types");
 // ECMA-262, 9.2, "ToBoolean"
-shouldBe("rectElement.externalResourcesRequired.baseVal = rectElement.externalResourcesRequired", "rectElement.externalResourcesRequired");
-shouldBe("rectElement.externalResourcesRequired.baseVal", "true");
-shouldBeNull("rectElement.externalResourcesRequired.baseVal = null");
-shouldBe("rectElement.externalResourcesRequired.baseVal", "false");
-shouldBe("rectElement.externalResourcesRequired.baseVal = 'aString'", "'aString'");
-shouldBe("rectElement.externalResourcesRequired.baseVal", "true");
-rectElement.externalResourcesRequired.baseVal = false;
-shouldBe("rectElement.externalResourcesRequired.baseVal = rectElement", "rectElement");
-shouldBe("rectElement.externalResourcesRequired.baseVal", "true");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal = feConvolveMatrixElement.preserveAlpha", "feConvolveMatrixElement.preserveAlpha");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal", "true");
+shouldBeNull("feConvolveMatrixElement.preserveAlpha.baseVal = null");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal", "false");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal = 'aString'", "'aString'");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal", "true");
+feConvolveMatrixElement.preserveAlpha.baseVal = false;
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal = feConvolveMatrixElement", "feConvolveMatrixElement");
+shouldBe("feConvolveMatrixElement.preserveAlpha.baseVal", "true");
 
 successfullyParsed = true;
 </script>
diff --git a/LayoutTests/svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading-expected.txt b/LayoutTests/svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading-expected.txt
deleted file mode 100644 (file)
index 44a1d2d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-Test changing externalResourcesRequired after inserting the element into the tree.
-Test 1: PASS
-
-Test 2: PASS
-
-Test 3: PASS
-
-Test 4: PASS
diff --git a/LayoutTests/svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg b/LayoutTests/svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg
deleted file mode 100644 (file)
index eef9d45..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0"?>
-<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" onload="startTest()">
-<defs>
-<script>
-var resourceLoaded = false;
-
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-
-// The SVGLoad event should be fired right after appending the script element to the document, before the target resource is loaded
-function startTest() {
-    var scriptElement = document.createElementNS("http://www.w3.org/2000/svg", "svg:script");
-    scriptElement.href.baseVal = "resources/script-load.js";
-    scriptElement.onload = function() {
-        if (resourceLoaded)
-            document.getElementById("test1").innerHTML = "FAIL: onload fired too late. External resource already completed loading";
-        else {
-            document.getElementById("test1").innerHTML = "PASS";
-            window.setTimeout('continueTest1()', 0);
-        }
-    };
-
-    document.getElementsByTagName("defs")[0].appendChild(scriptElement);
-}
-
-// The SVGLoad event should be fired right after appending the script element to the document, before the target resource is loaded
-// Changing the 'externalResourcesRequired' property after appending the script element, shouldn't affect the SVGLoad event dispatching.
-function continueTest1() {
-    resourceLoaded = false;
-
-    var scriptElement = document.createElementNS("http://www.w3.org/2000/svg", "svg:script");
-    scriptElement.href.baseVal = "resources/script-load2.js";
-        scriptElement.onload = function() {
-
-        if (resourceLoaded)
-            document.getElementById("test2").innerHTML = "FAIL: onload fired too late. External resource already completed loading";
-        else {
-            document.getElementById("test2").innerHTML = "PASS";
-            window.setTimeout('continueTest2()', 0);
-        }
-    };
-
-    document.getElementsByTagName("defs")[0].appendChild(scriptElement);
-    scriptElement.externalResourcesRequired.baseVal = true;
-}
-
-// The SVGLoad event should be dispatched, afer the external resource has finished loading
-function continueTest2() {
-    resourceLoaded = false;
-
-    var scriptElement = document.createElementNS("http://www.w3.org/2000/svg", "svg:script");
-    scriptElement.externalResourcesRequired.baseVal = true;
-    scriptElement.href.baseVal = "resources/script-load3.js";
-    scriptElement.onload = function() {
-        if (!resourceLoaded)
-            document.getElementById("test3").innerHTML = "FAIL: onload fired too early. External resource still loading";
-        else {
-            document.getElementById("test3").innerHTML = "PASS";
-            window.setTimeout('continueTest3()', 0);
-        }
-    };
-
-    document.getElementsByTagName("defs")[0].appendChild(scriptElement);
-}
-
-// The SVGLoad event should be dispatched, afer the external resource has finished loading
-// Changing the 'externalResourcesRequired' property from 'true' to 'false' after inserting the script element
-// in the document, should cause an immediate dispatch of the SVGLoad event.
-function continueTest3() {
-    resourceLoaded = false;
-
-    var scriptElement = document.createElementNS("http://www.w3.org/2000/svg", "svg:script");
-    scriptElement.externalResourcesRequired.baseVal = true;
-    scriptElement.href.baseVal = "resources/script-load4.js";
-    scriptElement.onload = function() {
-        if (resourceLoaded)
-            document.getElementById("test4").innerHTML = "FAIL: onload fired too late. early. External resource still loading";
-        else {
-            document.getElementById("test4").innerHTML = "PASS";
-            window.setTimeout('finishTest()', 0);
-        }
-    };
-
-    document.getElementsByTagName("defs")[0].appendChild(scriptElement);
-    scriptElement.externalResourcesRequired.baseVal = false;
-}
-
-function finishTest() {
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-</script>
-</defs>
-<foreignObject>
-Test changing externalResourcesRequired after inserting the element into the tree.
-<xhtml:hr/>
-<xhtml:p>Test 1: <xhtml:span id="test1">DID NOT EXECUTE</xhtml:span></xhtml:p>
-<xhtml:p>Test 2: <xhtml:span id="test2">DID NOT EXECUTE</xhtml:span></xhtml:p>
-<xhtml:p>Test 3: <xhtml:span id="test3">DID NOT EXECUTE</xhtml:span></xhtml:p>
-<xhtml:p>Test 4: <xhtml:span id="test4">DID NOT EXECUTE</xhtml:span></xhtml:p>
-</foreignObject>
-</svg>
index 252282e..b28e907 100644 (file)
@@ -60,8 +60,6 @@ function endTest() {
 }
 
 function lastTestBeforeRootElementLoaded() {
-    // Ensure the SVGSVGElement onload handler doesn't fire, because one script element points to a nonexistent
-    // resource, and specifies externalResourcesRequired=true. This prevents SVGLoad from being dispatched.
     window.setTimeout('startDynamicTests()', 0);
 }
 
@@ -108,7 +106,6 @@ function continueDynamicTest2() {
     scriptElement.id = 6;
     scriptElement.type.baseVal = "text/javascript";
     scriptElement.href.baseVal = "resources/nonexistent.js";
-    scriptElement.externalResourcesRequired.baseVal = true;
     scriptElement.onerror = errorEventHandler;
 
     lastTest = 1;
@@ -117,9 +114,9 @@ function continueDynamicTest2() {
 //]]>
 </script>
 <script id="0" type="text/javascript" onerror="errorEventHandler(evt)" onload="loadEventHandler(evt)" xlink:href="resources/certainlydoesnotexist.js"></script>
-<script id="1" type="text/javascript" onerror="errorEventHandler(evt)" externalResourcesRequired="true" onload="loadEventHandler(evt)" xlink:href="resources/certainlydoesnotexisttoo.js"/>
+<script id="1" type="text/javascript" onerror="errorEventHandler(evt)" onload="loadEventHandler(evt)" xlink:href="resources/certainlydoesnotexisttoo.js"/>
 <script id="2" type="text/javascript" onerror="errorEventHandler(evt)" onload="loadEventHandler(evt)" xlink:href="resources/script-load.js"></script>
-<script id="3" type="text/javascript" onerror="errorEventHandler(evt)" externalResourcesRequired="true" onload="loadEventHandler(evt); lastTestBeforeRootElementLoaded();" xlink:href="resources/script-load.js"/>
+<script id="3" type="text/javascript" onerror="errorEventHandler(evt)" onload="loadEventHandler(evt); lastTestBeforeRootElementLoaded();" xlink:href="resources/script-load.js"/>
 </defs>
 <foreignObject>
 Test load and error event handling with SVGScriptElement
index c402099..559041c 100644 (file)
@@ -52,7 +52,7 @@ function endTest() {
 }
 </script>
 <script id="0" type="text/javascript" onerror="scriptOnErrorHandler(0)" xlink:href="resources/certainlydoesnotexist.js"></script>
-<script id="1" type="text/javascript" onerror="scriptOnErrorHandler(1)" xlink:href="resources/certainlydoesnotexisttoo.js" externalResourcesRequired="true" />
+<script id="1" type="text/javascript" onerror="scriptOnErrorHandler(1)" xlink:href="resources/certainlydoesnotexisttoo.js"/>
 <script id="2" type="text/javascript" onload="testOnErrorInDynamicScript()" xlink:href="resources/script-load.js"></script>
 </defs>
 <foreignObject>
index a903670..13ed919 100644 (file)
@@ -32,7 +32,6 @@ function startTest() {
     message = "PASS";
 
     e3 = document.createElementNS("http://www.w3.org/2000/svg", "svg:script");
-    e3.externalResourcesRequired.baseVal = true; // Otherwhise SVGLoad event will be fired immediately.
     e3.href.baseVal = "resources/script-reexecution.js";
     e3.onload = function() { finish(); }
     document.getElementsByTagName("defs")[0].appendChild(e3);
index d22831c..a49ba3e 100644 (file)
@@ -22,7 +22,6 @@ rootSVGElement.appendChild(defsElement);
 var useElement = createSVGElement("use");
 useElement.setAttribute("x", "10");
 useElement.setAttribute("y", "10");
-useElement.setAttribute("externalResourcesRequired", "true");
 useElement.setAttribute("onload", "completeTest()");
 useElement.setAttributeNS(xlinkNS, "xlink:href", "#MyRect");
 
index ed78c8f..55d9585 100644 (file)
@@ -1048,7 +1048,6 @@ set(WebCore_SVG_IDL_FILES
     svg/SVGDocument.idl
     svg/SVGElement.idl
     svg/SVGEllipseElement.idl
-    svg/SVGExternalResourcesRequired.idl
     svg/SVGFEBlendElement.idl
     svg/SVGFEColorMatrixElement.idl
     svg/SVGFEComponentTransferElement.idl
index c5436d7..d5bf3a4 100644 (file)
@@ -1,3 +1,191 @@
+2019-10-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        [SVG2]: Remove the SVGExternalResourcesRequired interface
+        https://bugs.webkit.org/show_bug.cgi?id=191293
+
+        Reviewed by Simon Fraser.
+
+        The spec page is: https://www.w3.org/TR/SVG/changes.html.
+
+        r251290 made externalResourcesRequired have no effect on firing the load
+        event. All the control was moved to SVGURIReference. This patch will remove
+        this interface entirely to conform with SVG2 specs and other browsers.
+
+        * CMakeLists.txt:
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+        * DerivedSources.make:
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * svg/SVGAElement.cpp:
+        (WebCore::SVGAElement::SVGAElement):
+        (WebCore::SVGAElement::parseAttribute):
+        (WebCore::SVGAElement::svgAttributeChanged):
+        * svg/SVGAElement.h:
+        * svg/SVGAElement.idl:
+        * svg/SVGAnimationElement.cpp:
+        (WebCore::SVGAnimationElement::SVGAnimationElement):
+        (WebCore::SVGAnimationElement::isSupportedAttribute):
+        (WebCore::SVGAnimationElement::parseAttribute):
+        * svg/SVGAnimationElement.h:
+        * svg/SVGAnimationElement.idl:
+        * svg/SVGCircleElement.cpp:
+        (WebCore::SVGCircleElement::SVGCircleElement):
+        (WebCore::SVGCircleElement::parseAttribute):
+        (WebCore::SVGCircleElement::svgAttributeChanged):
+        * svg/SVGCircleElement.h:
+        * svg/SVGCircleElement.idl:
+        * svg/SVGClipPathElement.cpp:
+        (WebCore::SVGClipPathElement::SVGClipPathElement):
+        (WebCore::SVGClipPathElement::parseAttribute):
+        (WebCore::SVGClipPathElement::svgAttributeChanged):
+        * svg/SVGClipPathElement.h:
+        * svg/SVGClipPathElement.idl:
+        * svg/SVGCursorElement.cpp:
+        (WebCore::SVGCursorElement::SVGCursorElement):
+        (WebCore::SVGCursorElement::parseAttribute):
+        * svg/SVGCursorElement.h:
+        * svg/SVGCursorElement.idl:
+        * svg/SVGDefsElement.cpp:
+        (WebCore::SVGDefsElement::SVGDefsElement):
+        * svg/SVGDefsElement.h:
+        * svg/SVGDefsElement.idl:
+        * svg/SVGEllipseElement.cpp:
+        (WebCore::SVGEllipseElement::SVGEllipseElement):
+        (WebCore::SVGEllipseElement::parseAttribute):
+        (WebCore::SVGEllipseElement::svgAttributeChanged):
+        * svg/SVGEllipseElement.h:
+        * svg/SVGEllipseElement.idl:
+        * svg/SVGExternalResourcesRequired.cpp: Removed.
+        * svg/SVGExternalResourcesRequired.h: Removed.
+        * svg/SVGExternalResourcesRequired.idl: Removed.
+        * svg/SVGFEImageElement.cpp:
+        (WebCore::SVGFEImageElement::SVGFEImageElement):
+        (WebCore::SVGFEImageElement::parseAttribute):
+        * svg/SVGFEImageElement.h:
+        * svg/SVGFEImageElement.idl:
+        * svg/SVGFilterElement.cpp:
+        (WebCore::SVGFilterElement::SVGFilterElement):
+        (WebCore::SVGFilterElement::parseAttribute):
+        (WebCore::SVGFilterElement::svgAttributeChanged):
+        * svg/SVGFilterElement.h:
+        * svg/SVGFilterElement.idl:
+        * svg/SVGFontElement.cpp:
+        (WebCore::SVGFontElement::SVGFontElement):
+        * svg/SVGFontElement.h:
+        * svg/SVGForeignObjectElement.cpp:
+        (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
+        (WebCore::SVGForeignObjectElement::parseAttribute):
+        (WebCore::SVGForeignObjectElement::svgAttributeChanged):
+        * svg/SVGForeignObjectElement.h:
+        * svg/SVGForeignObjectElement.idl:
+        * svg/SVGGElement.cpp:
+        (WebCore::SVGGElement::SVGGElement):
+        (WebCore::SVGGElement::parseAttribute): Deleted.
+        (WebCore::SVGGElement::svgAttributeChanged): Deleted.
+        * svg/SVGGElement.h:
+        * svg/SVGGElement.idl:
+        * svg/SVGGradientElement.cpp:
+        (WebCore::SVGGradientElement::SVGGradientElement):
+        (WebCore::SVGGradientElement::parseAttribute):
+        * svg/SVGGradientElement.h:
+        * svg/SVGGradientElement.idl:
+        * svg/SVGImageElement.cpp:
+        (WebCore::SVGImageElement::SVGImageElement):
+        (WebCore::SVGImageElement::parseAttribute):
+        (WebCore::SVGImageElement::svgAttributeChanged):
+        * svg/SVGImageElement.h:
+        * svg/SVGImageElement.idl:
+        * svg/SVGLineElement.cpp:
+        (WebCore::SVGLineElement::SVGLineElement):
+        (WebCore::SVGLineElement::parseAttribute):
+        (WebCore::SVGLineElement::svgAttributeChanged):
+        * svg/SVGLineElement.h:
+        * svg/SVGLineElement.idl:
+        * svg/SVGMPathElement.cpp:
+        (WebCore::SVGMPathElement::SVGMPathElement):
+        (WebCore::SVGMPathElement::parseAttribute):
+        (WebCore::SVGMPathElement::svgAttributeChanged):
+        * svg/SVGMPathElement.h:
+        * svg/SVGMPathElement.idl:
+        * svg/SVGMarkerElement.cpp:
+        (WebCore::SVGMarkerElement::SVGMarkerElement):
+        (WebCore::SVGMarkerElement::parseAttribute):
+        (WebCore::SVGMarkerElement::svgAttributeChanged):
+        * svg/SVGMarkerElement.h:
+        * svg/SVGMarkerElement.idl:
+        * svg/SVGMaskElement.cpp:
+        (WebCore::SVGMaskElement::SVGMaskElement):
+        (WebCore::SVGMaskElement::parseAttribute):
+        (WebCore::SVGMaskElement::svgAttributeChanged):
+        * svg/SVGMaskElement.h:
+        * svg/SVGMaskElement.idl:
+        * svg/SVGPathElement.cpp:
+        (WebCore::SVGPathElement::SVGPathElement):
+        (WebCore::SVGPathElement::parseAttribute):
+        (WebCore::SVGPathElement::svgAttributeChanged):
+        * svg/SVGPathElement.h:
+        * svg/SVGPathElement.idl:
+        * svg/SVGPatternElement.cpp:
+        (WebCore::SVGPatternElement::SVGPatternElement):
+        (WebCore::SVGPatternElement::parseAttribute):
+        (WebCore::SVGPatternElement::svgAttributeChanged):
+        * svg/SVGPatternElement.h:
+        * svg/SVGPatternElement.idl:
+        * svg/SVGPolyElement.cpp:
+        (WebCore::SVGPolyElement::SVGPolyElement):
+        (WebCore::SVGPolyElement::parseAttribute):
+        (WebCore::SVGPolyElement::svgAttributeChanged):
+        * svg/SVGPolyElement.h:
+        * svg/SVGPolygonElement.idl:
+        * svg/SVGPolylineElement.idl:
+        * svg/SVGRectElement.cpp:
+        (WebCore::SVGRectElement::SVGRectElement):
+        (WebCore::SVGRectElement::parseAttribute):
+        (WebCore::SVGRectElement::svgAttributeChanged):
+        * svg/SVGRectElement.h:
+        * svg/SVGRectElement.idl:
+        * svg/SVGSVGElement.cpp:
+        (WebCore::SVGSVGElement::SVGSVGElement):
+        (WebCore::SVGSVGElement::parseAttribute):
+        (WebCore::SVGSVGElement::svgAttributeChanged):
+        * svg/SVGSVGElement.h:
+        * svg/SVGSVGElement.idl:
+        * svg/SVGScriptElement.cpp:
+        (WebCore::SVGScriptElement::SVGScriptElement):
+        (WebCore::SVGScriptElement::parseAttribute):
+        (WebCore::SVGScriptElement::svgAttributeChanged):
+        * svg/SVGScriptElement.h:
+        * svg/SVGScriptElement.idl:
+        * svg/SVGSwitchElement.cpp:
+        (WebCore::SVGSwitchElement::SVGSwitchElement):
+        * svg/SVGSwitchElement.h:
+        * svg/SVGSwitchElement.idl:
+        * svg/SVGSymbolElement.cpp:
+        (WebCore::SVGSymbolElement::SVGSymbolElement):
+        (WebCore::SVGSymbolElement::parseAttribute):
+        (WebCore::SVGSymbolElement::svgAttributeChanged): Deleted.
+        * svg/SVGSymbolElement.h:
+        * svg/SVGSymbolElement.idl:
+        * svg/SVGTextContentElement.cpp:
+        (WebCore::SVGTextContentElement::SVGTextContentElement):
+        (WebCore::SVGTextContentElement::parseAttribute):
+        (WebCore::SVGTextContentElement::svgAttributeChanged):
+        * svg/SVGTextContentElement.h:
+        * svg/SVGTextContentElement.idl:
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::SVGUseElement):
+        (WebCore::SVGUseElement::parseAttribute):
+        (WebCore::SVGUseElement::svgAttributeChanged):
+        * svg/SVGUseElement.h:
+        * svg/SVGUseElement.idl:
+        * svg/SVGViewElement.cpp:
+        (WebCore::SVGViewElement::SVGViewElement):
+        (WebCore::SVGViewElement::parseAttribute):
+        (WebCore::SVGViewElement::svgAttributeChanged):
+        * svg/SVGViewElement.h:
+        * svg/SVGViewElement.idl:
+
 2019-10-18  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         [Clipboard API] Refactor Pasteboard::read() to take an optional item index
index 03cd92f..c28d074 100644 (file)
@@ -966,7 +966,6 @@ $(PROJECT_DIR)/svg/SVGDescElement.idl
 $(PROJECT_DIR)/svg/SVGDocument.idl
 $(PROJECT_DIR)/svg/SVGElement.idl
 $(PROJECT_DIR)/svg/SVGEllipseElement.idl
-$(PROJECT_DIR)/svg/SVGExternalResourcesRequired.idl
 $(PROJECT_DIR)/svg/SVGFEBlendElement.idl
 $(PROJECT_DIR)/svg/SVGFEColorMatrixElement.idl
 $(PROJECT_DIR)/svg/SVGFEComponentTransferElement.idl
index 615457d..66e9fa7 100644 (file)
@@ -1485,8 +1485,6 @@ $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGElementWrapperFactory.cpp
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGElementWrapperFactory.h
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGEllipseElement.cpp
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGEllipseElement.h
-$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGExternalResourcesRequired.cpp
-$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGExternalResourcesRequired.h
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGFEBlendElement.cpp
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGFEBlendElement.h
 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSSVGFEColorMatrixElement.cpp
index 77b4443..5d33d85 100644 (file)
@@ -957,7 +957,6 @@ JS_BINDING_IDLS = \
     $(WebCore)/svg/SVGDocument.idl \
     $(WebCore)/svg/SVGElement.idl \
     $(WebCore)/svg/SVGEllipseElement.idl \
-    $(WebCore)/svg/SVGExternalResourcesRequired.idl \
     $(WebCore)/svg/SVGFEBlendElement.idl \
     $(WebCore)/svg/SVGFEColorMatrixElement.idl \
     $(WebCore)/svg/SVGFEComponentTransferElement.idl \
index e7c9046..96288be 100644 (file)
@@ -2369,7 +2369,6 @@ svg/SVGDocument.cpp
 svg/SVGDocumentExtensions.cpp
 svg/SVGElement.cpp
 svg/SVGEllipseElement.cpp
-svg/SVGExternalResourcesRequired.cpp
 svg/SVGFEBlendElement.cpp
 svg/SVGFEColorMatrixElement.cpp
 svg/SVGFEComponentTransferElement.cpp
@@ -3240,7 +3239,6 @@ JSSVGDescElement.cpp
 JSSVGDocument.cpp
 JSSVGElement.cpp
 JSSVGEllipseElement.cpp
-JSSVGExternalResourcesRequired.cpp
 JSSVGFEBlendElement.cpp
 JSSVGFEColorMatrixElement.cpp
 JSSVGFEComponentTransferElement.cpp
index e9b5eaf..7cb903a 100644 (file)
                B22279B40D00BF220071B782 /* SVGDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = B222781E0D00BF1F0071B782 /* SVGDocument.h */; settings = {ATTRIBUTES = (Private, ); }; };
                B22279B70D00BF220071B782 /* SVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278210D00BF1F0071B782 /* SVGElement.h */; };
                B22279C00D00BF220071B782 /* SVGEllipseElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B222782A0D00BF1F0071B782 /* SVGEllipseElement.h */; };
-               B22279C50D00BF220071B782 /* SVGExternalResourcesRequired.h in Headers */ = {isa = PBXBuildFile; fileRef = B222782F0D00BF1F0071B782 /* SVGExternalResourcesRequired.h */; };
                B22279C80D00BF220071B782 /* SVGFEBlendElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278320D00BF1F0071B782 /* SVGFEBlendElement.h */; };
                B22279CB0D00BF220071B782 /* SVGFEColorMatrixElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278350D00BF1F0071B782 /* SVGFEColorMatrixElement.h */; };
                B22279CE0D00BF220071B782 /* SVGFEComponentTransferElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278380D00BF1F0071B782 /* SVGFEComponentTransferElement.h */; };
                B22278290D00BF1F0071B782 /* SVGEllipseElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGEllipseElement.cpp; sourceTree = "<group>"; };
                B222782A0D00BF1F0071B782 /* SVGEllipseElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGEllipseElement.h; sourceTree = "<group>"; };
                B222782B0D00BF1F0071B782 /* SVGEllipseElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGEllipseElement.idl; sourceTree = "<group>"; };
-               B222782E0D00BF1F0071B782 /* SVGExternalResourcesRequired.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGExternalResourcesRequired.cpp; sourceTree = "<group>"; };
-               B222782F0D00BF1F0071B782 /* SVGExternalResourcesRequired.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGExternalResourcesRequired.h; sourceTree = "<group>"; };
-               B22278300D00BF1F0071B782 /* SVGExternalResourcesRequired.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGExternalResourcesRequired.idl; sourceTree = "<group>"; };
                B22278310D00BF1F0071B782 /* SVGFEBlendElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGFEBlendElement.cpp; sourceTree = "<group>"; };
                B22278320D00BF1F0071B782 /* SVGFEBlendElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGFEBlendElement.h; sourceTree = "<group>"; };
                B22278330D00BF1F0071B782 /* SVGFEBlendElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGFEBlendElement.idl; sourceTree = "<group>"; };
                                B22278290D00BF1F0071B782 /* SVGEllipseElement.cpp */,
                                B222782A0D00BF1F0071B782 /* SVGEllipseElement.h */,
                                B222782B0D00BF1F0071B782 /* SVGEllipseElement.idl */,
-                               B222782E0D00BF1F0071B782 /* SVGExternalResourcesRequired.cpp */,
-                               B222782F0D00BF1F0071B782 /* SVGExternalResourcesRequired.h */,
-                               B22278300D00BF1F0071B782 /* SVGExternalResourcesRequired.idl */,
                                B22278310D00BF1F0071B782 /* SVGFEBlendElement.cpp */,
                                B22278320D00BF1F0071B782 /* SVGFEBlendElement.h */,
                                B22278330D00BF1F0071B782 /* SVGFEBlendElement.idl */,
                                081AA8DA1111237E002AB06E /* SVGElementRareData.h in Headers */,
                                B562DB6117D3CD660010AF96 /* SVGElementTypeHelpers.h in Headers */,
                                B22279C00D00BF220071B782 /* SVGEllipseElement.h in Headers */,
-                               B22279C50D00BF220071B782 /* SVGExternalResourcesRequired.h in Headers */,
                                B22279C80D00BF220071B782 /* SVGFEBlendElement.h in Headers */,
                                B22279CB0D00BF220071B782 /* SVGFEColorMatrixElement.h in Headers */,
                                B22279CE0D00BF220071B782 /* SVGFEComponentTransferElement.h in Headers */,
index 81ab424..99db359 100644 (file)
@@ -48,7 +48,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGAElement);
 
 inline SVGAElement::SVGAElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
 {
     ASSERT(hasTagName(SVGNames::aTag));
@@ -84,7 +83,6 @@ void SVGAElement::parseAttribute(const QualifiedName& name, const AtomString& va
 
     SVGGraphicsElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGAElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -100,7 +98,6 @@ void SVGAElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RenderPtr<RenderElement> SVGAElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
index 3099630..b92b4b9 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 #include "SVGURIReference.h"
 #include "SharedStringHash.h"
 
 namespace WebCore {
 
-class SVGAElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired, public SVGURIReference {
+class SVGAElement final : public SVGGraphicsElement, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGAElement);
 public:
     static Ref<SVGAElement> create(const QualifiedName&, Document&);
@@ -42,7 +41,7 @@ public:
 private:
     SVGAElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGAElement, SVGGraphicsElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGAElement, SVGGraphicsElement, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 28795aa..5b9b8bb 100644 (file)
@@ -27,5 +27,4 @@ interface SVGAElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedString target;
 };
 
-SVGAElement implements SVGExternalResourcesRequired;
 SVGAElement implements SVGURIReference;
index b8b51f1..1241922 100644 (file)
@@ -49,7 +49,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGAnimationElement);
 
 SVGAnimationElement::SVGAnimationElement(const QualifiedName& tagName, Document& document)
     : SVGSMILElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGTests(this)
 {
 }
@@ -136,7 +135,6 @@ bool SVGAnimationElement::isSupportedAttribute(const QualifiedName& attrName)
     static const auto supportedAttributes = makeNeverDestroyed([] {
         HashSet<QualifiedName> set;
         SVGTests::addSupportedAttributes(set);
-        SVGExternalResourcesRequired::addSupportedAttributes(set);
         set.add({
             SVGNames::valuesAttr.get(),
             SVGNames::keyTimesAttr.get(),
@@ -203,7 +201,6 @@ void SVGAnimationElement::parseAttribute(const QualifiedName& name, const AtomSt
 
     SVGSMILElement::parseAttribute(name, value);
     SVGTests::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGAnimationElement::svgAttributeChanged(const QualifiedName& attrName)
index aa53a0c..8b1fb7f 100644 (file)
@@ -24,7 +24,6 @@
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGSMILElement.h"
 #include "SVGTests.h"
 #include "UnitBezier.h"
@@ -38,7 +37,7 @@ class TimeContainer;
 // the value during the animation since the value can be animated itself.
 enum AnimatedPropertyValueType { RegularPropertyValue, CurrentColorValue, InheritValue };
 
-class SVGAnimationElement : public SVGSMILElement, public SVGExternalResourcesRequired, public SVGTests {
+class SVGAnimationElement : public SVGSMILElement, public SVGTests {
     WTF_MAKE_ISO_ALLOCATED(SVGAnimationElement);
 public:
     float getStartTime() const;
@@ -86,7 +85,7 @@ public:
 protected:
     SVGAnimationElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGAnimationElement, SVGElement, SVGExternalResourcesRequired, SVGTests>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGAnimationElement, SVGElement, SVGTests>;
     const SVGPropertyRegistry& propertyRegistry() const override { return m_propertyRegistry; }
 
     virtual void resetAnimation();
index 839ca68..979c990 100644 (file)
@@ -37,5 +37,4 @@ interface SVGAnimationElement : SVGElement {
     void endElementAt(optional unrestricted float offset = NaN);
 };
 
-SVGAnimationElement implements SVGExternalResourcesRequired;
 SVGAnimationElement implements SVGTests;
index 49d4593..ebdaa52 100644 (file)
@@ -32,7 +32,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGCircleElement);
 
 inline SVGCircleElement::SVGCircleElement(const QualifiedName& tagName, Document& document)
     : SVGGeometryElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::circleTag));
 
@@ -63,7 +62,6 @@ void SVGCircleElement::parseAttribute(const QualifiedName& name, const AtomStrin
     reportAttributeParsingError(parseError, name, value);
 
     SVGGeometryElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGCircleElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -75,7 +73,6 @@ void SVGCircleElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGeometryElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RenderPtr<RenderElement> SVGCircleElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
index 71b7630..9fe9984 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGeometryElement.h"
 #include "SVGNames.h"
 
 namespace WebCore {
 
-class SVGCircleElement final : public SVGGeometryElement, public SVGExternalResourcesRequired {
+class SVGCircleElement final : public SVGGeometryElement {
     WTF_MAKE_ISO_ALLOCATED(SVGCircleElement);
 public:
     static Ref<SVGCircleElement> create(const QualifiedName&, Document&);
@@ -43,7 +42,7 @@ public:
 private:
     SVGCircleElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGCircleElement, SVGGeometryElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGCircleElement, SVGGeometryElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 54e1ab4..2188c07 100644 (file)
@@ -29,5 +29,3 @@ interface SVGCircleElement : SVGGeometryElement {
     readonly attribute SVGAnimatedLength cy;
     readonly attribute SVGAnimatedLength r;
 };
-
-SVGCircleElement implements SVGExternalResourcesRequired;
index 74f973c..9a8dc8d 100644 (file)
@@ -36,7 +36,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGClipPathElement);
 
 inline SVGClipPathElement::SVGClipPathElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::clipPathTag));
 
@@ -60,7 +59,6 @@ void SVGClipPathElement::parseAttribute(const QualifiedName& name, const AtomStr
     }
 
     SVGGraphicsElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGClipPathElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -74,7 +72,6 @@ void SVGClipPathElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 void SVGClipPathElement::childrenChanged(const ChildChange& change)
index fb3ef17..c2548ef 100644 (file)
@@ -21,7 +21,6 @@
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 #include "SVGUnitTypes.h"
 
@@ -29,7 +28,7 @@ namespace WebCore {
 
 class RenderObject;
 
-class SVGClipPathElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired {
+class SVGClipPathElement final : public SVGGraphicsElement {
     WTF_MAKE_ISO_ALLOCATED(SVGClipPathElement);
 public:
     static Ref<SVGClipPathElement> create(const QualifiedName&, Document&);
@@ -40,7 +39,7 @@ public:
 private:
     SVGClipPathElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGClipPathElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGClipPathElement, SVGGraphicsElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 96b5af1..20a9a10 100644 (file)
@@ -27,5 +27,3 @@
 interface SVGClipPathElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedEnumeration clipPathUnits;
 };
-
-SVGClipPathElement implements SVGExternalResourcesRequired;
index 2fd5766..ff3b643 100644 (file)
@@ -35,7 +35,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGCursorElement);
 
 inline SVGCursorElement::SVGCursorElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGTests(this)
     , SVGURIReference(this)
 {
@@ -72,7 +71,6 @@ void SVGCursorElement::parseAttribute(const QualifiedName& name, const AtomStrin
 
     SVGElement::parseAttribute(name, value);
     SVGTests::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
 }
 
index 5dd4d4b..3aeaf26 100644 (file)
@@ -22,7 +22,6 @@
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGTests.h"
 #include "SVGURIReference.h"
 
@@ -30,7 +29,7 @@ namespace WebCore {
 
 class CSSCursorImageValue;
 
-class SVGCursorElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGTests, public SVGURIReference {
+class SVGCursorElement final : public SVGElement, public SVGTests, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGCursorElement);
 public:
     static Ref<SVGCursorElement> create(const QualifiedName&, Document&);
@@ -49,7 +48,7 @@ public:
 private:
     SVGCursorElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGCursorElement, SVGElement, SVGExternalResourcesRequired, SVGTests, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGCursorElement, SVGElement, SVGTests, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
     
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 203f079..a43cb4d 100644 (file)
@@ -28,6 +28,5 @@ interface SVGCursorElement : SVGElement {
     readonly attribute SVGAnimatedLength y;
 };
 
-SVGCursorElement implements SVGExternalResourcesRequired;
 SVGCursorElement implements SVGTests;
 SVGCursorElement implements SVGURIReference;
index acbe55e..7d20165 100644 (file)
@@ -32,7 +32,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGDefsElement);
 
 inline SVGDefsElement::SVGDefsElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::defsTag));
 }
index 8fbbef8..03e55eb 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 
 namespace WebCore {
 
-class SVGDefsElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired {
+class SVGDefsElement final : public SVGGraphicsElement {
     WTF_MAKE_ISO_ALLOCATED(SVGDefsElement);
 public:
     static Ref<SVGDefsElement> create(const QualifiedName&, Document&);
@@ -34,7 +33,7 @@ public:
 private:
     SVGDefsElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGDefsElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGDefsElement, SVGGraphicsElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     bool isValid() const final;
index 5cd565e..7ecdd73 100644 (file)
@@ -25,5 +25,3 @@
 
 interface SVGDefsElement : SVGGraphicsElement {
 };
-
-SVGDefsElement implements SVGExternalResourcesRequired;
index adb6cbc..7c325b2 100644 (file)
@@ -32,7 +32,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGEllipseElement);
 
 inline SVGEllipseElement::SVGEllipseElement(const QualifiedName& tagName, Document& document)
     : SVGGeometryElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::ellipseTag));
 
@@ -66,7 +65,6 @@ void SVGEllipseElement::parseAttribute(const QualifiedName& name, const AtomStri
     reportAttributeParsingError(parseError, name, value);
 
     SVGGeometryElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGEllipseElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -78,7 +76,6 @@ void SVGEllipseElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGeometryElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RenderPtr<RenderElement> SVGEllipseElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
index ca07b3f..d8fe9bd 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGeometryElement.h"
 #include "SVGNames.h"
 
 namespace WebCore {
 
-class SVGEllipseElement final : public SVGGeometryElement, public SVGExternalResourcesRequired {
+class SVGEllipseElement final : public SVGGeometryElement {
     WTF_MAKE_ISO_ALLOCATED(SVGEllipseElement);
 public:
     static Ref<SVGEllipseElement> create(const QualifiedName&, Document&);
@@ -45,7 +44,7 @@ public:
 private:
     SVGEllipseElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGEllipseElement, SVGGeometryElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGEllipseElement, SVGGeometryElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 7d09a65..65579bf 100644 (file)
@@ -29,5 +29,3 @@ interface SVGEllipseElement : SVGGeometryElement {
     readonly attribute SVGAnimatedLength rx;
     readonly attribute SVGAnimatedLength ry;
 };
-
-SVGEllipseElement implements SVGExternalResourcesRequired;
diff --git a/Source/WebCore/svg/SVGExternalResourcesRequired.cpp b/Source/WebCore/svg/SVGExternalResourcesRequired.cpp
deleted file mode 100644 (file)
index b233b55..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org>
- * Copyright (C) 2018 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "SVGExternalResourcesRequired.h"
-
-#include "RenderSVGResource.h"
-#include "RenderSVGShape.h"
-#include "SVGElement.h"
-#include "SVGNames.h"
-
-namespace WebCore {
-
-SVGExternalResourcesRequired::SVGExternalResourcesRequired(SVGElement* contextElement)
-    : m_contextElement(*contextElement)
-    , m_externalResourcesRequired(SVGAnimatedBoolean::create(contextElement))
-{
-    static std::once_flag onceFlag;
-    std::call_once(onceFlag, [] {
-        PropertyRegistry::registerProperty<SVGNames::externalResourcesRequiredAttr, &SVGExternalResourcesRequired::m_externalResourcesRequired>();
-    });
-}
-
-void SVGExternalResourcesRequired::parseAttribute(const QualifiedName& name, const AtomString& value)
-{
-    if (name == SVGNames::externalResourcesRequiredAttr)
-        m_externalResourcesRequired->setBaseValInternal(value == "true");
-}
-
-void SVGExternalResourcesRequired::svgAttributeChanged(const QualifiedName& attrName)
-{
-    if (!isKnownAttribute(attrName))
-        return;
-    if (!m_contextElement.isConnected())
-        return;
-
-    auto* renderer = m_contextElement.renderer();
-    if (renderer && is<RenderSVGShape>(renderer)) {
-        SVGElement::InstanceInvalidationGuard guard(m_contextElement);
-        RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
-    }
-}
-
-void SVGExternalResourcesRequired::addSupportedAttributes(HashSet<QualifiedName>& supportedAttributes)
-{
-    supportedAttributes.add(SVGNames::externalResourcesRequiredAttr);
-}
-
-}
diff --git a/Source/WebCore/svg/SVGExternalResourcesRequired.h b/Source/WebCore/svg/SVGExternalResourcesRequired.h
deleted file mode 100644 (file)
index 800ba90..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
- * Copyright (C) 2018-2019 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#pragma once
-
-#include "QualifiedName.h"
-#include "SVGPropertyOwnerRegistry.h"
-#include <wtf/HashSet.h>
-
-namespace WebCore {
-
-class SVGElement;
-
-// Notes on a SVG 1.1 spec discrepancy:
-// The SVG DOM defines the attribute externalResourcesRequired as being of type SVGAnimatedBoolean, whereas the 
-// SVG language definition says that externalResourcesRequired is not animated. Because the SVG language definition
-// states that externalResourcesRequired cannot be animated, the animVal will always be the same as the baseVal.
-// FIXME: When implementing animVal support, make sure that animVal==baseVal for externalResourcesRequired
-class SVGExternalResourcesRequired {
-    WTF_MAKE_NONCOPYABLE(SVGExternalResourcesRequired);
-public:
-    virtual ~SVGExternalResourcesRequired() = default;
-
-    void parseAttribute(const QualifiedName&, const AtomString&);
-    void svgAttributeChanged(const QualifiedName&);
-
-    static void addSupportedAttributes(HashSet<QualifiedName>&);
-
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGExternalResourcesRequired>;
-
-    bool externalResourcesRequired() const { return m_externalResourcesRequired->currentValue(); }
-    SVGAnimatedBoolean& externalResourcesRequiredAnimated() { return m_externalResourcesRequired; }
-
-protected:
-    SVGExternalResourcesRequired(SVGElement* contextElement);
-    static bool isKnownAttribute(const QualifiedName& attributeName) { return PropertyRegistry::isKnownAttribute(attributeName); }
-
-private:
-    SVGElement& m_contextElement;
-    Ref<SVGAnimatedBoolean> m_externalResourcesRequired;
-};
-
-} // namespace WebCore
diff --git a/Source/WebCore/svg/SVGExternalResourcesRequired.idl b/Source/WebCore/svg/SVGExternalResourcesRequired.idl
deleted file mode 100644 (file)
index 0220889..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
- * Copyright (C) 2006 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
- */
-
-[
-    NoInterfaceObject,
-] interface SVGExternalResourcesRequired { 
-    readonly attribute SVGAnimatedBoolean externalResourcesRequired;
-};
index 8f8213a..2d59e50 100644 (file)
@@ -40,7 +40,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGFEImageElement);
 
 inline SVGFEImageElement::SVGFEImageElement(const QualifiedName& tagName, Document& document)
     : SVGFilterPrimitiveStandardAttributes(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
 {
     ASSERT(hasTagName(SVGNames::feImageTag));
@@ -126,7 +125,6 @@ void SVGFEImageElement::parseAttribute(const QualifiedName& name, const AtomStri
 
     SVGFilterPrimitiveStandardAttributes::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGFEImageElement::svgAttributeChanged(const QualifiedName& attrName)
index 0b868b3..f27dc38 100644 (file)
 
 #include "CachedImageClient.h"
 #include "CachedResourceHandle.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGFEImage.h"
 #include "SVGFilterPrimitiveStandardAttributes.h"
 #include "SVGURIReference.h"
 
 namespace WebCore {
 
-class SVGFEImageElement final : public SVGFilterPrimitiveStandardAttributes, public SVGExternalResourcesRequired, public SVGURIReference, public CachedImageClient {
+class SVGFEImageElement final : public SVGFilterPrimitiveStandardAttributes, public SVGURIReference, public CachedImageClient {
     WTF_MAKE_ISO_ALLOCATED(SVGFEImageElement);
 public:
     static Ref<SVGFEImageElement> create(const QualifiedName&, Document&);
@@ -45,7 +44,7 @@ public:
 private:
     SVGFEImageElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGFEImageElement, SVGFilterPrimitiveStandardAttributes, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGFEImageElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) override;
index 422f432..45a6adc 100644 (file)
@@ -27,6 +27,5 @@ interface SVGFEImageElement : SVGElement {
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
-SVGFEImageElement implements SVGExternalResourcesRequired;
 SVGFEImageElement implements SVGFilterPrimitiveStandardAttributes;
 SVGFEImageElement implements SVGURIReference;
index 186b771..7432ebb 100644 (file)
@@ -40,7 +40,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGFilterElement);
 
 inline SVGFilterElement::SVGFilterElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
 {
     // Spec: If the x/y attribute is not specified, the effect is as if a value of "-10%" were specified.
@@ -88,7 +87,6 @@ void SVGFilterElement::parseAttribute(const QualifiedName& name, const AtomStrin
 
     SVGElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGFilterElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -106,7 +104,6 @@ void SVGFilterElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 void SVGFilterElement::childrenChanged(const ChildChange& change)
index 5903209..1acd2ae 100644 (file)
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGURIReference.h"
 #include "SVGUnitTypes.h"
 
 namespace WebCore {
 
-class SVGFilterElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGURIReference {
+class SVGFilterElement final : public SVGElement, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGFilterElement);
 public:
     static Ref<SVGFilterElement> create(const QualifiedName&, Document&);
@@ -52,7 +51,7 @@ public:
 private:
     SVGFilterElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGFilterElement, SVGElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGFilterElement, SVGElement, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 5da6496..4e8c9d3 100644 (file)
@@ -33,5 +33,4 @@ interface SVGFilterElement : SVGElement {
     readonly attribute SVGAnimatedLength      height;
 };
 
-SVGFilterElement implements SVGExternalResourcesRequired;
 SVGFilterElement implements SVGURIReference;
index 6855d83..f3c7d35 100644 (file)
@@ -42,7 +42,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGFontElement);
 
 inline SVGFontElement::SVGFontElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::fontTag));
 }
index cd1e8ea..45e6b88 100644 (file)
@@ -25,7 +25,6 @@
 #if ENABLE(SVG_FONTS)
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGParserUtilities.h"
 
 namespace WebCore {
@@ -42,7 +41,7 @@ struct SVGKerningPair {
     float kerning { 0 };
 };
 
-class SVGFontElement final : public SVGElement, public SVGExternalResourcesRequired {
+class SVGFontElement final : public SVGElement {
     WTF_MAKE_ISO_ALLOCATED(SVGFontElement);
 public:
     static Ref<SVGFontElement> create(const QualifiedName&, Document&);
@@ -52,7 +51,7 @@ private:
 
     bool rendererIsNeeded(const RenderStyle&) final { return false; }
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGFontElement, SVGElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGFontElement, SVGElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     PropertyRegistry m_propertyRegistry { *this };
index 7ff3b86..8e676d9 100644 (file)
@@ -37,7 +37,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGForeignObjectElement);
 
 inline SVGForeignObjectElement::SVGForeignObjectElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::foreignObjectTag));
     static std::once_flag onceFlag;
@@ -70,7 +69,6 @@ void SVGForeignObjectElement::parseAttribute(const QualifiedName& name, const At
     reportAttributeParsingError(parseError, name, value);
 
     SVGGraphicsElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGForeignObjectElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -88,7 +86,6 @@ void SVGForeignObjectElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RenderPtr<RenderElement> SVGForeignObjectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
index db20433..82faf2e 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 #include "SVGNames.h"
 #include "SVGURIReference.h"
 
 namespace WebCore {
 
-class SVGForeignObjectElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired {
+class SVGForeignObjectElement final : public SVGGraphicsElement {
     WTF_MAKE_ISO_ALLOCATED(SVGForeignObjectElement);
 public:
     static Ref<SVGForeignObjectElement> create(const QualifiedName&, Document&);
@@ -44,7 +43,7 @@ public:
 private:
     SVGForeignObjectElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGForeignObjectElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGForeignObjectElement, SVGGraphicsElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 8856757..d3dee87 100644 (file)
@@ -29,5 +29,3 @@ interface SVGForeignObjectElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength width;
     readonly attribute SVGAnimatedLength height;
 };
-
-SVGForeignObjectElement implements SVGExternalResourcesRequired;
index 7c050e0..ddc1799 100644 (file)
@@ -35,7 +35,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGGElement);
 
 SVGGElement::SVGGElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::gTag));
 }
@@ -50,18 +49,6 @@ Ref<SVGGElement> SVGGElement::create(Document& document)
     return create(SVGNames::gTag, document);
 }
 
-void SVGGElement::parseAttribute(const QualifiedName& name, const AtomString& value)
-{
-    SVGGraphicsElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
-}
-
-void SVGGElement::svgAttributeChanged(const QualifiedName& attrName)
-{
-    SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
-}
-
 RenderPtr<RenderElement> SVGGElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
 {
     // SVG 1.1 testsuite explicitly uses constructs like <g display="none"><linearGradient>
index 668cee9..4999670 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 
 namespace WebCore {
 
-class SVGGElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired {
+class SVGGElement final : public SVGGraphicsElement {
     WTF_MAKE_ISO_ALLOCATED(SVGGElement);
 public:
     static Ref<SVGGElement> create(const QualifiedName&, Document&);
@@ -37,12 +36,9 @@ private:
 
     RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGGElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGGElement, SVGGraphicsElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
-    void parseAttribute(const QualifiedName&, const AtomString&) final;
-    void svgAttributeChanged(const QualifiedName&) final;
-
     bool isValid() const final { return SVGTests::isValid(); }
     bool rendererIsNeeded(const RenderStyle&) final;
 
index 62cc1bb..c934f23 100644 (file)
@@ -25,5 +25,3 @@
 
 interface SVGGElement : SVGGraphicsElement {
 };
-
-SVGGElement implements SVGExternalResourcesRequired;
index bf3d886..0c607d8 100644 (file)
@@ -40,7 +40,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGGradientElement);
 
 SVGGradientElement::SVGGradientElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
 {
     static std::once_flag onceFlag;
@@ -74,7 +73,6 @@ void SVGGradientElement::parseAttribute(const QualifiedName& name, const AtomStr
 
     SVGElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGGradientElement::svgAttributeChanged(const QualifiedName& attrName)
index 6fcf452..17470fc 100644 (file)
@@ -23,7 +23,6 @@
 
 #include "Gradient.h"
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGNames.h"
 #include "SVGURIReference.h"
 #include "SVGUnitTypes.h"
@@ -70,7 +69,7 @@ struct SVGPropertyTraits<SVGSpreadMethodType> {
     }
 };
 
-class SVGGradientElement : public SVGElement, public SVGExternalResourcesRequired, public SVGURIReference {
+class SVGGradientElement : public SVGElement, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGGradientElement);
 public:
     enum {
@@ -82,7 +81,7 @@ public:
 
     Vector<Gradient::ColorStop> buildStops();
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGGradientElement, SVGElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGGradientElement, SVGElement, SVGURIReference>;
 
     SVGSpreadMethodType spreadMethod() const { return m_spreadMethod->currentValue<SVGSpreadMethodType>(); }
     SVGUnitTypes::SVGUnitType gradientUnits() const { return m_gradientUnits->currentValue<SVGUnitTypes::SVGUnitType>(); }
index 2ba9fe7..c4d6f48 100644 (file)
@@ -37,5 +37,4 @@
     readonly attribute SVGAnimatedEnumeration   spreadMethod;
 };
 
-SVGGradientElement implements SVGExternalResourcesRequired;
 SVGGradientElement implements SVGURIReference;
index 491f2a0..46f893b 100644 (file)
@@ -39,7 +39,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGImageElement);
 
 inline SVGImageElement::SVGImageElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
     , m_imageLoader(*this)
 {
@@ -90,7 +89,6 @@ void SVGImageElement::parseAttribute(const QualifiedName& name, const AtomString
     reportAttributeParsingError(parseError, name, value);
 
     SVGGraphicsElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
 }
 
@@ -126,7 +124,6 @@ void SVGImageElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RenderPtr<RenderElement> SVGImageElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
index eaff618..c2179f1 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 #include "SVGImageLoader.h"
 #include "SVGURIReference.h"
 
 namespace WebCore {
 
-class SVGImageElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired, public SVGURIReference {
+class SVGImageElement final : public SVGGraphicsElement, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGImageElement);
 public:
     static Ref<SVGImageElement> create(const QualifiedName&, Document&);
@@ -51,7 +50,7 @@ public:
 private:
     SVGImageElement(const QualifiedName&, Document&);
     
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGImageElement, SVGGraphicsElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGImageElement, SVGGraphicsElement, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 53355a0..8be8228 100644 (file)
@@ -31,5 +31,4 @@ interface SVGImageElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedPreserveAspectRatio preserveAspectRatio;
 };
 
-SVGImageElement implements SVGExternalResourcesRequired;
 SVGImageElement implements SVGURIReference;
index 3c4d39e..a42eae5 100644 (file)
@@ -32,7 +32,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGLineElement);
 
 inline SVGLineElement::SVGLineElement(const QualifiedName& tagName, Document& document)
     : SVGGeometryElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::lineTag));
 
@@ -66,7 +65,6 @@ void SVGLineElement::parseAttribute(const QualifiedName& name, const AtomString&
     reportAttributeParsingError(parseError, name, value);
 
     SVGGeometryElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGLineElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -83,7 +81,6 @@ void SVGLineElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGeometryElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 bool SVGLineElement::selfHasRelativeLengths() const
index 36a0bb4..8c0eafe 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGeometryElement.h"
 #include "SVGNames.h"
 
 namespace WebCore {
 
-class SVGLineElement final : public SVGGeometryElement, public SVGExternalResourcesRequired {
+class SVGLineElement final : public SVGGeometryElement {
     WTF_MAKE_ISO_ALLOCATED(SVGLineElement);
 public:
     static Ref<SVGLineElement> create(const QualifiedName&, Document&);
@@ -45,7 +44,7 @@ public:
 private:
     SVGLineElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGLineElement, SVGGeometryElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGLineElement, SVGGeometryElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 8d08451..c46d222 100644 (file)
@@ -29,5 +29,3 @@ interface SVGLineElement : SVGGeometryElement {
     readonly attribute SVGAnimatedLength x2;
     readonly attribute SVGAnimatedLength y2;
 };
-
-SVGLineElement implements SVGExternalResourcesRequired;
index d803924..c633af5 100644 (file)
@@ -34,7 +34,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGMPathElement);
 
 inline SVGMPathElement::SVGMPathElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
 {
     ASSERT(hasTagName(SVGNames::mpathTag));
@@ -105,7 +104,6 @@ void SVGMPathElement::parseAttribute(const QualifiedName& name, const AtomString
 {
     SVGElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGMPathElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -117,7 +115,6 @@ void SVGMPathElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RefPtr<SVGPathElement> SVGMPathElement::pathElement()
index 67d1db3..0fd735f 100644 (file)
@@ -21,7 +21,6 @@
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGNames.h"
 #include "SVGURIReference.h"
 
@@ -29,7 +28,7 @@ namespace WebCore {
     
 class SVGPathElement;
 
-class SVGMPathElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGURIReference {
+class SVGMPathElement final : public SVGElement, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGMPathElement);
 public:
     static Ref<SVGMPathElement> create(const QualifiedName&, Document&);
@@ -43,7 +42,7 @@ public:
 private:
     SVGMPathElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGMPathElement, SVGElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGMPathElement, SVGElement, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index c5d58b6..b1d5359 100644 (file)
@@ -26,5 +26,4 @@
 interface SVGMPathElement : SVGElement {
 };
 
-SVGMPathElement implements SVGExternalResourcesRequired;
 SVGMPathElement implements SVGURIReference;
index 8306fd7..98ab588 100644 (file)
@@ -33,7 +33,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGMarkerElement);
 
 inline SVGMarkerElement::SVGMarkerElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGFitToViewBox(this)
 {
     // Spec: If the markerWidth/markerHeight attribute is not specified, the effect is as if a value of "3" were specified.
@@ -90,7 +89,6 @@ void SVGMarkerElement::parseAttribute(const QualifiedName& name, const AtomStrin
     reportAttributeParsingError(parseError, name, value);
 
     SVGElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGFitToViewBox::parseAttribute(name, value);
 }
 
@@ -112,7 +110,6 @@ void SVGMarkerElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 void SVGMarkerElement::childrenChanged(const ChildChange& change)
index ff76b07..7110953 100644 (file)
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGMarkerTypes.h"
 
 namespace WebCore {
 
-class SVGMarkerElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGFitToViewBox {
+class SVGMarkerElement final : public SVGElement, public SVGFitToViewBox {
     WTF_MAKE_ISO_ALLOCATED(SVGMarkerElement);
 public:
     // Forward declare enumerations in the W3C naming scheme, for IDL generation.
@@ -71,7 +70,7 @@ public:
 private:
     SVGMarkerElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGMarkerElement, SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGMarkerElement, SVGElement, SVGFitToViewBox>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) override;
index edd8de5..0337dc6 100644 (file)
@@ -46,5 +46,4 @@ interface SVGMarkerElement : SVGElement {
     void setOrientToAngle(SVGAngle angle);
 };
 
-SVGMarkerElement implements SVGExternalResourcesRequired;
 SVGMarkerElement implements SVGFitToViewBox;
index b7a0f11..f6860a1 100644 (file)
@@ -41,7 +41,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGMaskElement);
 
 inline SVGMaskElement::SVGMaskElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGTests(this)
 {
     // Spec: If the x/y attribute is not specified, the effect is as if a value of "-10%" were specified.
@@ -94,7 +93,6 @@ void SVGMaskElement::parseAttribute(const QualifiedName& name, const AtomString&
 
     SVGElement::parseAttribute(name, value);
     SVGTests::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGMaskElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -112,7 +110,6 @@ void SVGMaskElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 void SVGMaskElement::childrenChanged(const ChildChange& change)
index c3e49ba..490dc22 100644 (file)
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGNames.h"
 #include "SVGTests.h"
 #include "SVGUnitTypes.h"
 
 namespace WebCore {
 
-class SVGMaskElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGTests {
+class SVGMaskElement final : public SVGElement, public SVGTests {
     WTF_MAKE_ISO_ALLOCATED(SVGMaskElement);
 public:
     static Ref<SVGMaskElement> create(const QualifiedName&, Document&);
@@ -50,7 +49,7 @@ public:
 private:
     SVGMaskElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGMaskElement, SVGElement, SVGExternalResourcesRequired, SVGTests>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGMaskElement, SVGElement, SVGTests>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index e5bb8c3..b7b6b45 100644 (file)
@@ -33,5 +33,4 @@ interface SVGMaskElement : SVGElement {
     readonly attribute SVGAnimatedLength height;
 };
 
-SVGMaskElement implements SVGExternalResourcesRequired;
 SVGMaskElement implements SVGTests;
index 6ba1440..e1cff5c 100644 (file)
@@ -37,7 +37,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGPathElement);
 
 inline SVGPathElement::SVGPathElement(const QualifiedName& tagName, Document& document)
     : SVGGeometryElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::pathTag));
 
@@ -61,7 +60,6 @@ void SVGPathElement::parseAttribute(const QualifiedName& name, const AtomString&
     }
 
     SVGGeometryElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -79,7 +77,6 @@ void SVGPathElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGeometryElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 void SVGPathElement::invalidateMPathDependencies()
index 3a59773..917e33b 100644 (file)
@@ -22,7 +22,6 @@
 #pragma once
 
 #include "Path.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGeometryElement.h"
 #include "SVGNames.h"
 #include "SVGPathByteStream.h"
@@ -33,7 +32,7 @@ namespace WebCore {
 class SVGPathSegList;
 class SVGPoint;
 
-class SVGPathElement final : public SVGGeometryElement, public SVGExternalResourcesRequired {
+class SVGPathElement final : public SVGGeometryElement {
     WTF_MAKE_ISO_ALLOCATED(SVGPathElement);
 public:
     static Ref<SVGPathElement> create(const QualifiedName&, Document&);
@@ -108,7 +107,7 @@ public:
 private:
     SVGPathElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGPathElement, SVGGeometryElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGPathElement, SVGGeometryElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
     
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index ee6bec8..a53878b 100644 (file)
@@ -101,5 +101,3 @@ interface SVGPathElement : SVGGeometryElement {
     readonly attribute SVGPathSegList animatedPathSegList;
     readonly attribute SVGPathSegList animatedNormalizedPathSegList;
 };
-
-SVGPathElement implements SVGExternalResourcesRequired;
index 8389a71..d6b38d7 100644 (file)
@@ -47,7 +47,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGPatternElement);
 
 inline SVGPatternElement::SVGPatternElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGFitToViewBox(this)
     , SVGTests(this)
     , SVGURIReference(this)
@@ -106,7 +105,6 @@ void SVGPatternElement::parseAttribute(const QualifiedName& name, const AtomStri
     SVGElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
     SVGTests::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGFitToViewBox::parseAttribute(name, value);
 }
 
@@ -125,7 +123,6 @@ void SVGPatternElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 void SVGPatternElement::childrenChanged(const ChildChange& change)
index 1e661d7..575bab2 100644 (file)
@@ -22,7 +22,6 @@
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGNames.h"
 #include "SVGTests.h"
@@ -33,7 +32,7 @@ namespace WebCore {
 
 struct PatternAttributes;
  
-class SVGPatternElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGFitToViewBox, public SVGTests, public SVGURIReference {
+class SVGPatternElement final : public SVGElement, public SVGFitToViewBox, public SVGTests, public SVGURIReference {
     WTF_MAKE_ISO_ALLOCATED(SVGPatternElement);
 public:
     static Ref<SVGPatternElement> create(const QualifiedName&, Document&);
@@ -61,7 +60,7 @@ public:
 private:
     SVGPatternElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGPatternElement, SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox, SVGTests, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGPatternElement, SVGElement, SVGFitToViewBox, SVGTests, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 5fecc65..55514d4 100644 (file)
@@ -33,7 +33,6 @@ interface SVGPatternElement : SVGElement {
     readonly attribute SVGAnimatedLength        height;
 };
 
-SVGPatternElement implements SVGExternalResourcesRequired;
 SVGPatternElement implements SVGFitToViewBox;
 SVGPatternElement implements SVGTests;
 SVGPatternElement implements SVGURIReference;
index 62bf314..ea1fe09 100644 (file)
@@ -35,7 +35,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGPolyElement);
 
 SVGPolyElement::SVGPolyElement(const QualifiedName& tagName, Document& document)
     : SVGGeometryElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     static std::once_flag onceFlag;
     std::call_once(onceFlag, [] {
@@ -52,7 +51,6 @@ void SVGPolyElement::parseAttribute(const QualifiedName& name, const AtomString&
     }
 
     SVGGeometryElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGPolyElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -67,7 +65,6 @@ void SVGPolyElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGeometryElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 size_t SVGPolyElement::approximateMemoryCost() const
index 5ee311f..3f888b1 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGeometryElement.h"
 #include "SVGNames.h"
 
 namespace WebCore {
 
-class SVGPolyElement : public SVGGeometryElement, public SVGExternalResourcesRequired {
+class SVGPolyElement : public SVGGeometryElement {
     WTF_MAKE_ISO_ALLOCATED(SVGPolyElement);
 public:
     const SVGPointList& points() const { return m_points->currentValue(); }
@@ -41,7 +40,7 @@ protected:
     SVGPolyElement(const QualifiedName&, Document&);
 
 private:
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGPolyElement, SVGGeometryElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGPolyElement, SVGGeometryElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) override; 
index e31b92b..36821e3 100644 (file)
@@ -27,5 +27,3 @@ interface SVGPolygonElement : SVGGeometryElement {
     readonly attribute SVGPointList points;
     readonly attribute SVGPointList animatedPoints;
 };
-
-SVGPolygonElement implements SVGExternalResourcesRequired;
index ae4d567..095a52c 100644 (file)
@@ -27,5 +27,3 @@ interface SVGPolylineElement : SVGGeometryElement {
     readonly attribute SVGPointList points;
     readonly attribute SVGPointList animatedPoints;
 };
-
-SVGPolylineElement implements SVGExternalResourcesRequired;
index eca13f0..37b6665 100644 (file)
@@ -33,7 +33,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGRectElement);
 
 inline SVGRectElement::SVGRectElement(const QualifiedName& tagName, Document& document)
     : SVGGeometryElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::rectTag));
 
@@ -73,7 +72,6 @@ void SVGRectElement::parseAttribute(const QualifiedName& name, const AtomString&
     reportAttributeParsingError(parseError, name, value);
 
     SVGGeometryElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGRectElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -85,7 +83,6 @@ void SVGRectElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGeometryElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 RenderPtr<RenderElement> SVGRectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
index c5f5f2c..3173968 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGeometryElement.h"
 #include "SVGNames.h"
 
 namespace WebCore {
 
-class SVGRectElement final : public SVGGeometryElement, public SVGExternalResourcesRequired {
+class SVGRectElement final : public SVGGeometryElement {
     WTF_MAKE_ISO_ALLOCATED(SVGRectElement);
 public:
     static Ref<SVGRectElement> create(const QualifiedName&, Document&);
@@ -49,7 +48,7 @@ public:
 private:
     SVGRectElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGRectElement, SVGGeometryElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGRectElement, SVGGeometryElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index ecfcee6..0078d2b 100644 (file)
@@ -32,5 +32,3 @@ interface SVGRectElement : SVGGeometryElement {
     readonly attribute SVGAnimatedLength rx;
     readonly attribute SVGAnimatedLength ry;
 };
-
-SVGRectElement implements SVGExternalResourcesRequired;
index 47f0c3c..e1b5f3b 100644 (file)
@@ -53,7 +53,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGSVGElement);
 
 inline SVGSVGElement::SVGSVGElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGFitToViewBox(this)
     , m_timeContainer(SMILTimeContainer::create(*this))
 {
@@ -255,7 +254,6 @@ void SVGSVGElement::parseAttribute(const QualifiedName& name, const AtomString&
     reportAttributeParsingError(parseError, name, value);
 
     SVGGraphicsElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGFitToViewBox::parseAttribute(name, value);
     SVGZoomAndPan::parseAttribute(name, value);
 }
@@ -280,7 +278,6 @@ void SVGSVGElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 unsigned SVGSVGElement::suspendRedraw(unsigned)
index 41b1e7c..81bcb34 100644 (file)
@@ -22,7 +22,6 @@
 #pragma once
 
 #include "FloatPoint.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGGraphicsElement.h"
 #include "SVGZoomAndPan.h"
@@ -39,7 +38,7 @@ class SVGTransform;
 class SVGViewElement;
 class SVGViewSpec;
 
-class SVGSVGElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired, public SVGFitToViewBox, public SVGZoomAndPan {
+class SVGSVGElement final : public SVGGraphicsElement, public SVGFitToViewBox, public SVGZoomAndPan {
     WTF_MAKE_ISO_ALLOCATED(SVGSVGElement);
 public: // DOM
     const AtomString& contentScriptType() const;
@@ -134,7 +133,7 @@ private:
     SVGSVGElement(const QualifiedName&, Document&);
     virtual ~SVGSVGElement();
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGSVGElement, SVGGraphicsElement, SVGExternalResourcesRequired, SVGFitToViewBox>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGSVGElement, SVGGraphicsElement, SVGFitToViewBox>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
     
     void parseAttribute(const QualifiedName&, const AtomString&) override;
index 44aa519..47dad41 100644 (file)
@@ -77,6 +77,5 @@
     Element getElementById([RequiresExistingAtomString] DOMString elementId);
 };
 
-SVGSVGElement implements SVGExternalResourcesRequired;
 SVGSVGElement implements SVGFitToViewBox;
 SVGSVGElement implements SVGZoomAndPan;
index 4e16038..d248fd3 100644 (file)
@@ -32,7 +32,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGScriptElement);
 
 inline SVGScriptElement::SVGScriptElement(const QualifiedName& tagName, Document& document, bool wasInsertedByParser, bool alreadyStarted)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
     , ScriptElement(*this, wasInsertedByParser, alreadyStarted)
     , m_loadEventTimer(*this, &SVGElement::loadEventTimerFired)
@@ -49,7 +48,6 @@ void SVGScriptElement::parseAttribute(const QualifiedName& name, const AtomStrin
 {
     SVGElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGScriptElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -62,7 +60,6 @@ void SVGScriptElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 Node::InsertedIntoAncestorResult SVGScriptElement::insertedIntoAncestor(InsertionType insertionType, ContainerNode& parentOfInsertedTree)
index d038a08..7a9c7fd 100644 (file)
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGURIReference.h"
 #include "ScriptElement.h"
 #include "XLinkNames.h"
 
 namespace WebCore {
 
-class SVGScriptElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGURIReference, public ScriptElement {
+class SVGScriptElement final : public SVGElement, public SVGURIReference, public ScriptElement {
     WTF_MAKE_ISO_ALLOCATED(SVGScriptElement);
 public:
     static Ref<SVGScriptElement> create(const QualifiedName&, Document&, bool wasInsertedByParser);
@@ -40,7 +39,7 @@ public:
 private:
     SVGScriptElement(const QualifiedName&, Document&, bool wasInsertedByParser, bool alreadyStarted);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGScriptElement, SVGElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGScriptElement, SVGElement, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index ef60d42..a491ab9 100644 (file)
@@ -27,5 +27,4 @@ interface SVGScriptElement : SVGElement {
     [Reflect] attribute DOMString type;
 };
 
-SVGScriptElement implements SVGExternalResourcesRequired;
 SVGScriptElement implements SVGURIReference;
index 989d435..8457b06 100644 (file)
@@ -33,7 +33,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGSwitchElement);
 
 inline SVGSwitchElement::SVGSwitchElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     ASSERT(hasTagName(SVGNames::switchTag));
 }
index 3d14a4f..0b99dac 100644 (file)
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 
 namespace WebCore {
 
-class SVGSwitchElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired {
+class SVGSwitchElement final : public SVGGraphicsElement {
     WTF_MAKE_ISO_ALLOCATED(SVGSwitchElement);
 public:
     static Ref<SVGSwitchElement> create(const QualifiedName&, Document&);
@@ -34,7 +33,7 @@ public:
 private:
     SVGSwitchElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGSwitchElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGSwitchElement, SVGGraphicsElement>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     bool isValid() const final { return SVGTests::isValid(); }
index 9b2a1df..7e8fdc2 100644 (file)
@@ -25,5 +25,3 @@
 
 interface SVGSwitchElement : SVGGraphicsElement {
 };
-
-SVGSwitchElement implements SVGExternalResourcesRequired;
index c7cc412..3f37e1b 100644 (file)
@@ -33,7 +33,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGSymbolElement);
 
 inline SVGSymbolElement::SVGSymbolElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGFitToViewBox(this)
 {
     ASSERT(hasTagName(SVGNames::symbolTag));
@@ -47,16 +46,9 @@ Ref<SVGSymbolElement> SVGSymbolElement::create(const QualifiedName& tagName, Doc
 void SVGSymbolElement::parseAttribute(const QualifiedName& name, const AtomString& value)
 {
     SVGElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGFitToViewBox::parseAttribute(name, value);
 }
 
-void SVGSymbolElement::svgAttributeChanged(const QualifiedName& attrName)
-{
-    SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
-}
-
 bool SVGSymbolElement::selfHasRelativeLengths() const
 {
     return hasAttribute(SVGNames::viewBoxAttr);
index 1f0e3e4..befa3b4 100644 (file)
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 
 namespace WebCore {
 
-class SVGSymbolElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGFitToViewBox {
+class SVGSymbolElement final : public SVGElement, public SVGFitToViewBox {
     WTF_MAKE_ISO_ALLOCATED(SVGSymbolElement);
 public:
     static Ref<SVGSymbolElement> create(const QualifiedName&, Document&);
@@ -35,11 +34,10 @@ public:
 private:
     SVGSymbolElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGSymbolElement, SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGSymbolElement, SVGElement, SVGFitToViewBox>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) override;
-    void svgAttributeChanged(const QualifiedName&) override;
     RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
 
     bool selfHasRelativeLengths() const override;
index 4d6a678..926d55c 100644 (file)
@@ -26,5 +26,4 @@
 interface SVGSymbolElement : SVGElement {
 };
 
-SVGSymbolElement implements SVGExternalResourcesRequired;
 SVGSymbolElement implements SVGFitToViewBox;
index d59891e..b8f8522 100644 (file)
@@ -44,7 +44,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGTextContentElement);
  
 SVGTextContentElement::SVGTextContentElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
 {
     static std::once_flag onceFlag;
     std::call_once(onceFlag, [] {
@@ -175,7 +174,6 @@ void SVGTextContentElement::parseAttribute(const QualifiedName& name, const Atom
     reportAttributeParsingError(parseError, name, value);
 
     SVGGraphicsElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
 }
 
 void SVGTextContentElement::svgAttributeChanged(const QualifiedName& attrName)
@@ -192,7 +190,6 @@ void SVGTextContentElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 SVGAnimatedLength& SVGTextContentElement::textLengthAnimated()
index db0fef2..ba8eaa7 100644 (file)
@@ -21,7 +21,6 @@
 
 #pragma once
 
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 
 namespace WebCore {
@@ -62,7 +61,7 @@ template<> struct SVGPropertyTraits<SVGLengthAdjustType> {
     }
 };
 
-class SVGTextContentElement : public SVGGraphicsElement, public SVGExternalResourcesRequired {
+class SVGTextContentElement : public SVGGraphicsElement {
     WTF_MAKE_ISO_ALLOCATED(SVGTextContentElement);
 public:
     enum {
@@ -83,7 +82,7 @@ public:
 
     static SVGTextContentElement* elementFromRenderer(RenderObject*);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGTextContentElement, SVGGraphicsElement, SVGExternalResourcesRequired>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGTextContentElement, SVGGraphicsElement>;
 
     const SVGLengthValue& specifiedTextLength() const { return m_specifiedTextLength; }
     const SVGLengthValue& textLength() const { return m_textLength->currentValue(); }
index f816a3f..d17ef32 100644 (file)
@@ -42,6 +42,3 @@ interface SVGTextContentElement : SVGGraphicsElement {
     long getCharNumAtPosition(DOMPointInit point);
     [MayThrowException] void selectSubString(optional unsigned long offset = 0, optional unsigned long length = 0);
 };
-
-// FIXME: SVGTextContentElement is not supposed to implement SVGExternalResourcesRequired.
-SVGTextContentElement implements SVGExternalResourcesRequired;
index 294b326..b693739 100644 (file)
@@ -48,7 +48,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGUseElement);
 
 inline SVGUseElement::SVGUseElement(const QualifiedName& tagName, Document& document)
     : SVGGraphicsElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGURIReference(this)
     , m_loadEventTimer(*this, &SVGElement::loadEventTimerFired)
 {
@@ -90,7 +89,6 @@ void SVGUseElement::parseAttribute(const QualifiedName& name, const AtomString&
 
     reportAttributeParsingError(parseError, name, value);
 
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGGraphicsElement::parseAttribute(name, value);
     SVGURIReference::parseAttribute(name, value);
 }
@@ -176,11 +174,10 @@ void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName)
         return;
     }
 
-    if (SVGLangSpace::isKnownAttribute(attrName) || SVGExternalResourcesRequired::isKnownAttribute(attrName))
+    if (SVGLangSpace::isKnownAttribute(attrName))
         invalidateShadowTree();
 
     SVGGraphicsElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 static HashSet<AtomString> createAllowedElementSet()
index 5b5148f..57019c7 100644 (file)
@@ -23,7 +23,6 @@
 
 #include "CachedResourceHandle.h"
 #include "CachedSVGDocumentClient.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGGraphicsElement.h"
 #include "SVGURIReference.h"
 
@@ -32,7 +31,7 @@ namespace WebCore {
 class CachedSVGDocument;
 class SVGGElement;
 
-class SVGUseElement final : public SVGGraphicsElement, public SVGExternalResourcesRequired, public SVGURIReference, private CachedSVGDocumentClient {
+class SVGUseElement final : public SVGGraphicsElement, public SVGURIReference, private CachedSVGDocumentClient {
     WTF_MAKE_ISO_ALLOCATED(SVGUseElement);
 public:
     static Ref<SVGUseElement> create(const QualifiedName&, Document&);
@@ -62,7 +61,7 @@ private:
     void removedFromAncestor(RemovalType, ContainerNode&) override;
     void buildPendingResource() override;
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGUseElement, SVGGraphicsElement, SVGExternalResourcesRequired, SVGURIReference>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGUseElement, SVGGraphicsElement, SVGURIReference>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) override;
index b8e9eaf..54de74a 100644 (file)
@@ -30,5 +30,4 @@ interface SVGUseElement : SVGGraphicsElement {
     readonly attribute SVGAnimatedLength height;
 };
 
-SVGUseElement implements SVGExternalResourcesRequired;
 SVGUseElement implements SVGURIReference;
index 662f065..83eada3 100644 (file)
@@ -34,7 +34,6 @@ WTF_MAKE_ISO_ALLOCATED_IMPL(SVGViewElement);
 
 inline SVGViewElement::SVGViewElement(const QualifiedName& tagName, Document& document)
     : SVGElement(tagName, document)
-    , SVGExternalResourcesRequired(this)
     , SVGFitToViewBox(this)
 {
     ASSERT(hasTagName(SVGNames::viewTag));
@@ -58,7 +57,6 @@ void SVGViewElement::parseAttribute(const QualifiedName& name, const AtomString&
     }
 
     SVGElement::parseAttribute(name, value);
-    SVGExternalResourcesRequired::parseAttribute(name, value);
     SVGFitToViewBox::parseAttribute(name, value);
     SVGZoomAndPan::parseAttribute(name, value);
 }
@@ -80,7 +78,6 @@ void SVGViewElement::svgAttributeChanged(const QualifiedName& attrName)
     }
 
     SVGElement::svgAttributeChanged(attrName);
-    SVGExternalResourcesRequired::svgAttributeChanged(attrName);
 }
 
 }
index fe37e91..8721853 100644 (file)
@@ -22,7 +22,6 @@
 #pragma once
 
 #include "SVGElement.h"
-#include "SVGExternalResourcesRequired.h"
 #include "SVGFitToViewBox.h"
 #include "SVGSVGElement.h"
 #include "SVGStringList.h"
@@ -30,7 +29,7 @@
 
 namespace WebCore {
 
-class SVGViewElement final : public SVGElement, public SVGExternalResourcesRequired, public SVGFitToViewBox, public SVGZoomAndPan {
+class SVGViewElement final : public SVGElement, public SVGFitToViewBox, public SVGZoomAndPan {
     WTF_MAKE_ISO_ALLOCATED(SVGViewElement);
 public:
     static Ref<SVGViewElement> create(const QualifiedName&, Document&);
@@ -47,7 +46,7 @@ public:
 private:
     SVGViewElement(const QualifiedName&, Document&);
 
-    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGViewElement, SVGElement, SVGExternalResourcesRequired, SVGFitToViewBox>;
+    using PropertyRegistry = SVGPropertyOwnerRegistry<SVGViewElement, SVGElement, SVGFitToViewBox>;
     const SVGPropertyRegistry& propertyRegistry() const final { return m_propertyRegistry; }
 
     void parseAttribute(const QualifiedName&, const AtomString&) final;
index 5f7aba3..eb32a47 100644 (file)
@@ -27,6 +27,5 @@ interface SVGViewElement : SVGElement {
     [SameObject] readonly attribute SVGStringList viewTarget;
 };
 
-SVGViewElement implements SVGExternalResourcesRequired;
 SVGViewElement implements SVGFitToViewBox;
 SVGViewElement implements SVGZoomAndPan;