+2015-02-08 Darin Adler <darin@apple.com>
+
+ Remove the SVG instance tree
+ https://bugs.webkit.org/show_bug.cgi?id=140602
+
+ Reviewed by Dean Jackson.
+
+ Last step: Remove SVGElementInstance class itself.
+
+ * js/dom/global-constructors-attributes-expected.txt: Removed SVGElementInstance.
+ * platform/efl/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/gtk/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/ios-sim-deprecated/fast/dom/Window/window-property-descriptors-expected.txt: Ditto.
+ * platform/ios-sim-deprecated/fast/js/global-constructors-expected.txt: Ditto.
+ * platform/ios-sim-deprecated/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/mac/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/win/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * svg/custom/global-constructors-expected.txt: Ditto.
+ * svg/custom/script-tests/global-constructors.js: Ditto.
+ * svg/dom/svg2-inheritance-expected.txt: Ditto.
+ * svg/dom/svg2-inheritance.html: Ditto.
+
2015-02-08 Darin Adler <darin@apple.com>
Make SVGUseElement work without creating any SVGElementInstance objects
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGDescElement') is 'object'
PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGDocument') is 'object'
PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGElement') is 'object'
-PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGElementInstance') is 'object'
PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGEllipseElement') is 'object'
PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGException') is 'object'
PASS typeof Object.getOwnPropertyDescriptor(window, 'SVGFontElement') is 'object'
PASS SVGDescElement.toString() is '[object SVGDescElementConstructor]'
PASS SVGDocument.toString() is '[object SVGDocumentConstructor]'
PASS SVGElement.toString() is '[object SVGElementConstructor]'
-PASS SVGElementInstance.toString() is '[object SVGElementInstanceConstructor]'
PASS SVGEllipseElement.toString() is '[object SVGEllipseElementConstructor]'
PASS SVGException.toString() is '[object SVGExceptionConstructor]'
PASS SVGFEBlendElement.toString() is '[object SVGFEBlendElementConstructor]'
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGElement').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').value is SVGElementInstance
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SVGElementInstance').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').value is SVGEllipseElement
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SVGEllipseElement').hasOwnProperty('set') is false
PASS SVGTitleElement.toString() is '[object SVGTitleElementConstructor]'
PASS SVGSymbolElement.toString() is '[object SVGSymbolElementConstructor]'
PASS SVGUseElement.toString() is '[object SVGUseElementConstructor]'
-PASS SVGElementInstance.toString() is '[object SVGElementInstanceConstructor]'
PASS SVGImageElement.toString() is '[object SVGImageElementConstructor]'
PASS SVGSwitchElement.toString() is '[object SVGSwitchElementConstructor]'
PASS SVGStyleElement.toString() is '[object SVGStyleElementConstructor]'
shouldBeDefined("SVGTitleElement");
shouldBeDefined("SVGSymbolElement");
shouldBeDefined("SVGUseElement");
-shouldBeDefined("SVGElementInstance");
shouldBeDefined("SVGImageElement");
shouldBeDefined("SVGSwitchElement");
shouldBeDefined("SVGStyleElement");
PASS SVGDefsElement inherits SVGGraphicsElement
PASS SVGDescElement inherits SVGElement
PASS SVGElement inherits Element
-FAIL SVGElementInstance should inherit EventTarget but got EventTarget instead
FAIL SVGEllipseElement should inherit SVGGeometryElement but got SVGGraphicsElement instead
PASS SVGFontElement inherits SVGElement
PASS SVGFontFaceElement inherits SVGElement
checkParent("SVGDefsElement", "SVGGraphicsElement");
checkParent("SVGDescElement", "SVGElement");
checkParent("SVGElement", "Element");
-checkParent("SVGElementInstance", "EventTarget");
checkParent("SVGEllipseElement", "SVGGeometryElement");
checkParent("SVGFontElement", "SVGElement");
checkParent("SVGFontFaceElement", "SVGElement");
svg/SVGDescElement.idl
svg/SVGDocument.idl
svg/SVGElement.idl
- svg/SVGElementInstance.idl
svg/SVGEllipseElement.idl
svg/SVGException.idl
svg/SVGExternalResourcesRequired.idl
bindings/js/JSRequestAnimationFrameCallbackCustom.cpp
bindings/js/JSSQLResultSetRowListCustom.cpp
bindings/js/JSSQLTransactionCustom.cpp
- bindings/js/JSSVGElementInstanceCustom.cpp
bindings/js/JSSVGLengthCustom.cpp
bindings/js/JSSVGPathSegCustom.cpp
bindings/js/JSStorageCustom.cpp
bindings/js/JSStyleSheetCustom.cpp
bindings/js/JSStyleSheetListCustom.cpp
bindings/js/JSSubtleCryptoCustom.cpp
- bindings/js/JSSVGElementInstanceCustom.cpp
bindings/js/JSSVGLengthCustom.cpp
bindings/js/JSSVGPathSegCustom.cpp
bindings/js/JSTextCustom.cpp
svg/SVGDocument.cpp
svg/SVGDocumentExtensions.cpp
svg/SVGElement.cpp
- svg/SVGElementInstance.cpp
svg/SVGEllipseElement.cpp
svg/SVGException.cpp
svg/SVGExternalResourcesRequired.cpp
+2015-02-08 Darin Adler <darin@apple.com>
+
+ Remove the SVG instance tree
+ https://bugs.webkit.org/show_bug.cgi?id=140602
+
+ Reviewed by Dean Jackson.
+
+ * CMakeLists.txt: Removed SVGElementInstance source files.
+ * DerivedSources.cpp: Ditto.
+ * DerivedSources.make: Ditto.
+ * WebCore.vcxproj/WebCore.vcxproj: Ditto.
+ * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
+ * WebCore.xcodeproj/project.pbxproj: Ditto.
+ * bindings/js/JSBindingsAllInOne.cpp: Ditto.
+
+ * bindings/js/JSEventListener.cpp:
+ (WebCore::forwardsEventListeners): Deleted. Only returned true for JSSVGElementInstance.
+ (WebCore::correspondingElementWrapper): Deleted. Only used for JSSVGElementInstance.
+ (WebCore::createJSEventListenerForAttribute): Deleted. Argument type was JSSVGElementInstance.
+ (WebCore::createJSEventListenerForAdd): Removed most of the code; later we can delete this entirely.
+
+ * bindings/js/JSEventListener.h: Removed the overload of createJSEventListenerForAttribute
+ that takes a JSSVGElementInstance.
+
+ * bindings/js/JSSVGElementInstanceCustom.cpp: Removed.
+
+ * dom/ContainerNodeAlgorithms.h: Updated comment to reflect the fact that
+ this code is really now only used for ContainerNode and no longer needs to
+ exist in a generic form.
+
+ * dom/EventTarget.h: Removed forward declaration of SVGElementInstance.
+ * svg/SVGElement.h: Ditto.
+
+ * dom/EventTargetFactory.in: Removed SVGElementInstance.
+
+ * svg/SVGElementInstance.cpp: Removed.
+ * svg/SVGElementInstance.h: Removed.
+ * svg/SVGElementInstance.idl: Removed.
+
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::insertedInto): Removed obsolete comment.
+ (WebCore::SVGUseElement::instanceTreeIsLoading): Deleted. Unused
+ function that I forgot to delete in my last patch. It also had a
+ glaring mistake, a missing "return" before the recursive call to
+ itself that would cause it to return false when it should return true.
+
+ * svg/SVGUseElement.h: Removed instanceTreeIsLoading.
+
+ * dom/EventDispatcher.cpp: Removed include of SVGElementInstance.h.
+ * page/EventHandler.cpp: Ditto.
+ * rendering/svg/RenderSVGViewportContainer.cpp: Ditto.
+ * svg/SVGAElement.cpp: Ditto.
+ * svg/SVGAllInOne.cpp: Ditto.
+ * svg/SVGAnimateMotionElement.cpp: Ditto.
+ * svg/SVGAnimatedTypeAnimator.h: Ditto.
+ * svg/SVGAnimationElement.cpp: Ditto.
+ * svg/SVGCircleElement.cpp: Ditto.
+ * svg/SVGClipPathElement.cpp: Ditto.
+ * svg/SVGComponentTransferFunctionElement.cpp: Ditto.
+ * svg/SVGCursorElement.cpp: Ditto.
+ * svg/SVGElement.cpp: Ditto.
+ * svg/SVGEllipseElement.cpp: Ditto.
+ * svg/SVGFEBlendElement.cpp: Ditto.
+ * svg/SVGFEColorMatrixElement.cpp: Ditto.
+ * svg/SVGFECompositeElement.cpp: Ditto.
+ * svg/SVGFEConvolveMatrixElement.cpp: Ditto.
+ * svg/SVGFEDiffuseLightingElement.cpp: Ditto.
+ * svg/SVGFEDisplacementMapElement.cpp: Ditto.
+ * svg/SVGFEDropShadowElement.cpp: Ditto.
+ * svg/SVGFEGaussianBlurElement.cpp: Ditto.
+ * svg/SVGFEImageElement.cpp: Ditto.
+ * svg/SVGFELightElement.cpp: Ditto.
+ * svg/SVGFEMergeNodeElement.cpp: Ditto.
+ * svg/SVGFEMorphologyElement.cpp: Ditto.
+ * svg/SVGFEOffsetElement.cpp: Ditto.
+ * svg/SVGFESpecularLightingElement.cpp: Ditto.
+ * svg/SVGFETileElement.cpp: Ditto.
+ * svg/SVGFETurbulenceElement.cpp: Ditto.
+ * svg/SVGFilterElement.cpp: Ditto.
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp: Ditto.
+ * svg/SVGForeignObjectElement.cpp: Ditto.
+ * svg/SVGGElement.cpp: Ditto.
+ * svg/SVGGradientElement.cpp: Ditto.
+ * svg/SVGGraphicsElement.cpp: Ditto.
+ * svg/SVGImageElement.cpp: Ditto.
+ * svg/SVGLineElement.cpp: Ditto.
+ * svg/SVGLinearGradientElement.cpp: Ditto.
+ * svg/SVGMarkerElement.cpp: Ditto.
+ * svg/SVGMaskElement.cpp: Ditto.
+ * svg/SVGPathElement.cpp: Ditto.
+ * svg/SVGPatternElement.cpp: Ditto.
+ * svg/SVGPolyElement.cpp: Ditto.
+ * svg/SVGRadialGradientElement.cpp: Ditto.
+ * svg/SVGRectElement.cpp: Ditto.
+ * svg/SVGSVGElement.cpp: Ditto.
+ * svg/SVGScriptElement.cpp: Ditto.
+ * svg/SVGStopElement.cpp: Ditto.
+ * svg/SVGSymbolElement.cpp: Ditto.
+ * svg/SVGTRefElement.cpp: Ditto.
+ * svg/SVGTextContentElement.cpp: Ditto.
+ * svg/SVGTextElement.cpp: Ditto.
+ * svg/SVGTextPathElement.cpp: Ditto.
+ * svg/SVGTextPositioningElement.cpp: Ditto.
+
2015-02-07 Dean Jackson <dino@apple.com>
Tweak inline playback controls to match system spec
#include "JSSVGDescElement.cpp"
#include "JSSVGDocument.cpp"
#include "JSSVGElement.cpp"
-#include "JSSVGElementInstance.cpp"
#include "JSSVGEllipseElement.cpp"
#include "JSSVGException.cpp"
#include "JSSVGFEBlendElement.cpp"
$(WebCore)/svg/SVGDescElement.idl \
$(WebCore)/svg/SVGDocument.idl \
$(WebCore)/svg/SVGElement.idl \
- $(WebCore)/svg/SVGElementInstance.idl \
$(WebCore)/svg/SVGEllipseElement.idl \
$(WebCore)/svg/SVGException.idl \
$(WebCore)/svg/SVGExternalResourcesRequired.idl \
space :=
space +=
-$(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(PLATFORM_FEATURE_DEFINES)
+$(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(PLATFORM_FEATURE_DEFINES) DerivedSources.make
printf "$(subst $(space),,$(patsubst %,%\n,$(BINDING_IDLS)))" > $(IDL_FILES_TMP)
$(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --windowConstructorsFile $(WINDOW_CONSTRUCTORS_FILE) --workerGlobalScopeConstructorsFile $(WORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --dedicatedWorkerGlobalScopeConstructorsFile $(DEDICATEDWORKERGLOBALSCOPE_CONSTRUCTORS_FILE) --supplementalMakefileDeps $@
rm -f $(IDL_FILES_TMP)
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementInstance.cpp">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
- </ClCompile>
<ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementWrapperFactory.cpp" />
<ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGEllipseElement.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
</ClCompile>
- <ClCompile Include="..\bindings\js\JSSVGElementInstanceCustom.cpp">
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='DebugSuffix|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release_WinCairo|x64'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|Win32'">true</ExcludedFromBuild>
- <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Production|x64'">true</ExcludedFromBuild>
- </ClCompile>
<ClCompile Include="..\bindings\js\JSSVGLengthCustom.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGDescElement.h" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGDocument.h" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElement.h" />
- <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementInstance.h" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementWrapperFactory.h" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGEllipseElement.h" />
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGException.h" />
<ClInclude Include="..\svg\SVGDocument.h" />
<ClInclude Include="..\svg\SVGDocumentExtensions.h" />
<ClInclude Include="..\svg\SVGElement.h" />
- <ClInclude Include="..\svg\SVGElementInstance.h" />
<ClInclude Include="..\svg\SVGElementRareData.h" />
<ClInclude Include="..\svg\SVGEllipseElement.h" />
<ClInclude Include="..\svg\SVGException.h" />
<ClCompile Include="..\bindings\js\JSStyleSheetListCustom.cpp">
<Filter>bindings\js</Filter>
</ClCompile>
- <ClCompile Include="..\bindings\js\JSSVGElementInstanceCustom.cpp">
- <Filter>bindings\js</Filter>
- </ClCompile>
<ClCompile Include="..\bindings\js\JSSVGLengthCustom.cpp">
<Filter>bindings\js</Filter>
</ClCompile>
<ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElement.cpp">
<Filter>DerivedSources</Filter>
</ClCompile>
- <ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementInstance.cpp">
- <Filter>DerivedSources</Filter>
- </ClCompile>
<ClCompile Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementWrapperFactory.cpp">
<Filter>DerivedSources</Filter>
</ClCompile>
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElement.h">
<Filter>DerivedSources</Filter>
</ClInclude>
- <ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementInstance.h">
- <Filter>DerivedSources</Filter>
- </ClInclude>
<ClInclude Include="$(ConfigurationBuildDir)\obj$(PlatformArchitecture)\$(ProjectName)\DerivedSources\JSSVGElementWrapperFactory.h">
<Filter>DerivedSources</Filter>
</ClInclude>
<ClInclude Include="..\svg\SVGElement.h">
<Filter>svg</Filter>
</ClInclude>
- <ClInclude Include="..\svg\SVGElementInstance.h">
- <Filter>svg</Filter>
- </ClInclude>
<ClInclude Include="..\svg\SVGElementRareData.h">
<Filter>svg</Filter>
</ClInclude>
089A8E07128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h in Headers */ = {isa = PBXBuildFile; fileRef = 089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */; };
08A484770E5272C500C3FE76 /* ScriptElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08A484750E5272C500C3FE76 /* ScriptElement.cpp */; };
08A484780E5272C500C3FE76 /* ScriptElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08A484760E5272C500C3FE76 /* ScriptElement.h */; };
- 08A48A6E0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */; };
08B35B13127B6A7C005314DD /* SVGAnimatedNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */; settings = {ATTRIBUTES = (Private, ); }; };
08B35B17127B6A88005314DD /* SVGAnimatedNumberList.h in Headers */ = {isa = PBXBuildFile; fileRef = 08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */; settings = {ATTRIBUTES = (Private, ); }; };
08B5F25513B5FFF2002959EC /* SVGAnimatedPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0863951313B5FE5700BB344D /* SVGAnimatedPath.cpp */; };
B22279B40D00BF220071B782 /* SVGDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = B222781E0D00BF1F0071B782 /* SVGDocument.h */; settings = {ATTRIBUTES = (Private, ); }; };
B22279B60D00BF220071B782 /* SVGElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278200D00BF1F0071B782 /* SVGElement.cpp */; };
B22279B70D00BF220071B782 /* SVGElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278210D00BF1F0071B782 /* SVGElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
- B22279B90D00BF220071B782 /* SVGElementInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278230D00BF1F0071B782 /* SVGElementInstance.cpp */; };
- B22279BA0D00BF220071B782 /* SVGElementInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = B22278240D00BF1F0071B782 /* SVGElementInstance.h */; };
B22279BF0D00BF220071B782 /* SVGEllipseElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B22278290D00BF1F0071B782 /* SVGEllipseElement.cpp */; };
B22279C00D00BF220071B782 /* SVGEllipseElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B222782A0D00BF1F0071B782 /* SVGEllipseElement.h */; };
B22279C20D00BF220071B782 /* SVGException.h in Headers */ = {isa = PBXBuildFile; fileRef = B222782C0D00BF1F0071B782 /* SVGException.h */; };
B2C3DA6B0D006CD600EF6F26 /* FontSelector.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C3DA5A0D006CD600EF6F26 /* FontSelector.h */; settings = {ATTRIBUTES = (Private, ); }; };
B2C3DA6C0D006CD600EF6F26 /* GlyphBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = B2C3DA5B0D006CD600EF6F26 /* GlyphBuffer.h */; settings = {ATTRIBUTES = (Private, ); }; };
B2C96D8D0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */; };
- B2CB92420B5BD966009BAA78 /* JSSVGElementInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2CB923B0B5BD941009BAA78 /* JSSVGElementInstance.cpp */; };
- B2CB92440B5BD970009BAA78 /* JSSVGElementInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = B2CB923C0B5BD941009BAA78 /* JSSVGElementInstance.h */; };
B2D3DA640D006CD600EF6F27 /* OpenTypeMathData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B2D3DA530D006CD600EF6F27 /* OpenTypeMathData.cpp */; };
B2D3DA650D006CD600EF6F27 /* OpenTypeMathData.h in Headers */ = {isa = PBXBuildFile; fileRef = B2D3DA540D006CD600EF6F27 /* OpenTypeMathData.h */; settings = {ATTRIBUTES = (Private, ); }; };
B2D3EA650D006CD600EF6F28 /* OpenTypeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = B2D3EA540D006CD600EF6F28 /* OpenTypeTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
089A8E06128D8B3D00E7A534 /* SVGAnimatedPathSegListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedPathSegListPropertyTearOff.h; sourceTree = "<group>"; };
08A484750E5272C500C3FE76 /* ScriptElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptElement.cpp; sourceTree = "<group>"; };
08A484760E5272C500C3FE76 /* ScriptElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptElement.h; sourceTree = "<group>"; };
- 08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGElementInstanceCustom.cpp; sourceTree = "<group>"; };
08B35B12127B6A7C005314DD /* SVGAnimatedNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumber.h; sourceTree = "<group>"; };
08B35B16127B6A88005314DD /* SVGAnimatedNumberList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedNumberList.h; sourceTree = "<group>"; };
08C7136D128956A3001B107E /* SVGTransformListPropertyTearOff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGTransformListPropertyTearOff.h; sourceTree = "<group>"; };
B22278200D00BF1F0071B782 /* SVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGElement.cpp; sourceTree = "<group>"; };
B22278210D00BF1F0071B782 /* SVGElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGElement.h; sourceTree = "<group>"; };
B22278220D00BF1F0071B782 /* SVGElement.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGElement.idl; sourceTree = "<group>"; };
- B22278230D00BF1F0071B782 /* SVGElementInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGElementInstance.cpp; sourceTree = "<group>"; };
- B22278240D00BF1F0071B782 /* SVGElementInstance.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGElementInstance.h; sourceTree = "<group>"; };
- B22278250D00BF1F0071B782 /* SVGElementInstance.idl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SVGElementInstance.idl; sourceTree = "<group>"; };
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>"; };
B2C3DA5A0D006CD600EF6F26 /* FontSelector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FontSelector.h; sourceTree = "<group>"; };
B2C3DA5B0D006CD600EF6F26 /* GlyphBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GlyphBuffer.h; sourceTree = "<group>"; };
B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGPathSegCustom.cpp; sourceTree = "<group>"; };
- B2CB923B0B5BD941009BAA78 /* JSSVGElementInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGElementInstance.cpp; sourceTree = "<group>"; };
- B2CB923C0B5BD941009BAA78 /* JSSVGElementInstance.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGElementInstance.h; sourceTree = "<group>"; };
B2D3DA530D006CD600EF6F27 /* OpenTypeMathData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = OpenTypeMathData.cpp; sourceTree = "<group>"; };
B2D3DA540D006CD600EF6F27 /* OpenTypeMathData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = OpenTypeMathData.h; sourceTree = "<group>"; };
B2D3EA540D006CD600EF6F28 /* OpenTypeTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = OpenTypeTypes.h; sourceTree = "<group>"; };
B2FA3C7F0AB75A6E000E5AC4 /* JSSVGDocument.h */,
B222F69A0AB771B80022EFAD /* JSSVGElement.cpp */,
B222F69B0AB771B80022EFAD /* JSSVGElement.h */,
- B2CB923B0B5BD941009BAA78 /* JSSVGElementInstance.cpp */,
- B2CB923C0B5BD941009BAA78 /* JSSVGElementInstance.h */,
B2FA3C800AB75A6E000E5AC4 /* JSSVGEllipseElement.cpp */,
B2FA3C810AB75A6E000E5AC4 /* JSSVGEllipseElement.h */,
B266CD4B0C3AEC6500EB08D2 /* JSSVGException.cpp */,
B22278200D00BF1F0071B782 /* SVGElement.cpp */,
B22278210D00BF1F0071B782 /* SVGElement.h */,
B22278220D00BF1F0071B782 /* SVGElement.idl */,
- B22278230D00BF1F0071B782 /* SVGElementInstance.cpp */,
- B22278240D00BF1F0071B782 /* SVGElementInstance.h */,
- B22278250D00BF1F0071B782 /* SVGElementInstance.idl */,
081AA8D91111237E002AB06E /* SVGElementRareData.h */,
B22278290D00BF1F0071B782 /* SVGEllipseElement.cpp */,
B222782A0D00BF1F0071B782 /* SVGEllipseElement.h */,
AD726FEC16D9F4B9003A4E6D /* JSStyleSheetCustom.h */,
A84EBD770CB8C89200079609 /* JSStyleSheetListCustom.cpp */,
E1FF8F661807460800132674 /* JSSubtleCryptoCustom.cpp */,
- 08A48A6D0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp */,
08E4FE450E2BD41400F4CAE0 /* JSSVGLengthCustom.cpp */,
B2C96D8C0B3AF2B7005E80EC /* JSSVGPathSegCustom.cpp */,
1A2C40AA0DEB55AA005AF19E /* JSTextCustom.cpp */,
B2FA3D650AB75A6F000E5AC4 /* JSSVGDescElement.h in Headers */,
B2FA3D670AB75A6F000E5AC4 /* JSSVGDocument.h in Headers */,
B222F69D0AB771B80022EFAD /* JSSVGElement.h in Headers */,
- B2CB92440B5BD970009BAA78 /* JSSVGElementInstance.h in Headers */,
8542A7990AE5C94400DF58DF /* JSSVGElementWrapperFactory.h in Headers */,
B2FA3D690AB75A6F000E5AC4 /* JSSVGEllipseElement.h in Headers */,
B266CD4E0C3AEC6500EB08D2 /* JSSVGException.h in Headers */,
B28C6A280D00C44800334AA4 /* SVGDocumentExtensions.h in Headers */,
B22279B70D00BF220071B782 /* SVGElement.h in Headers */,
656581FE09D1508D000E61D7 /* SVGElementFactory.h in Headers */,
- B22279BA0D00BF220071B782 /* SVGElementInstance.h in Headers */,
081AA8DA1111237E002AB06E /* SVGElementRareData.h in Headers */,
B562DB6117D3CD660010AF96 /* SVGElementTypeHelpers.h in Headers */,
B22279C00D00BF220071B782 /* SVGEllipseElement.h in Headers */,
B2FA3D640AB75A6F000E5AC4 /* JSSVGDescElement.cpp in Sources */,
B2FA3D660AB75A6F000E5AC4 /* JSSVGDocument.cpp in Sources */,
B222F69C0AB771B80022EFAD /* JSSVGElement.cpp in Sources */,
- B2CB92420B5BD966009BAA78 /* JSSVGElementInstance.cpp in Sources */,
- 08A48A6E0E86CF6D00E225DD /* JSSVGElementInstanceCustom.cpp in Sources */,
8542A79A0AE5C94400DF58DF /* JSSVGElementWrapperFactory.cpp in Sources */,
B2FA3D680AB75A6F000E5AC4 /* JSSVGEllipseElement.cpp in Sources */,
CDE8B5EC1A69777300B4B66A /* CDMPrivateClearKey.cpp in Sources */,
B28C6A270D00C44800334AA4 /* SVGDocumentExtensions.cpp in Sources */,
B22279B60D00BF220071B782 /* SVGElement.cpp in Sources */,
A833C8520A2CF52800D57664 /* SVGElementFactory.cpp in Sources */,
- B22279B90D00BF220071B782 /* SVGElementInstance.cpp in Sources */,
B22279BF0D00BF220071B782 /* SVGEllipseElement.cpp in Sources */,
978D07CA145A10160096908D /* SVGException.cpp in Sources */,
B22279C40D00BF220071B782 /* SVGExternalResourcesRequired.cpp in Sources */,
#include "JSRequestAnimationFrameCallbackCustom.cpp"
#include "JSSQLResultSetRowListCustom.cpp"
#include "JSSQLTransactionCustom.cpp"
-#include "JSSVGElementInstanceCustom.cpp"
#include "JSSVGLengthCustom.cpp"
#include "JSSVGPathSegCustom.cpp"
#include "JSStorageCustom.cpp"
#include "JSEventTarget.h"
#include "JSMainThreadExecState.h"
#include "JSMainThreadExecStateInstrumentation.h"
-#include "JSSVGElementInstance.h"
#include "ScriptController.h"
#include "WorkerGlobalScope.h"
#include <runtime/ExceptionHelpers.h>
return false;
}
-// SVGElementInstance forwards listeners to its corresponding element, so the listeners are
-// protected by the wrapper of the corresponding element, not the element instance's wrapper.
-
-bool forwardsEventListeners(JSC::JSObject& object)
-{
- if (object.classInfo() == JSSVGElementInstance::info())
- return true;
- ASSERT(!object.inherits(JSSVGElementInstance::info()));
- return false;
-}
-
-static JSC::JSObject& correspondingElementWrapper(JSC::ExecState& state, JSC::JSObject& wrapper)
-{
- JSSVGElementInstance& castedWrapper = *jsCast<JSSVGElementInstance*>(&wrapper);
- return *asObject(toJS(&state, castedWrapper.globalObject(), *castedWrapper.impl().correspondingElement()));
-}
-
-RefPtr<JSEventListener> createJSEventListenerForAttribute(JSC::ExecState& state, JSC::JSValue listener, JSSVGElementInstance& wrapper)
-{
- return createJSEventListenerForAttribute(state, listener, correspondingElementWrapper(state, wrapper));
-}
-
Ref<JSEventListener> createJSEventListenerForAdd(JSC::ExecState& state, JSC::JSObject& listener, JSC::JSObject& wrapper)
{
- JSC::JSObject& actualWrapper = forwardsEventListeners(wrapper) ? correspondingElementWrapper(state, wrapper) : wrapper;
- ASSERT(!forwardsEventListeners(actualWrapper));
- return JSEventListener::create(&listener, &actualWrapper, false, currentWorld(&state));
+ // FIXME: This abstraction is no longer needed. It was part of support for SVGElementInstance.
+ // We should remove it and simplify the bindings generation scripts.
+ return JSEventListener::create(&listener, &wrapper, false, currentWorld(&state));
}
} // namespace WebCore
namespace WebCore {
class JSDOMGlobalObject;
- class JSSVGElementInstance;
class JSEventListener : public EventListener {
public:
// For "onXXX" event attributes.
RefPtr<JSEventListener> createJSEventListenerForAttribute(JSC::ExecState&, JSC::JSValue listener, JSC::JSObject& wrapper);
- RefPtr<JSEventListener> createJSEventListenerForAttribute(JSC::ExecState&, JSC::JSValue listener, JSSVGElementInstance& wrapper);
Ref<JSEventListener> createJSEventListenerForAdd(JSC::ExecState&, JSC::JSObject& listener, JSC::JSObject& wrapper);
Ref<JSEventListener> createJSEventListenerForRemove(JSC::ExecState&, JSC::JSObject& listener, JSC::JSObject& wrapper);
+++ /dev/null
-/*
- * Copyright (C) 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2009 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.
- */
-
-#include "config.h"
-#include "JSSVGElementInstance.h"
-
-#include "JSNodeCustom.h"
-
-namespace WebCore {
-
-void JSSVGElementInstance::visitAdditionalChildren(JSC::SlotVisitor& visitor)
-{
- visitor.addOpaqueRoot(root(impl().correspondingElement()));
-}
-
-} // namespace WebCore
}
-// Helper functions for TreeShared-derived classes, which have a 'Node' style interface
-// This applies to 'ContainerNode' and 'SVGElementInstance'
+// This no longer needs to be generic. It's only used for Node and ContainerNode now.
template<class GenericNode, class GenericNodeContainer>
inline void removeDetachedChildrenInContainer(GenericNodeContainer& container)
{
#include "PseudoElement.h"
#include "ScopedEventQueue.h"
#include "ShadowRoot.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGUseElement.h"
#include "TouchEvent.h"
class MessagePort;
class Node;
class Notification;
- class SVGElementInstance;
class ScriptExecutionContext;
class TextTrack;
class TextTrackCue;
SourceBuffer conditional=MEDIA_SOURCE
SourceBufferList conditional=MEDIA_SOURCE
SpeechSynthesisUtterance conditional=SPEECH_SYNTHESIS
-SVGElementInstance
TextTrack conditional=VIDEO_TRACK
TextTrackCue conditional=VIDEO_TRACK
TextTrackList conditional=VIDEO_TRACK
#include "RenderWidget.h"
#include "RuntimeApplicationChecks.h"
#include "SVGDocument.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGUseElement.h"
#include "ScrollAnimator.h"
#include "GraphicsContext.h"
#include "RenderView.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGSVGElement.h"
#include "SVGUseElement.h"
#include "RenderSVGText.h"
#include "RenderSVGTransformableContainer.h"
#include "ResourceRequest.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGSMILElement.h"
#include "XLinkNames.h"
#include "SVGDocument.cpp"
#include "SVGDocumentExtensions.cpp"
#include "SVGElement.cpp"
-#include "SVGElementInstance.cpp"
#include "SVGEllipseElement.cpp"
#include "SVGException.cpp"
#include "SVGExternalResourcesRequired.cpp"
#include "ElementIterator.h"
#include "RenderObject.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGImageElement.h"
#include "SVGMPathElement.h"
#include "SVGNames.h"
#include "SVGAnimatedProperty.h"
#include "SVGAnimatedType.h"
-#include "SVGElementInstance.h"
#include <wtf/StdLibExtras.h>
namespace WebCore {
#include "RenderObject.h"
#include "SVGAnimateElement.h"
#include "SVGElement.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include <wtf/MathExtras.h>
#include "RenderSVGEllipse.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGException.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include "Attribute.h"
#include "Document.h"
#include "RenderSVGResourceClipper.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGTransformList.h"
#include "StyleResolver.h"
#include "SVGComponentTransferFunctionElement.h"
#include "Attribute.h"
-#include "SVGElementInstance.h"
#include "SVGFEComponentTransferElement.h"
#include "SVGNames.h"
#include "SVGNumberList.h"
#include "Attr.h"
#include "Document.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "XLinkNames.h"
#include <wtf/NeverDestroyed.h>
#include "RenderSVGResourceMasker.h"
#include "SVGCursorElement.h"
#include "SVGDocumentExtensions.h"
-#include "SVGElementInstance.h"
#include "SVGElementRareData.h"
#include "SVGGraphicsElement.h"
#include "SVGImageElement.h"
class SVGAttributeToPropertyMap;
class SVGCursorElement;
class SVGDocumentExtensions;
-class SVGElementInstance;
class SVGElementRareData;
class SVGSVGElement;
class SVGUseElement;
class InstanceInvalidationGuard;
private:
- friend class SVGElementInstance;
-
virtual RenderStyle* computedStyle(PseudoId = NOPSEUDO) override final;
virtual bool willRecalcStyle(Style::Change) override;
+++ /dev/null
-/*
- * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) Research In Motion Limited 2010. All rights reserved.
- * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. 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 "SVGElementInstance.h"
-
-#include "ContainerNodeAlgorithms.h"
-#include "Event.h"
-#include "EventException.h"
-#include "EventListener.h"
-#include "EventNames.h"
-#include "FrameView.h"
-#include "SVGDocumentExtensions.h"
-#include "SVGElement.h"
-#include "SVGUseElement.h"
-
-#include <wtf/RefCountedLeakCounter.h>
-
-namespace WebCore {
-
-DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, instanceCounter, ("WebCoreSVGElementInstance"));
-
-// EventTarget API
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), abort);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), blur);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), change);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), click);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), contextmenu);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), dblclick);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), error);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), focus);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), input);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), keydown);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), keypress);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), keyup);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), load);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mousedown);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mouseenter);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mouseleave);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mousemove);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mouseout);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mouseover);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mouseup);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), mousewheel);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), wheel);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), beforecut);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), cut);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), beforecopy);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), copy);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), beforepaste);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), paste);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), dragenter);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), dragover);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), dragleave);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), drop);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), dragstart);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), drag);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), dragend);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), reset);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), resize);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), scroll);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), search);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), select);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), selectstart);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), submit);
-DEFINE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(SVGElementInstance, correspondingElement(), unload);
-
-PassRefPtr<SVGElementInstance> SVGElementInstance::create(SVGUseElement* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtr<SVGElement> originalElement)
-{
- return adoptRef(new SVGElementInstance(correspondingUseElement, directUseElement, originalElement));
-}
-
-SVGElementInstance::SVGElementInstance(SVGUseElement* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtr<SVGElement> originalElement)
- : m_parentInstance(0)
- , m_correspondingUseElement(correspondingUseElement)
- , m_directUseElement(directUseElement)
- , m_element(originalElement)
- , m_previousSibling(0)
- , m_nextSibling(0)
- , m_firstChild(0)
- , m_lastChild(0)
-{
- ASSERT(m_correspondingUseElement);
- ASSERT(m_element);
-
-#ifndef NDEBUG
- instanceCounter.increment();
-#endif
-}
-
-SVGElementInstance::~SVGElementInstance()
-{
- // Call detach because we may be deleted directly if we are a child of a detached instance.
- detach();
-
-#ifndef NDEBUG
- instanceCounter.decrement();
-#endif
-
- m_element = 0;
-}
-
-// It's important not to inline removedLastRef, because we don't want to inline the code to
-// delete an SVGElementInstance at each deref call site.
-void SVGElementInstance::removedLastRef()
-{
-#ifndef NDEBUG
- m_deletionHasBegun = true;
-#endif
- delete this;
-}
-
-Node* SVGElementInstance::toNode()
-{
- return shadowTreeElement();
-}
-
-void SVGElementInstance::detach()
-{
- // Clear all pointers. When the node is detached from the shadow DOM it should be removed but,
- // due to ref counting, it may not be. So clear everything to avoid dangling pointers.
-
- for (SVGElementInstance* node = firstChild(); node; node = node->nextSibling())
- node->detach();
-
- // DO NOT clear ref to m_element because JavaScriptCore uses it for garbage collection
-
- m_shadowTreeElement = 0;
-
- m_directUseElement = 0;
- m_correspondingUseElement = 0;
-
- removeDetachedChildrenInContainer<SVGElementInstance, SVGElementInstance>(*this);
-}
-
-Document* SVGElementInstance::ownerDocument() const
-{
- return m_element ? &m_element->document() : 0;
-}
-
-void SVGElementInstance::setShadowTreeElement(SVGElement* element)
-{
- ASSERT(element);
- m_shadowTreeElement = element;
-}
-
-void SVGElementInstance::appendChild(PassRefPtr<SVGElementInstance> child)
-{
- appendChildToContainer<SVGElementInstance, SVGElementInstance>(child.get(), *this);
-}
-
-EventTargetInterface SVGElementInstance::eventTargetInterface() const
-{
- return SVGElementInstanceEventTargetInterfaceType;
-}
-
-ScriptExecutionContext* SVGElementInstance::scriptExecutionContext() const
-{
- return &m_element->document();
-}
-
-bool SVGElementInstance::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> listener, bool useCapture)
-{
- return m_element->addEventListener(eventType, listener, useCapture);
-}
-
-bool SVGElementInstance::removeEventListener(const AtomicString& eventType, EventListener* listener, bool useCapture)
-{
- return m_element->removeEventListener(eventType, listener, useCapture);
-}
-
-void SVGElementInstance::removeAllEventListeners()
-{
- m_element->removeAllEventListeners();
-}
-
-bool SVGElementInstance::dispatchEvent(PassRefPtr<Event> event)
-{
- SVGElement* element = shadowTreeElement();
- if (!element)
- return false;
-
- return element->dispatchEvent(event);
-}
-
-EventTargetData* SVGElementInstance::eventTargetData()
-{
- // Since no event listeners are added to an SVGElementInstance, we don't have eventTargetData.
- return 0;
-}
-
-EventTargetData& SVGElementInstance::ensureEventTargetData()
-{
- // EventTarget would use these methods if we were actually using its add/removeEventListener logic.
- // As we're forwarding those calls to the correspondingElement(), no one should ever call this function.
- ASSERT_NOT_REACHED();
- return *eventTargetData();
-}
-
-}
+++ /dev/null
-/*
- * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. 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.
- */
-
-#ifndef SVGElementInstance_h
-#define SVGElementInstance_h
-
-#include "EventTarget.h"
-#include "TreeShared.h"
-
-namespace WebCore {
-
-namespace Private {
-template<class GenericNode, class GenericNodeContainer>
-void addChildNodesToDeletionQueue(GenericNode*& head, GenericNode*& tail, GenericNodeContainer& container);
-};
-
-class Document;
-class SVGElement;
-class SVGUseElement;
-
-// SVGElementInstance mimics Node, but without providing all its functionality
-class SVGElementInstance : public EventTarget, public TreeShared<SVGElementInstance> {
-public:
- static PassRefPtr<SVGElementInstance> create(SVGUseElement* correspondingUseElement, SVGUseElement* directUseElement, PassRefPtr<SVGElement> originalElement);
-
- virtual ~SVGElementInstance();
-
- void setParentNode(SVGElementInstance* instance) { m_parentInstance = instance; }
-
- virtual EventTargetInterface eventTargetInterface() const override;
- virtual ScriptExecutionContext* scriptExecutionContext() const override;
-
- virtual bool addEventListener(const AtomicString& eventType, PassRefPtr<EventListener>, bool useCapture) override;
- virtual bool removeEventListener(const AtomicString& eventType, EventListener*, bool useCapture) override;
- virtual void removeAllEventListeners() override;
-
- using EventTarget::dispatchEvent;
- virtual bool dispatchEvent(PassRefPtr<Event>) override;
-
- SVGElement* correspondingElement() const { return m_element.get(); }
- SVGUseElement* correspondingUseElement() const { return m_correspondingUseElement; }
- SVGUseElement* directUseElement() const { return m_directUseElement; }
- SVGElement* shadowTreeElement() const { return m_shadowTreeElement.get(); }
-
- void detach();
-
- SVGElementInstance* parentNode() const { return m_parentInstance; }
-
- SVGElementInstance* previousSibling() const { return m_previousSibling; }
- SVGElementInstance* nextSibling() const { return m_nextSibling; }
-
- SVGElementInstance* firstChild() const { return m_firstChild; }
- SVGElementInstance* lastChild() const { return m_lastChild; }
-
- Document* ownerDocument() const;
-
- using TreeShared<SVGElementInstance>::ref;
- using TreeShared<SVGElementInstance>::deref;
-
- // EventTarget API
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), abort);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), blur);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), change);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), click);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), contextmenu);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), dblclick);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), error);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), focus);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), input);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), keydown);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), keypress);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), keyup);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), load);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mousedown);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mouseenter);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mouseleave);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mousemove);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mouseout);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mouseover);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mouseup);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), mousewheel);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), wheel);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), beforecut);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), cut);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), beforecopy);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), copy);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), beforepaste);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), paste);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), dragenter);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), dragover);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), dragleave);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), drop);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), dragstart);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), drag);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), dragend);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), reset);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), resize);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), scroll);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), search);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), select);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), selectstart);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), submit);
- DECLARE_FORWARDING_ATTRIBUTE_EVENT_LISTENER(correspondingElement(), unload);
-
-private:
- friend class SVGUseElement;
- friend class TreeShared<SVGElementInstance>;
-
- SVGElementInstance(SVGUseElement*, SVGUseElement*, PassRefPtr<SVGElement> originalElement);
-
- void removedLastRef();
- bool hasTreeSharedParent() const { return !!m_parentInstance; }
-
- virtual Node* toNode() override;
-
- void appendChild(PassRefPtr<SVGElementInstance> child);
- void setShadowTreeElement(SVGElement*);
-
- template<class GenericNode, class GenericNodeContainer>
- friend void appendChildToContainer(GenericNode* child, GenericNodeContainer& container);
-
- template<class GenericNode, class GenericNodeContainer>
- friend void removeDetachedChildrenInContainer(GenericNodeContainer&);
-
- template<class GenericNode, class GenericNodeContainer>
- friend void Private::addChildNodesToDeletionQueue(GenericNode*& head, GenericNode*& tail, GenericNodeContainer& container);
-
- bool hasChildNodes() const { return m_firstChild; }
-
- void setFirstChild(SVGElementInstance* child) { m_firstChild = child; }
- void setLastChild(SVGElementInstance* child) { m_lastChild = child; }
-
- void setNextSibling(SVGElementInstance* sibling) { m_nextSibling = sibling; }
- void setPreviousSibling(SVGElementInstance* sibling) { m_previousSibling = sibling; }
-
- virtual void refEventTarget() override { ref(); }
- virtual void derefEventTarget() override { deref(); }
- virtual EventTargetData* eventTargetData() override;
- virtual EventTargetData& ensureEventTargetData() override;
-
- SVGElementInstance* m_parentInstance;
-
- SVGUseElement* m_correspondingUseElement;
- SVGUseElement* m_directUseElement;
- RefPtr<SVGElement> m_element;
- RefPtr<SVGElement> m_shadowTreeElement;
-
- SVGElementInstance* m_previousSibling;
- SVGElementInstance* m_nextSibling;
-
- SVGElementInstance* m_firstChild;
- SVGElementInstance* m_lastChild;
-};
-
-} // namespace WebCore
-
-#endif
+++ /dev/null
-/*
- * Copyright (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
- * Copyright (C) 2008 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.
- */
-
-[
- JSCustomMarkFunction,
- JSGenerateToNativeObject,
- JSGenerateToJSObject,
- EventTarget
-] interface SVGElementInstance
-#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
- : Object, EventTarget
-#else
- : EventTarget
-#endif /* defined(LANGUAGE_OBJECTIVE_C) */
-{
- readonly attribute SVGElement correspondingElement;
- readonly attribute SVGUseElement correspondingUseElement;
- readonly attribute SVGElementInstance parentNode;
- readonly attribute SVGElementInstance firstChild;
- readonly attribute SVGElementInstance lastChild;
- readonly attribute SVGElementInstance previousSibling;
- readonly attribute SVGElementInstance nextSibling;
-
- // EventTarget
-#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
- [NotEnumerable] attribute EventListener onabort;
- [NotEnumerable] attribute EventListener onblur;
- [NotEnumerable] attribute EventListener onchange;
- [NotEnumerable] attribute EventListener onclick;
- [NotEnumerable] attribute EventListener oncontextmenu;
- [NotEnumerable] attribute EventListener ondblclick;
- [NotEnumerable] attribute EventListener onerror;
- [NotEnumerable] attribute EventListener onfocus;
- [NotEnumerable] attribute EventListener oninput;
- [NotEnumerable] attribute EventListener onkeydown;
- [NotEnumerable] attribute EventListener onkeypress;
- [NotEnumerable] attribute EventListener onkeyup;
- [NotEnumerable] attribute EventListener onload;
- [NotEnumerable] attribute EventListener onmousedown;
- [NotEnumerable] attribute EventListener onmouseenter;
- [NotEnumerable] attribute EventListener onmouseleave;
- [NotEnumerable] attribute EventListener onmousemove;
- [NotEnumerable] attribute EventListener onmouseout;
- [NotEnumerable] attribute EventListener onmouseover;
- [NotEnumerable] attribute EventListener onmouseup;
- [NotEnumerable] attribute EventListener onmousewheel;
- [NotEnumerable] attribute EventListener onwheel;
- [NotEnumerable] attribute EventListener onbeforecut;
- [NotEnumerable] attribute EventListener oncut;
- [NotEnumerable] attribute EventListener onbeforecopy;
- [NotEnumerable] attribute EventListener oncopy;
- [NotEnumerable] attribute EventListener onbeforepaste;
- [NotEnumerable] attribute EventListener onpaste;
- [NotEnumerable] attribute EventListener ondragenter;
- [NotEnumerable] attribute EventListener ondragover;
- [NotEnumerable] attribute EventListener ondragleave;
- [NotEnumerable] attribute EventListener ondrop;
- [NotEnumerable] attribute EventListener ondragstart;
- [NotEnumerable] attribute EventListener ondrag;
- [NotEnumerable] attribute EventListener ondragend;
- [NotEnumerable] attribute EventListener onreset;
- [NotEnumerable] attribute EventListener onresize;
- [NotEnumerable] attribute EventListener onscroll;
- [NotEnumerable] attribute EventListener onsearch;
- [NotEnumerable] attribute EventListener onselect;
- [NotEnumerable] attribute EventListener onselectstart;
- [NotEnumerable] attribute EventListener onsubmit;
- [NotEnumerable] attribute EventListener onunload;
-#endif /* defined(LANGUAGE_OBJECTIVE_C) */
-};
#include "RenderSVGEllipse.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "FloatPoint.h"
#include "IntPoint.h"
#include "IntSize.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include "FilterEffect.h"
#include "RenderStyle.h"
#include "SVGColor.h"
-#include "SVGElementInstance.h"
#include "SVGFELightElement.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "Attribute.h"
#include "RenderStyle.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include "Image.h"
#include "RenderObject.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGPreserveAspectRatio.h"
#include "XLinkNames.h"
#include "ElementIterator.h"
#include "RenderObject.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGFEDiffuseLightingElement.h"
#include "SVGFESpecularLightingElement.h"
#include "SVGFilterElement.h"
#include "Attribute.h"
#include "RenderObject.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGFilterElement.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
#include "SVGNames.h"
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "FilterEffect.h"
#include "RenderStyle.h"
#include "SVGColor.h"
-#include "SVGElementInstance.h"
#include "SVGFELightElement.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "Attribute.h"
#include "FilterEffect.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGNames.h"
#include "SVGRenderStyle.h"
#include "SVGFETurbulenceElement.h"
#include "Attribute.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include <wtf/NeverDestroyed.h>
#include "Attr.h"
#include "RenderSVGResourceFilter.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
#include "SVGNames.h"
#include "FilterEffect.h"
#include "RenderSVGResourceFilterPrimitive.h"
#include "SVGElement.h"
-#include "SVGElementInstance.h"
#include "SVGFilterBuilder.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include "CSSPropertyNames.h"
#include "RenderSVGForeignObject.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include "XLinkNames.h"
#include "RenderSVGHiddenContainer.h"
#include "RenderSVGResource.h"
#include "RenderSVGTransformableContainer.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "RenderSVGPath.h"
#include "RenderSVGResourceLinearGradient.h"
#include "RenderSVGResourceRadialGradient.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGStopElement.h"
#include "SVGTransformList.h"
#include "Attribute.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGPathData.h"
#include <wtf/NeverDestroyed.h>
#include "RenderImageResource.h"
#include "RenderSVGImage.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGSVGElement.h"
#include "XLinkNames.h"
#include "FloatPoint.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "FloatPoint.h"
#include "LinearGradientAttributes.h"
#include "RenderSVGResourceLinearGradient.h"
-#include "SVGElementInstance.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include "SVGTransform.h"
#include "Attribute.h"
#include "RenderSVGResourceMarker.h"
-#include "SVGElementInstance.h"
#include "SVGFitToViewBox.h"
#include "SVGNames.h"
#include "SVGSVGElement.h"
#include "Attribute.h"
#include "RenderSVGResourceMasker.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGRenderSupport.h"
#include "SVGUnitTypes.h"
#include "Attribute.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGMPathElement.h"
#include "SVGNames.h"
#include "SVGPathSegArcAbs.h"
#include "PatternAttributes.h"
#include "RenderSVGContainer.h"
#include "RenderSVGResourcePattern.h"
-#include "SVGElementInstance.h"
#include "SVGFitToViewBox.h"
#include "SVGGraphicsElement.h"
#include "SVGNames.h"
#include "RenderSVGPath.h"
#include "RenderSVGResource.h"
#include "SVGAnimatedPointList.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGParserUtilities.h"
#include <wtf/NeverDestroyed.h>
#include "FloatPoint.h"
#include "RadialGradientAttributes.h"
#include "RenderSVGResourceRadialGradient.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGStopElement.h"
#include "SVGTransform.h"
#include "RenderSVGPath.h"
#include "RenderSVGRect.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGLength.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "RenderWidget.h"
#include "SMILTimeContainer.h"
#include "SVGAngle.h"
-#include "SVGElementInstance.h"
#include "SVGFitToViewBox.h"
#include "SVGNames.h"
#include "SVGPreserveAspectRatio.h"
#include "EventNames.h"
#include "HTMLNames.h"
#include "SVGAnimatedStaticPropertyTearOff.h"
-#include "SVGElementInstance.h"
#include "XLinkNames.h"
#include <wtf/NeverDestroyed.h>
#include "Document.h"
#include "RenderSVGGradientStop.h"
#include "RenderSVGResource.h"
-#include "SVGElementInstance.h"
#include "SVGGradientElement.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "SVGSymbolElement.h"
#include "RenderSVGHiddenContainer.h"
-#include "SVGElementInstance.h"
#include "SVGFitToViewBox.h"
#include "SVGNames.h"
#include <wtf/NeverDestroyed.h>
#include "RenderSVGResource.h"
#include "ShadowRoot.h"
#include "SVGDocument.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "StyleInheritedData.h"
#include "Text.h"
#include "RenderSVGResource.h"
#include "RenderSVGText.h"
#include "SVGDocumentExtensions.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGTextQuery.h"
#include "XMLNames.h"
#include "Attribute.h"
#include "RenderSVGResource.h"
#include "RenderSVGText.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "SVGRenderStyle.h"
#include "SVGTSpanElement.h"
#include "Attribute.h"
#include "RenderSVGResource.h"
#include "RenderSVGTextPath.h"
-#include "SVGElementInstance.h"
#include "SVGNames.h"
#include "XLinkNames.h"
#include <wtf/NeverDestroyed.h>
#include "RenderSVGResource.h"
#include "RenderSVGText.h"
#include "SVGAltGlyphElement.h"
-#include "SVGElementInstance.h"
#include "SVGLengthList.h"
#include "SVGNames.h"
#include "SVGNumberList.h"
#include "RenderSVGResource.h"
#include "RenderSVGTransformableContainer.h"
#include "ShadowRoot.h"
-#include "SVGElementInstance.h"
#include "SVGElementRareData.h"
#include "SVGGElement.h"
#include "SVGLengthContext.h"
Node::InsertionNotificationRequest SVGUseElement::insertedInto(ContainerNode& rootParent)
{
- // This functions exists to assure assumptions made in the code regarding SVGElementInstance creation/destruction are satisfied.
SVGGraphicsElement::insertedInto(rootParent);
if (!rootParent.inDocument())
return InsertionDone;
return false;
}
-bool SVGUseElement::instanceTreeIsLoading(SVGElementInstance* targetElementInstance)
-{
- for (SVGElementInstance* instance = targetElementInstance->firstChild(); instance; instance = instance->nextSibling()) {
- if (SVGUseElement* use = instance->correspondingUseElement()) {
- if (use->cachedDocumentIsStillLoading())
- return true;
- }
- if (instance->hasChildNodes())
- instanceTreeIsLoading(instance);
- }
- return false;
-}
-
void SVGUseElement::finishParsingChildren()
{
SVGGraphicsElement::finishParsingChildren();
bool cachedDocumentIsStillLoading();
Document* externalDocument() const;
- bool instanceTreeIsLoading(SVGElementInstance*);
virtual void notifyFinished(CachedResource*) override;
Document* referencedDocument() const;
void setCachedDocument(CachedResourceHandle<CachedSVGDocument>);
+2015-02-08 Darin Adler <darin@apple.com>
+
+ Remove the SVG instance tree
+ https://bugs.webkit.org/show_bug.cgi?id=140602
+
+ Reviewed by Dean Jackson.
+
+ * Scripts/check-for-global-initializers: Removed special case for
+ SVGElementInstance.o.
+
2015-02-07 David Kilzer <ddkilzer@apple.com>
[iOS] run-webkit-tests fails due to simulator devices from previous SDK installs being marked as unavailable
next if $shortName eq "Page.o";
next if $shortName eq "Range.o";
next if $shortName eq "RenderObject.o";
- next if $shortName eq "SVGElementInstance.o";
next if $shortName eq "SubresourceLoader.o";
next if $shortName eq "XMLHttpRequest.o";
}