[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
dglazkov at chromium.org
dglazkov at chromium.org
Wed Dec 22 14:59:06 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 00a7c5a63125ab35b28660b7f96adc9447c91a35
Author: dglazkov at chromium.org <dglazkov at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Oct 26 22:35:01 2010 +0000
2010-10-26 Dimitri Glazkov <dglazkov at chromium.org>
Unreviewed, rolling out r70573.
http://trac.webkit.org/changeset/70573
https://bugs.webkit.org/show_bug.cgi?id=48204
Broke 39 tests on Chromium
* svg/dom/SVGRect-expected.txt: Removed.
* svg/dom/SVGRect.html: Removed.
* svg/dom/script-tests/SVGRect.js: Removed.
2010-10-26 Dimitri Glazkov <dglazkov at chromium.org>
Unreviewed, rolling out r70573.
http://trac.webkit.org/changeset/70573
https://bugs.webkit.org/show_bug.cgi?id=48204
Broke 39 tests on Chromium
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* svg/DeprecatedSVGAnimatedPropertyTraits.h:
* svg/DeprecatedSVGAnimatedTemplate.h:
* svg/SVGAngle.idl:
* svg/SVGAnimatedAngle.idl:
* svg/SVGAnimatedLength.idl:
* svg/SVGAnimatedLengthList.idl:
* svg/SVGAnimatedRect.h: Removed.
* svg/SVGFitToViewBox.h:
* svg/SVGLength.idl:
* svg/SVGMarkerElement.h:
* svg/SVGPatternElement.h:
* svg/SVGRect.idl:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::currentView):
(WebCore::SVGSVGElement::inheritViewAttributes):
* svg/SVGSVGElement.h:
* svg/SVGSVGElement.idl:
* svg/SVGSymbolElement.h:
* svg/SVGViewElement.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::SVGViewSpec):
* svg/SVGViewSpec.h:
(WebCore::SVGViewSpec::contextElement):
* svg/SVGZoomEvent.idl:
* svg/properties/SVGAnimatedPropertyMacros.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 0616da6..cc83a56 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-26 Dimitri Glazkov <dglazkov at chromium.org>
+
+ Unreviewed, rolling out r70573.
+ http://trac.webkit.org/changeset/70573
+ https://bugs.webkit.org/show_bug.cgi?id=48204
+
+ Broke 39 tests on Chromium
+
+ * svg/dom/SVGRect-expected.txt: Removed.
+ * svg/dom/SVGRect.html: Removed.
+ * svg/dom/script-tests/SVGRect.js: Removed.
+
2010-10-26 Ojan Vafai <ojan at chromium.org>
Reviewed by Tony Chang.
diff --git a/LayoutTests/svg/dom/SVGRect-expected.txt b/LayoutTests/svg/dom/SVGRect-expected.txt
deleted file mode 100644
index fa01a66..0000000
--- a/LayoutTests/svg/dom/SVGRect-expected.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-This test checks the SVGRect API
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-
-Check initial rect values
-PASS rect.x is 0
-PASS rect.y is 0
-PASS rect.width is 0
-PASS rect.height is 0
-
-Check assigning rects
-PASS rect.x = 100 is 100
-PASS rect.y = 200 is 200
-PASS rect.width = 300 is 300
-PASS rect.height = 400 is 400
-
-Check assigning invalid rects
-PASS rect.x = rect threw exception TypeError: Type error.
-PASS rect.y = null is null
-PASS rect.width = 'aString' threw exception TypeError: Type error.
-PASS rect.height = svgElement threw exception TypeError: Type error.
-
-Check that the rect is still containing the correct values
-PASS rect.x is 100
-PASS rect.y is 0
-PASS rect.width is 300
-PASS rect.height is 400
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/LayoutTests/svg/dom/SVGRect.html b/LayoutTests/svg/dom/SVGRect.html
deleted file mode 100644
index da56932..0000000
--- a/LayoutTests/svg/dom/SVGRect.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
-<script src="../../fast/js/resources/js-test-pre.js"></script>
-</head>
-<body>
-<p id="description"></p>
-<div id="console"></div>
-<script src="script-tests/SVGRect.js"></script>
-<script src="../../fast/js/resources/js-test-post.js"></script>
-</body>
-</html>
diff --git a/LayoutTests/svg/dom/script-tests/SVGRect.js b/LayoutTests/svg/dom/script-tests/SVGRect.js
deleted file mode 100644
index 511e308..0000000
--- a/LayoutTests/svg/dom/script-tests/SVGRect.js
+++ /dev/null
@@ -1,34 +0,0 @@
-description("This test checks the SVGRect API");
-
-var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
-var rect = svgElement.createSVGRect();
-
-debug("");
-debug("Check initial rect values");
-shouldBe("rect.x", "0");
-shouldBe("rect.y", "0");
-shouldBe("rect.width", "0");
-shouldBe("rect.height", "0");
-
-debug("");
-debug("Check assigning rects");
-shouldBe("rect.x = 100", "100");
-shouldBe("rect.y = 200", "200");
-shouldBe("rect.width = 300", "300");
-shouldBe("rect.height = 400", "400");
-
-debug("");
-debug("Check assigning invalid rects");
-shouldThrow("rect.x = rect");
-shouldBeNull("rect.y = null");
-shouldThrow("rect.width = 'aString'");
-shouldThrow("rect.height = svgElement");
-
-debug("");
-debug("Check that the rect is still containing the correct values");
-shouldBe("rect.x", "100");
-shouldBe("rect.y", "0");
-shouldBe("rect.width", "300");
-shouldBe("rect.height", "400");
-
-successfullyParsed = true;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 12f3e93..5cf06ae 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,46 @@
+2010-10-26 Dimitri Glazkov <dglazkov at chromium.org>
+
+ Unreviewed, rolling out r70573.
+ http://trac.webkit.org/changeset/70573
+ https://bugs.webkit.org/show_bug.cgi?id=48204
+
+ Broke 39 tests on Chromium
+
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/scripts/CodeGenerator.pm:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/scripts/CodeGeneratorObjC.pm:
+ * bindings/scripts/CodeGeneratorV8.pm:
+ * svg/DeprecatedSVGAnimatedPropertyTraits.h:
+ * svg/DeprecatedSVGAnimatedTemplate.h:
+ * svg/SVGAngle.idl:
+ * svg/SVGAnimatedAngle.idl:
+ * svg/SVGAnimatedLength.idl:
+ * svg/SVGAnimatedLengthList.idl:
+ * svg/SVGAnimatedRect.h: Removed.
+ * svg/SVGFitToViewBox.h:
+ * svg/SVGLength.idl:
+ * svg/SVGMarkerElement.h:
+ * svg/SVGPatternElement.h:
+ * svg/SVGRect.idl:
+ * svg/SVGSVGElement.cpp:
+ (WebCore::SVGSVGElement::currentView):
+ (WebCore::SVGSVGElement::inheritViewAttributes):
+ * svg/SVGSVGElement.h:
+ * svg/SVGSVGElement.idl:
+ * svg/SVGSymbolElement.h:
+ * svg/SVGViewElement.h:
+ * svg/SVGViewSpec.cpp:
+ (WebCore::SVGViewSpec::SVGViewSpec):
+ * svg/SVGViewSpec.h:
+ (WebCore::SVGViewSpec::contextElement):
+ * svg/SVGZoomEvent.idl:
+ * svg/properties/SVGAnimatedPropertyMacros.h:
+
2010-10-26 Anders Carlsson <andersca at apple.com>
Fix 32-bit build.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 6f16a0f..8c204aa 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -3041,7 +3041,6 @@ webcore_sources += \
WebCore/svg/SVGAnimatedPathData.h \
WebCore/svg/SVGAnimatedPoints.cpp \
WebCore/svg/SVGAnimatedPoints.h \
- WebCore/svg/SVGAnimatedRect.h \
WebCore/svg/SVGAnimateElement.cpp \
WebCore/svg/SVGAnimateElement.h \
WebCore/svg/SVGAnimateMotionElement.cpp \
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 3bf8524..f526d07 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -3973,7 +3973,6 @@
'svg/SVGAnimatedPathData.h',
'svg/SVGAnimatedPoints.cpp',
'svg/SVGAnimatedPoints.h',
- 'svg/SVGAnimatedRect.h',
'svg/SVGAnimationElement.cpp',
'svg/SVGAnimationElement.h',
'svg/SVGCircleElement.cpp',
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index ee3b9d4..9fb2fdd 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -2365,7 +2365,6 @@ HEADERS += \
svg/SVGAnimatedLengthList.h \
svg/SVGAnimatedPathData.h \
svg/SVGAnimatedPoints.h \
- svg/SVGAnimatedRect.h \
svg/SVGAnimateElement.h \
svg/SVGAnimateMotionElement.h \
svg/SVGAnimateTransformElement.h \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index eb9e78c..dc7d2d0 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -61207,10 +61207,6 @@
>
</File>
<File
- RelativePath="..\svg\SVGAnimatedRect.h"
- >
- </File>
- <File
RelativePath="..\svg\SVGAnimateElement.h"
>
</File>
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index d61c7ea..336c786 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -225,7 +225,6 @@
08C6A7AB117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C6A7A9117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp */; };
08C6A7AC117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C6A7AA117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h */; };
08C7A2C710DC7462002D368B /* SVGNames.h in Copy Generated Headers */ = {isa = PBXBuildFile; fileRef = 656581E909D1508D000E61D7 /* SVGNames.h */; };
- 08C859C01274575400A5728D /* SVGAnimatedRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C859BF1274575300A5728D /* SVGAnimatedRect.h */; settings = {ATTRIBUTES = (Private, ); }; };
08C925190FCC7C4A00480DEC /* FilterEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08C925170FCC7C4A00480DEC /* FilterEffect.cpp */; };
08C9251A0FCC7C4A00480DEC /* FilterEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 08C925180FCC7C4A00480DEC /* FilterEffect.h */; };
08CD61BC0ED3929C002DDF51 /* WMLTaskElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08CD61B80ED3929C002DDF51 /* WMLTaskElement.cpp */; };
@@ -6219,7 +6218,6 @@
08C4C5170EF19A4000E4840F /* WMLImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLImageLoader.h; sourceTree = "<group>"; };
08C6A7A9117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceSolidColor.cpp; sourceTree = "<group>"; };
08C6A7AA117DFBAB00FEA1A2 /* RenderSVGResourceSolidColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceSolidColor.h; sourceTree = "<group>"; };
- 08C859BF1274575300A5728D /* SVGAnimatedRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAnimatedRect.h; sourceTree = "<group>"; };
08C925170FCC7C4A00480DEC /* FilterEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FilterEffect.cpp; path = filters/FilterEffect.cpp; sourceTree = "<group>"; };
08C925180FCC7C4A00480DEC /* FilterEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FilterEffect.h; path = filters/FilterEffect.h; sourceTree = "<group>"; };
08CD61B80ED3929C002DDF51 /* WMLTaskElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLTaskElement.cpp; sourceTree = "<group>"; };
@@ -15981,7 +15979,6 @@
B22277F20D00BF1F0071B782 /* SVGAnimatedPoints.h */,
B22277F30D00BF1F0071B782 /* SVGAnimatedPoints.idl */,
B22277F40D00BF1F0071B782 /* SVGAnimatedPreserveAspectRatio.idl */,
- 08C859BF1274575300A5728D /* SVGAnimatedRect.h */,
B22277F50D00BF1F0071B782 /* SVGAnimatedRect.idl */,
B22277F60D00BF1F0071B782 /* SVGAnimatedString.idl */,
B22277F80D00BF1F0071B782 /* SVGAnimatedTransformList.idl */,
@@ -21178,7 +21175,6 @@
089021AD126EF5E90092D5EA /* SVGAnimatedLengthList.h in Headers */,
8AB4BC77126FDB7100DEB727 /* IgnoreDestructiveWriteCountIncrementer.h in Headers */,
087B84961272CEC800A14417 /* SVGAnimatedAngle.h in Headers */,
- 08C859C01274575400A5728D /* SVGAnimatedRect.h in Headers */,
758978ED127090D60076D5A9 /* SpeechInputResult.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -21239,6 +21235,7 @@
isa = PBXProject;
buildConfigurationList = 149C284308902B11008A9EFC /* Build configuration list for PBXProject "WebCore" */;
compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
diff --git a/WebCore/bindings/scripts/CodeGenerator.pm b/WebCore/bindings/scripts/CodeGenerator.pm
index bffdd23..f10908b 100644
--- a/WebCore/bindings/scripts/CodeGenerator.pm
+++ b/WebCore/bindings/scripts/CodeGenerator.pm
@@ -51,12 +51,14 @@ my %numericTypeHash = ("int" => 1, "short" => 1, "long" => 1, "long long" => 1,
my %primitiveTypeHash = ( "boolean" => 1, "void" => 1, "Date" => 1);
my %podTypeHash = ("SVGNumber" => 1, "SVGTransform" => 1);
-my %podTypesWithWritablePropertiesHash = ("SVGMatrix" => 1, "SVGPoint" => 1, "SVGPreserveAspectRatio" => 1);
+my %podTypesWithWritablePropertiesHash = ("SVGMatrix" => 1, "SVGPoint" => 1, "SVGPreserveAspectRatio" => 1, "SVGRect" => 1);
my %stringTypeHash = ("DOMString" => 1, "AtomicString" => 1);
my %nonPointerTypeHash = ("DOMTimeStamp" => 1, "CompareHow" => 1, "SVGPaintType" => 1);
-my %svgNewStyleAnimatedTypeHash = ("SVGAnimatedAngle" => 1, "SVGAnimatedLength" => 1, "SVGAnimatedLengthList" => 1, "SVGAnimatedRect" => 1);
+my %svgTypeNeedingTearOffHash = ("SVGLength" => 1, "SVGAngle" => 1);
+
+my %svgNewStyleAnimatedTypeHash = ("SVGAnimatedAngle" => 1, "SVGAnimatedLength" => 1, "SVGAnimatedLengthList" => 1);
my %svgAnimatedTypeHash = ("SVGAnimatedAngle" => 1, "SVGAnimatedBoolean" => 1,
"SVGAnimatedEnumeration" => 1, "SVGAnimatedInteger" => 1,
@@ -72,13 +74,6 @@ my %svgAttributesInHTMLHash = ("class" => 1, "id" => 1, "onabort" => 1, "onclick
"onmouseup" => 1, "onresize" => 1, "onscroll" => 1,
"onunload" => 1);
-my %svgNativeType = (
- "SVGAngle" => "SVGPropertyTearOff<SVGAngle>",
- "SVGLength" => "SVGPropertyTearOff<SVGLength>",
- "SVGLengthList" => "SVGListPropertyTearOff<SVGLengthList>",
- "SVGRect" => "SVGPropertyTearOff<FloatRect>"
-);
-
# Cache of IDL file pathnames.
my $idlFiles;
@@ -292,16 +287,6 @@ sub ParseInterface
# Helpers for all CodeGenerator***.pm modules
-sub AvoidInclusionOfType
-{
- my $object = shift;
- my $type = shift;
-
- # Special case: SVGRect.h / SVGPoint.h / SVGNumber.h / SVGMatrix.h do not exist.
- return 1 if $type eq "SVGRect" or $type eq "SVGPoint" or $type eq "SVGNumber" or $type eq "SVGMatrix";
- return 0;
-}
-
# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
sub IsPodType
{
@@ -359,41 +344,16 @@ sub IsNonPointerType
return 0;
}
+
sub IsSVGTypeNeedingTearOff
{
my $object = shift;
my $type = shift;
- return 1 if exists $svgNativeType{$type};
+ return 1 if $svgTypeNeedingTearOffHash{$type};
return 0;
}
-sub GetSVGTypeNeedingTearOff
-{
- my $object = shift;
- my $type = shift;
-
- return $svgNativeType{$type} if exists $svgNativeType{$type};
- return undef;
-}
-
-sub GetSVGWrappedTypeNeedingTearOff
-{
- my $object = shift;
- my $type = shift;
-
- my $svgNativeType = $object->GetSVGTypeNeedingTearOff($type);
- return $svgNativeType if not $svgNativeType;
-
- if ($svgNativeType =~ /SVGPropertyTearOff/) {
- $svgNativeType =~ s/SVGPropertyTearOff<//;
- } elsif ($svgNativeType =~ /SVGListPropertyTearOff/) {
- $svgNativeType =~ s/SVGListPropertyTearOff<//;
- }
- $svgNativeType =~ s/>//;
- return $svgNativeType;
-}
-
# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
sub IsSVGNewStyleAnimatedType
{
diff --git a/WebCore/bindings/scripts/CodeGeneratorJS.pm b/WebCore/bindings/scripts/CodeGeneratorJS.pm
index 719449a..70c327e 100644
--- a/WebCore/bindings/scripts/CodeGeneratorJS.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorJS.pm
@@ -227,6 +227,15 @@ sub GetCallbackClassName
return "JS$className";
}
+sub AvoidInclusionOfType
+{
+ my $type = shift;
+
+ # Special case: SVGRect.h / SVGPoint.h / SVGNumber.h / SVGMatrix.h do not exist.
+ return 1 if $type eq "SVGRect" or $type eq "SVGPoint" or $type eq "SVGNumber" or $type eq "SVGMatrix";
+ return 0;
+}
+
sub IndexGetterReturnsStrings
{
my $type = shift;
@@ -242,7 +251,7 @@ sub AddIncludesForType
# When we're finished with the one-file-per-class
# reorganization, we won't need these special cases.
- if ($codeGenerator->IsPrimitiveType($type) or $codeGenerator->AvoidInclusionOfType($type)
+ if ($codeGenerator->IsPrimitiveType($type) or AvoidInclusionOfType($type)
or $type eq "DOMString" or $type eq "DOMObject" or $type eq "Array") {
} elsif ($type =~ /SVGPathSeg/) {
$joinedName = $type;
@@ -275,7 +284,6 @@ sub AddIncludesForType
}
}
-# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
sub AddIncludesForSVGAnimatedType
{
my $type = shift;
@@ -326,9 +334,8 @@ sub IsSVGTypeNeedingContextParameter
return 0 unless $implClassName =~ /SVG/;
return 0 if $implClassName =~ /Element/;
return 0 if $codeGenerator->IsSVGNewStyleAnimatedType($implClassName);
- return 0 if $codeGenerator->IsSVGTypeNeedingTearOff($implClassName);
- my @noContextNeeded = ("SVGColor", "SVGDocument", "SVGPaint", "SVGZoomEvent");
+ my @noContextNeeded = ("SVGAngle", "SVGLength", "SVGLengthList", "SVGPaint", "SVGColor", "SVGDocument", "SVGZoomEvent");
foreach (@noContextNeeded) {
return 0 if $implClassName eq $_;
}
@@ -666,11 +673,27 @@ sub GenerateHeader
}
$headerIncludes{"<runtime/JSObjectWithGlobalObject.h>"} = 1;
+
$headerIncludes{"SVGElement.h"} = 1 if $className =~ /^JSSVG/;
+ # Get correct pass/store types respecting PODType flag
my $implType = $implClassName;
- my ($svgPropertyType, $svgListPropertyType, $svgNativeType) = GetSVGPropertyTypes($implType);
- $implType = $svgNativeType if $svgNativeType;
+
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ if ($svgPropertyType) {
+ $implType = "SVGPropertyTearOff<$svgPropertyType> ";
+ $headerIncludes{"SVGAnimatedProperty.h"} = 1;
+ $headerIncludes{"SVGPropertyTearOff.h"} = 1;
+ $headerIncludes{"$svgPropertyType.h"} = 1 if $svgPropertyType ne "float";
+ }
+
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
+ if ($svgListPropertyType) {
+ $implType = "SVGListPropertyTearOff<$svgListPropertyType> ";
+ $headerIncludes{"SVGAnimatedProperty.h"} = 1;
+ $headerIncludes{"SVGListPropertyTearOff.h"} = 1;
+ $headerIncludes{"$svgListPropertyType.h"} = 1;
+ }
# FIXME: Old style SVG JS bindings, will vanish soon.
my $podType = $dataNode->extendedAttributes->{"PODType"};
@@ -691,13 +714,11 @@ sub GenerateHeader
push(@headerContent, "\nnamespace WebCore {\n\n");
- if ($codeGenerator->IsSVGNewStyleAnimatedType($implClassName)) {
- $headerIncludes{"$implClassName.h"} = 1;
- } else {
- # Implementation class forward declaration
- AddClassForwardIfNeeded($implClassName) unless $svgPropertyOrPodType;
- }
+ my $svgAnimatedPropertyType = $dataNode->extendedAttributes->{"SVGAnimatedProperty"};
+ $headerIncludes{"$implClassName.h"} = 1 if $svgAnimatedPropertyType;
+ # Implementation class forward declaration
+ AddClassForwardIfNeeded($implClassName) unless $svgPropertyOrPodType or $svgAnimatedPropertyType;
AddClassForwardIfNeeded("JSDOMWindowShell") if $interfaceName eq "DOMWindow";
# Class declaration
@@ -1426,12 +1447,16 @@ sub GenerateImplementation
}
push(@implContent, "};\n\n");
+ # Get correct pass/store types respecting PODType flag
my $implType = $implClassName;
- my ($svgPropertyType, $svgListPropertyType, $svgNativeType) = GetSVGPropertyTypes($implType);
- $implType = $svgNativeType if $svgNativeType;
-
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
my $podType = $dataNode->extendedAttributes->{"PODType"};
- if ($podType) {
+ if ($svgPropertyType) {
+ $implType = "SVGPropertyTearOff<$svgPropertyType> ";
+ } elsif ($svgListPropertyType) {
+ $implType = "SVGListPropertyTearOff<$svgListPropertyType> ";
+ } elsif ($podType) {
$implType = "JSSVGPODTypeWrapper<$podType> ";
}
@@ -1785,8 +1810,6 @@ sub GenerateImplementation
# For setters with "StrictTypeChecking", if an input parameter's type does not match the signature,
# a TypeError is thrown instead of casting to null.
if ($attribute->signature->extendedAttributes->{"StrictTypeChecking"}) {
- $implIncludes{"<runtime/Error.h>"} = 1;
-
my $argType = $attribute->signature->type;
if (!IsNativeType($argType)) {
push(@implContent, " if (!value.isUndefinedOrNull() && !value.inherits(&JS${argType}::s_info)) {\n");
@@ -2054,8 +2077,6 @@ sub GenerateImplementation
# For functions with "StrictTypeChecking", if an input parameter's type does not match the signature,
# a TypeError is thrown instead of casting to null.
if ($function->signature->extendedAttributes->{"StrictTypeChecking"}) {
- $implIncludes{"<runtime/Error.h>"} = 1;
-
my $argValue = "exec->argument($argsIndex)";
if (!IsNativeType($argType)) {
push(@implContent, " if (exec->argumentCount() > $argsIndex && !${argValue}.isUndefinedOrNull() && !${argValue}.inherits(&JS${argType}::s_info))\n");
@@ -2449,6 +2470,8 @@ my %nativeType = (
"NodeFilter" => "RefPtr<NodeFilter>",
"SerializedScriptValue" => "RefPtr<SerializedScriptValue>",
"IDBKey" => "RefPtr<IDBKey>",
+ "SVGAngle" => "SVGPropertyTearOff<SVGAngle>*",
+ "SVGLength" => "SVGPropertyTearOff<SVGLength>*",
"SVGMatrix" => "AffineTransform",
"SVGNumber" => "float",
"SVGPaintType" => "SVGPaint::SVGPaintType",
@@ -2470,44 +2493,12 @@ sub GetNativeType
{
my $type = shift;
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($type);
- return "${svgNativeType}*" if $svgNativeType;
return $nativeType{$type} if exists $nativeType{$type};
# For all other types, the native type is a pointer with same type name as the IDL type.
return "${type}*";
}
-sub GetSVGPropertyTypes
-{
- my $implType = shift;
-
- my $svgPropertyType;
- my $svgListPropertyType;
- my $svgNativeType;
-
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType) if not $implType =~ /SVG/;
-
- $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($implType);
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType) if not $svgNativeType;
-
- # Append space to avoid compilation errors when using PassRefPtr<$svgNativeType>
- $svgNativeType = "$svgNativeType ";
-
- my $svgWrappedNativeType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($implType);
- if ($svgNativeType =~ /SVGPropertyTearOff/) {
- $svgPropertyType = $svgWrappedNativeType;
- $headerIncludes{"$svgWrappedNativeType.h"} = 1;
- $headerIncludes{"SVGPropertyTearOff.h"} = 1;
- } elsif ($svgNativeType =~ /SVGListPropertyTearOff/) {
- $svgListPropertyType = $svgWrappedNativeType;
- $headerIncludes{"$svgWrappedNativeType.h"} = 1;
- $headerIncludes{"SVGListPropertyTearOff.h"} = 1;
- }
-
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType);
-}
-
sub IsNativeType
{
my $type = shift;
@@ -2658,7 +2649,7 @@ sub NativeToJSValue
} else {
# Default, include header with same name.
$implIncludes{"JS$type.h"} = 1;
- $implIncludes{"$type.h"} = 1 if not $codeGenerator->AvoidInclusionOfType($type);
+ $implIncludes{"$type.h"} = 1;
}
return $value if $codeGenerator->IsSVGAnimatedType($type);
@@ -2674,9 +2665,13 @@ sub NativeToJSValue
if ($codeGenerator->IsSVGNewStyleAnimatedType($implClassName)) {
# Convert from abstract SVGProperty to real type, so the right toJS() method can be invoked.
- $value = "static_cast<" . GetNativeType($type) . ">($value)";
+ if ($implClassName =~ /List$/) {
+ $value = "static_cast<SVGListPropertyTearOff<$type>*>($value)";
+ } else {
+ $value = "static_cast<SVGPropertyTearOff<$type>*>($value)";
+ }
} elsif ($codeGenerator->IsSVGTypeNeedingTearOff($type) and not $implClassName =~ /List$/) {
- $value = $codeGenerator->GetSVGTypeNeedingTearOff($type) . "::create($value)";
+ $value = "SVGPropertyTearOff<$type>::create($value)";
}
return "toJS(exec, $globalObject, WTF::getPtr($value))";
diff --git a/WebCore/bindings/scripts/CodeGeneratorObjC.pm b/WebCore/bindings/scripts/CodeGeneratorObjC.pm
index fce5935..af3fb78 100644
--- a/WebCore/bindings/scripts/CodeGeneratorObjC.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorObjC.pm
@@ -600,6 +600,12 @@ sub AddIncludesForType
return;
}
+ if ($type eq "SVGRect") {
+ $implIncludes{"FloatRect.h"} = 1;
+ $implIncludes{"DOMSVGRectInternal.h"} = 1;
+ return;
+ }
+
if ($type eq "SVGPoint") {
$implIncludes{"FloatPoint.h"} = 1;
$implIncludes{"DOMSVGPointInternal.h"} = 1;
@@ -652,39 +658,10 @@ sub AddIncludesForType
$implIncludes{"NameNodeList.h"} = 1 if $type eq "NodeList";
# Default, include the same named file (the implementation) and the same name prefixed with "DOM".
- $implIncludes{"$type.h"} = 1 if not $codeGenerator->AvoidInclusionOfType($type);
+ $implIncludes{"$type.h"} = 1;
$implIncludes{"DOM${type}Internal.h"} = 1;
}
-sub GetSVGPropertyTypes
-{
- my $implType = shift;
-
- my $svgPropertyType;
- my $svgListPropertyType;
- my $svgNativeType;
-
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType) if not $implType =~ /SVG/;
-
- $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($implType);
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType) if not $svgNativeType;
-
- # Append space to avoid compilation errors when using PassRefPtr<$svgNativeType>
- $svgNativeType = "WebCore::$svgNativeType ";
- $svgNativeType =~ s/</\<WebCore::/;
-
- my $svgWrappedNativeType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($implType);
- if ($svgNativeType =~ /SVGPropertyTearOff/) {
- $svgPropertyType = "WebCore::$svgWrappedNativeType";
- $svgPropertyType =~ s/</\<WebCore::/;
- } elsif ($svgNativeType =~ /SVGListPropertyTearOff/) {
- $svgListPropertyType = "WebCore::$svgWrappedNativeType";
- $svgListPropertyType =~ s/</\<WebCore::/;
- }
-
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType);
-}
-
sub GenerateHeader
{
my $object = shift;
@@ -997,16 +974,23 @@ sub GenerateHeader
unless ($isProtocol) {
# Generate internal interfaces
my $podType = $dataNode->extendedAttributes->{"PODType"};
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
my $podTypeWithNamespace;
+ my $svgPropertyTypeWithNamespace;
+ my $svgListPropertyTypeWithNamespace;
my $implClassName = GetImplClassName($interfaceName);
my $implClassNameWithNamespace = "WebCore::" . $implClassName;
my $implType = $implClassNameWithNamespace;
- my ($svgPropertyType, $svgListPropertyType, $svgNativeType) = GetSVGPropertyTypes($implClassName);
- $implType = $svgNativeType if $svgNativeType;
-
if ($podType) {
$podTypeWithNamespace = ($podType eq "float") ? "$podType" : "WebCore::$podType";
+ } elsif ($svgPropertyType) {
+ $implType = "WebCore::SVGPropertyTearOff<$implType>";
+ $svgPropertyTypeWithNamespace = ($svgPropertyType eq "float") ? "$svgPropertyType" : "WebCore::$svgPropertyType";
+ } elsif ($svgListPropertyType) {
+ $implType = "WebCore::SVGListPropertyTearOff<$implType>";
+ $svgListPropertyTypeWithNamespace = "WebCore::$svgListPropertyType";
}
# Generate interface definitions.
@@ -1033,6 +1017,10 @@ sub GenerateHeader
$startedNamespace = 1;
if ($podType and $podType ne "float") {
push(@internalHeaderContent, " class $podType;\n");
+ } elsif ($svgPropertyType and $svgPropertyType ne "float") {
+ push(@internalHeaderContent, " class $svgPropertyType;\n");
+ } elsif ($svgListPropertyType) {
+ push(@internalHeaderContent, " class $svgListPropertyType;\n");
} elsif ($interfaceName eq "Node") {
push(@internalHeaderContent, " class EventTarget;\n class Node;\n");
} else {
@@ -1084,14 +1072,21 @@ sub GenerateImplementation
my $numFunctions = @{$dataNode->functions};
my $podType = $dataNode->extendedAttributes->{"PODType"};
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
my $podTypeWithNamespace;
+ my $svgPropertyTypeWithNamespace;
+ my $svgListPropertyTypeWithNamespace;
my $implType = $implClassNameWithNamespace;
- my ($svgPropertyType, $svgListPropertyType, $svgNativeType) = GetSVGPropertyTypes($implClassName);
- $implType = $svgNativeType if $svgNativeType;
-
if ($podType) {
$podTypeWithNamespace = ($podType eq "float") ? "$podType" : "WebCore::$podType";
+ } elsif ($svgPropertyType) {
+ $implType = "WebCore::SVGPropertyTearOff<$implType>";
+ $svgPropertyTypeWithNamespace = ($svgPropertyType eq "float") ? "$svgPropertyType" : "WebCore::$svgPropertyType";
+ } elsif ($svgListPropertyType) {
+ $implType = "WebCore::SVGListPropertyTearOff<$implType>";
+ $svgListPropertyTypeWithNamespace = "WebCore::$svgListPropertyType";
}
# - Add default header template.
@@ -1128,7 +1123,7 @@ sub GenerateImplementation
$implIncludes{"$1.h"} = 1;
} else {
if (!$podType) {
- $implIncludes{"$implClassName.h"} = 1 if not $codeGenerator->AvoidInclusionOfType($implClassName);
+ $implIncludes{"$implClassName.h"} = 1;
} else {
$implIncludes{"$podType.h"} = 1 unless $podType eq "float";
}
@@ -1232,11 +1227,12 @@ sub GenerateImplementation
my $getterContentHead = "IMPL->$getterExpressionPrefix";
my $getterContentTail = ")";
+ my $svgAnimatedPropertyType = $dataNode->extendedAttributes->{"SVGAnimatedProperty"};
if ($svgPropertyType) {
$getterContentHead = "$getterExpressionPrefix";
# TODO: Handle special case for DOMSVGLength. We do need Custom code support for this.
- if ($svgPropertyType eq "WebCore::SVGLength" and $attributeName eq "value") {
+ if ($svgPropertyType eq "SVGLength" and $attributeName eq "value") {
$getterContentHead = "value(0 /* FIXME */";
}
} else {
@@ -1289,10 +1285,12 @@ sub GenerateImplementation
$getterContentTail .= ")";
} elsif ($svgPropertyType) {
$getterContentHead = "IMPL->propertyReference().$getterContentHead";
- } elsif ($codeGenerator->IsSVGNewStyleAnimatedType($implClassName)) {
- my $idlTypeWithNamespace = "WebCore::" . $codeGenerator->GetSVGTypeNeedingTearOff($idlType);
- $idlTypeWithNamespace =~ s/</\<WebCore::/;
- $getterContentHead = "kit(static_cast<$idlTypeWithNamespace*>($getterContentHead)";
+ } elsif ($svgAnimatedPropertyType) {
+ if ($idlType =~ /List$/) {
+ $getterContentHead = "kit(static_cast<WebCore::SVGListPropertyTearOff<WebCore::$idlType>*>($getterContentHead)";
+ } else {
+ $getterContentHead = "kit(static_cast<WebCore::SVGPropertyTearOff<WebCore::$idlType>*>($getterContentHead)";
+ }
$getterContentTail .= ")";
} elsif (IsProtocolType($idlType) and $idlType ne "EventTarget") {
$getterContentHead = "kit($getterContentHead";
@@ -1304,16 +1302,8 @@ sub GenerateImplementation
$getterContentHead = "$getterContentHead";
$getterContentTail .= "->toString()";
} elsif (ConversionNeeded($attribute->signature->type)) {
- if ($codeGenerator->IsSVGTypeNeedingTearOff($attribute->signature->type) and not $implClassName =~ /List$/) {
- my $idlType = $attribute->signature->type;
- my $idlTypeWithNamespace = "WebCore::" . $codeGenerator->GetSVGTypeNeedingTearOff($idlType);
- $idlTypeWithNamespace =~ s/</\<WebCore::/;
- $getterContentHead = "kit(WTF::getPtr(${idlTypeWithNamespace}::create($getterContentHead";
- $getterContentTail .= ")))";
- } else {
- $getterContentHead = "kit(WTF::getPtr($getterContentHead";
- $getterContentTail .= "))";
- }
+ $getterContentHead = "kit(WTF::getPtr($getterContentHead";
+ $getterContentTail .= "))";
}
my $getterContent;
@@ -1379,7 +1369,7 @@ sub GenerateImplementation
if ($svgPropertyType) {
$getterContentHead = "$getterExpressionPrefix";
- push(@implContent, " $svgPropertyType& podImpl = IMPL->propertyReference();\n");
+ push(@implContent, " $svgPropertyTypeWithNamespace& podImpl = IMPL->propertyReference();\n");
my $ec = $hasSetterException ? ", ec" : "";
push(@implContent, " $exceptionInit\n") if $hasSetterException;
push(@implContent, " podImpl.$coreSetterName($arg$ec);\n");
@@ -1518,7 +1508,7 @@ sub GenerateImplementation
# FIXME! We need [Custom] support for ObjC, to move these hacks into DOMSVGLength/MatrixCustom.mm
my $svgMatrixRotateFromVector = ($podType and $podType eq "AffineTransform" and $functionName eq "rotateFromVector");
my $svgMatrixInverse = ($podType and $podType eq "AffineTransform" and $functionName eq "inverse");
- my $svgLengthConvertToSpecifiedUnits = ($svgPropertyType and $svgPropertyType eq "WebCore::SVGLength" and $functionName eq "convertToSpecifiedUnits");
+ my $svgLengthConvertToSpecifiedUnits = ($svgPropertyType and $svgPropertyType eq "SVGLength" and $functionName eq "convertToSpecifiedUnits");
push(@parameterNames, "ec") if $raisesExceptions and !($svgMatrixRotateFromVector || $svgMatrixInverse);
push(@parameterNames, "0 /* FIXME */") if $svgLengthConvertToSpecifiedUnits;
@@ -1534,10 +1524,9 @@ sub GenerateImplementation
next if not $codeGenerator->IsSVGTypeNeedingTearOff($idlType) or $implClassName =~ /List$/;
my $implGetter = GetObjCTypeGetter($paramName, $idlType);
- my $idlTypeWithNamespace = "WebCore::" . $codeGenerator->GetSVGTypeNeedingTearOff($idlType);
- $idlTypeWithNamespace =~ s/</\<WebCore::/;
+ my $idlTypeWithNamespace = ($idlType eq "float") ? "$idlType" : "WebCore::$idlType";
- push(@functionContent, " $idlTypeWithNamespace* ${paramName}Core = $implGetter;\n");
+ push(@functionContent, " WebCore::SVGPropertyTearOff<$idlTypeWithNamespace>* ${paramName}Core = $implGetter;\n");
push(@functionContent, " if (!${paramName}Core) {\n");
push(@functionContent, " WebCore::ExceptionCode ec = WebCore::TYPE_MISMATCH_ERR;\n");
push(@functionContent, " $exceptionRaiseOnError\n");
@@ -1555,7 +1544,7 @@ sub GenerateImplementation
my $content = $codeGenerator->WK_lcfirst($functionName) . "(" . join(", ", @parameterNames) . ")";
if ($svgPropertyType) {
- push(@functionContent, " $svgPropertyType& podImpl = IMPL->propertyReference();\n");
+ push(@functionContent, " $svgPropertyTypeWithNamespace& podImpl = IMPL->propertyReference();\n");
$content = "podImpl.$content;\n IMPL->commitChange()";
} else {
$content = $caller . "->$content";
@@ -1604,10 +1593,7 @@ sub GenerateImplementation
} else {
if (ConversionNeeded($function->signature->type)) {
if ($codeGenerator->IsSVGTypeNeedingTearOff($function->signature->type) and not $implClassName =~ /List$/) {
- my $idlType = $function->signature->type;
- my $idlTypeWithNamespace = "WebCore::" . $codeGenerator->GetSVGTypeNeedingTearOff($idlType);
- $idlTypeWithNamespace =~ s/</\<WebCore::/;
- $content = "kit(WTF::getPtr(${idlTypeWithNamespace}::create($content)))";
+ $content = "kit(WTF::getPtr(WebCore::SVGPropertyTearOff<WebCore::" . $function->signature->type . ">::create($content)))";
} elsif ($codeGenerator->IsPodType($function->signature->type)) {
$content = "kit($content)";
} else {
diff --git a/WebCore/bindings/scripts/CodeGeneratorV8.pm b/WebCore/bindings/scripts/CodeGeneratorV8.pm
index 7a8aa13..423cc6b 100644
--- a/WebCore/bindings/scripts/CodeGeneratorV8.pm
+++ b/WebCore/bindings/scripts/CodeGeneratorV8.pm
@@ -212,34 +212,6 @@ sub GenerateConditionalString
}
}
-sub GetSVGPropertyTypes
-{
- my $implType = shift;
-
- my $svgPropertyType;
- my $svgListPropertyType;
- my $svgNativeType;
-
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType) if not $implType =~ /SVG/;
-
- $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($implType);
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType) if not $svgNativeType;
-
- # Append space to avoid compilation errors when using PassRefPtr<$svgNativeType>
- $svgNativeType = "$svgNativeType ";
-
- my $svgWrappedNativeType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($implType);
- if ($svgNativeType =~ /SVGPropertyTearOff/) {
- $svgPropertyType = $svgWrappedNativeType;
- $implIncludes{"SVGPropertyTearOff.h"} = 1,
- } elsif ($svgNativeType =~ /SVGListPropertyTearOff/) {
- $svgListPropertyType = $svgWrappedNativeType;
- $implIncludes{"SVGListPropertyTearOff.h"} = 1,
- }
-
- return ($svgPropertyType, $svgListPropertyType, $svgNativeType);
-}
-
sub GenerateHeader
{
my $object = shift;
@@ -257,19 +229,23 @@ sub GenerateHeader
# - Add default header template
push(@headerContent, GenerateHeaderContentHeader($dataNode));
+
+ # Get correct pass/store types respecting PODType flag
my $podType = $dataNode->extendedAttributes->{"PODType"};
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
my %headerInclues = ();
$headerIncludes{"$podType.h"} = 1 if $podType and ($podType ne "double" and $podType ne "float" and $podType ne "RGBA32");
+ $headerIncludes{"$svgPropertyType.h"} = 1 if $svgPropertyType and $svgPropertyType ne "float";
+ $headerIncludes{"$svgListPropertyType.h"} = 1 if $svgListPropertyType;
+ $headerIncludes{"SVGAnimatedProperty.h"} = 1 if $svgPropertyType or $svgListPropertyType;
$headerIncludes{"wtf/text/StringHash.h"} = 1;
$headerIncludes{"WrapperTypeInfo.h"} = 1;
$headerIncludes{"V8DOMWrapper.h"} = 1;
-
my $headerClassInclude = GetHeaderClassInclude($implClassName);
$headerIncludes{$headerClassInclude} = 1 if $headerClassInclude ne "";
- my ($svgPropertyType, $svgListPropertyType, $svgNativeType) = GetSVGPropertyTypes($implClassName);
-
foreach my $headerInclude (sort keys(%headerIncludes)) {
push(@headerContent, "#include \"${headerInclude}\"\n");
}
@@ -709,6 +685,8 @@ sub GenerateNormalAttrGetter
my $nativeType = GetNativeTypeFromSignature($attribute->signature, -1);
my $isPodType = IsPodType($implClassName);
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
my $skipContext = 0;
if ($isPodType) {
@@ -716,19 +694,27 @@ sub GenerateNormalAttrGetter
$implIncludes{"V8SVGPODTypeWrapper.h"} = 1;
}
+ $implIncludes{"SVGPropertyTearOff.h"} = 1 if $svgPropertyType;;
+ $implIncludes{"SVGListPropertyTearOff.h"} = 1 if $svgListPropertyType;
+
# Special case: SVGZoomEvent's attributes are all read-only
if ($implClassName eq "SVGZoomEvent") {
$attrIsPodType = 0;
$skipContext = 1;
}
+ # Special case: SVGSVGEelement::viewport is read-only
+ if (($implClassName eq "SVGSVGElement") and ($attrName eq "viewport")) {
+ $attrIsPodType = 0;
+ $skipContext = 1;
+ }
+
# Special case for SVGColor
if (($implClassName eq "SVGColor") and ($attrName eq "rgbColor")) {
$attrIsPodType = 0;
}
my $getterStringUsesImp = $implClassName ne "float";
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($implClassName);
# Getter
my $conditionalString = GenerateConditionalString($attribute->signature);
@@ -750,20 +736,18 @@ END
$implClassName* imp = &impInstance;
END
}
- } elsif ($svgNativeType) {
- my $svgWrappedNativeType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($implClassName);
- if ($svgWrappedNativeType =~ /List$/) {
- push(@implContentDecls, <<END);
- $svgNativeType* imp = V8${implClassName}::toNative(info.Holder());
+
+ } elsif ($svgPropertyType) {
+ push(@implContentDecls, <<END);
+ SVGPropertyTearOff<$svgPropertyType>* wrapper = V8${implClassName}::toNative(info.Holder());
+ $svgPropertyType& impInstance = wrapper->propertyReference();
+ $svgPropertyType* imp = &impInstance;
END
- } else {
- push(@implContentDecls, <<END);
- $svgNativeType* wrapper = V8${implClassName}::toNative(info.Holder());
- $svgWrappedNativeType& impInstance = wrapper->propertyReference();
- $svgWrappedNativeType* imp = &impInstance;
+ } elsif ($svgListPropertyType) {
+ push(@implContentDecls, <<END);
+ SVGListPropertyTearOff<$svgListPropertyType>* imp = V8${implClassName}::toNative(info.Holder());
END
- }
- } elsif ($attrExt->{"v8OnProto"} || $attrExt->{"V8DisallowShadowing"}) {
+ } elsif ($attrExt->{"v8OnProto"} || $attrExt->{"V8DisallowShadowing"}) {
if ($interfaceName eq "DOMWindow") {
push(@implContentDecls, <<END);
v8::Handle<v8::Object> holder = info.Holder();
@@ -920,14 +904,12 @@ END
}
if ($codeGenerator->IsSVGNewStyleAnimatedType($implClassName)) {
- $implIncludes{"V8$attrType.h"} = 1;
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($attrType);
- # Convert from abstract SVGProperty to real type, so the right toJS() method can be invoked.
- push(@implContentDecls, " return toV8(static_cast<$svgNativeType*>($result));\n");
- } elsif ($codeGenerator->IsSVGTypeNeedingTearOff($attrType) and not $implClassName =~ /List$/) {
- $implIncludes{"V8$attrType.h"} = 1;
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($attrType);
- push(@implContentDecls, " return toV8(WTF::getPtr(${svgNativeType}::create($result)));\n");
+ $implIncludes{"V8${attrType}.h"} = 1;
+ if ($implClassName =~ /List$/) {
+ push(@implContentDecls, " return toV8(static_cast<SVGListPropertyTearOff<$attrType>*>($result));\n");
+ } else {
+ push(@implContentDecls, " return toV8(static_cast<SVGPropertyTearOff<$attrType>*>($result));\n");
+ }
} elsif ($attrIsPodType) {
$implIncludes{"V8${attrType}.h"} = 1;
push(@implContentDecls, " return toV8(wrapper.release().get());\n");
@@ -979,7 +961,8 @@ sub GenerateNormalAttrSetter
}
my $isPodType = IsPodType($implClassName);
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($implClassName);
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
if ($isPodType) {
$implClassName = GetNativeType($implClassName);
@@ -987,19 +970,16 @@ sub GenerateNormalAttrSetter
push(@implContentDecls, " V8SVGPODTypeWrapper<$implClassName>* wrapper = V8SVGPODTypeWrapper<$implClassName>::toNative(info.Holder());\n");
push(@implContentDecls, " $implClassName impInstance = *wrapper;\n");
push(@implContentDecls, " $implClassName* imp = &impInstance;\n");
- } elsif ($svgNativeType) {
- my $svgWrappedNativeType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($implClassName);
- if ($svgWrappedNativeType =~ /List$/) {
- push(@implContentDecls, <<END);
- $svgNativeType* imp = V8${implClassName}::toNative(info.Holder());
+ } elsif ($svgPropertyType) {
+ push(@implContentDecls, <<END);
+ SVGPropertyTearOff<$svgPropertyType>* wrapper = V8${implClassName}::toNative(info.Holder());
+ $svgPropertyType& impInstance = wrapper->propertyReference();
+ $svgPropertyType* imp = &impInstance;
END
- } else {
- push(@implContentDecls, <<END);
- $svgNativeType* wrapper = V8${implClassName}::toNative(info.Holder());
- $svgWrappedNativeType& impInstance = wrapper->propertyReference();
- $svgWrappedNativeType* imp = &impInstance;
+ } elsif ($svgListPropertyType) {
+ push(@implContentDecls, <<END);
+ SVGListPropertyTearOff<$svgListPropertyType>* imp = V8${implClassName}::toNative(info.Holder());
END
- }
} elsif ($attrExt->{"v8OnProto"}) {
if ($interfaceName eq "DOMWindow") {
push(@implContentDecls, <<END);
@@ -1300,23 +1280,22 @@ END
}
}
- my ($svgPropertyType, $svgListPropertyType, $svgNativeType) = GetSVGPropertyTypes($implClassName);
+ my $svgPropertyType = $dataNode->extendedAttributes->{"SVGProperty"};
+ my $svgListPropertyType = $dataNode->extendedAttributes->{"SVGListProperty"};
if (IsPodType($implClassName)) {
my $nativeClassName = GetNativeType($implClassName);
push(@implContentDecls, " V8SVGPODTypeWrapper<$nativeClassName>* impWrapper = V8SVGPODTypeWrapper<$nativeClassName>::toNative(args.Holder());\n");
push(@implContentDecls, " $nativeClassName impInstance = *impWrapper;\n");
push(@implContentDecls, " $nativeClassName* imp = &impInstance;\n");
- } elsif ($svgNativeType) {
- my $nativeClassName = GetNativeType($implClassName);
- if ($implClassName =~ /List$/) {
- push(@implContentDecls, " $nativeClassName imp = V8${svgListPropertyType}::toNative(args.Holder());\n");
- } else {
- my $svgWrappedNativeType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($implClassName);
- push(@implContentDecls, " $nativeClassName wrapper = V8${svgPropertyType}::toNative(args.Holder());\n");
- push(@implContentDecls, " $svgWrappedNativeType& impInstance = wrapper->propertyReference();\n");
- push(@implContentDecls, " $svgWrappedNativeType* imp = &impInstance;\n");
- }
+ } elsif ($svgPropertyType) {
+ my $nativeClassName = GetNativeType($implClassName);
+ push(@implContentDecls, " $nativeClassName wrapper = V8${svgPropertyType}::toNative(args.Holder());\n");
+ push(@implContentDecls, " $svgPropertyType& impInstance = wrapper->propertyReference();\n");
+ push(@implContentDecls, " $svgPropertyType* imp = &impInstance;\n");
+ } elsif ($svgListPropertyType) {
+ my $nativeClassName = GetNativeType($implClassName);
+ push(@implContentDecls, " $nativeClassName imp = V8${svgListPropertyType}::toNative(args.Holder());\n");
} elsif (!$function->signature->extendedAttributes->{"ClassMethod"}) {
push(@implContentDecls, <<END);
${implClassName}* imp = V8${implClassName}::toNative(args.Holder());
@@ -2666,11 +2645,13 @@ sub GetNativeTypeForConversions
my $dataNode = shift;
my $type = shift;
+ $type = "FloatRect" if $type eq "SVGRect";
$type = "FloatPoint" if $type eq "SVGPoint";
$type = "AffineTransform" if $type eq "SVGMatrix";
$type = "float" if $type eq "SVGNumber";
$type = "V8SVGPODTypeWrapper<$type>" if $dataNode->extendedAttributes->{"PODType"};
- $type = $codeGenerator->GetSVGTypeNeedingTearOff($type) if $codeGenerator->IsSVGTypeNeedingTearOff($type);
+ $type = "SVGPropertyTearOff<$type>" if $dataNode->extendedAttributes->{"SVGProperty"};
+ $type = "SVGListPropertyTearOff<$type>" if $dataNode->extendedAttributes->{"SVGListProperty"};
return $type;
}
@@ -2688,9 +2669,6 @@ sub GenerateFunctionCallString()
my $nativeReturnType = GetNativeType($returnType, 0);
my $result = "";
- my $isSVGTearOffType = ($codeGenerator->IsSVGTypeNeedingTearOff($returnType) and not $implClassName =~ /List$/);
- $nativeReturnType = $codeGenerator->GetSVGWrappedTypeNeedingTearOff($returnType) if $isSVGTearOffType;
-
# Special case: SVG matrix transform methods should not mutate
# the matrix but return a copy
my $copyFirst = 0;
@@ -2838,12 +2816,10 @@ sub GenerateFunctionCallString()
$return = "wrapper";
}
- if ($isSVGTearOffType) {
+ if ($codeGenerator->IsSVGTypeNeedingTearOff($returnType) and not $implClassName =~ /List$/) {
$implIncludes{"V8$returnType.h"} = 1;
$implIncludes{"SVGPropertyTearOff.h"} = 1;
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($returnType);
- $result .= $indent . "return toV8(WTF::getPtr(${svgNativeType}::create($return)));\n";
- return $result;
+ return $indent . "return toV8(WTF::getPtr(SVGPropertyTearOff<$returnType>::create($return)));\n";
}
my $generatedSVGContextRetrieval = 0;
@@ -2871,7 +2847,7 @@ sub GenerateFunctionCallString()
}
$result .= $indent . "impWrapper->commitChange(impInstance, context);\n";
- } elsif ($codeGenerator->IsSVGTypeNeedingTearOff($implClassName) and not $implClassName =~ /List$/) {
+ } elsif ($dataNode->extendedAttributes->{"SVGProperty"}) {
$result .= $indent . "wrapper->commitChange();\n";
}
@@ -2947,15 +2923,6 @@ sub GetNativeType
my $type = shift;
my $isParameter = shift;
- my $svgNativeType = $codeGenerator->GetSVGTypeNeedingTearOff($type);
- if ($svgNativeType) {
- if ($svgNativeType =~ /List$/) {
- return "${svgNativeType}*";
- } else {
- return "RefPtr<${svgNativeType} >";
- }
- }
-
if ($type eq "float" or $type eq "double") {
return $type;
}
@@ -2970,9 +2937,13 @@ sub GetNativeType
return "bool" if $type eq "boolean";
return "String" if $type eq "DOMString";
return "Range::CompareHow" if $type eq "CompareHow";
+ return "FloatRect" if $type eq "SVGRect";
return "FloatPoint" if $type eq "SVGPoint";
return "AffineTransform" if $type eq "SVGMatrix";
return "SVGTransform" if $type eq "SVGTransform";
+ return "RefPtr<SVGPropertyTearOff<SVGAngle> >" if $type eq "SVGAngle";
+ return "RefPtr<SVGPropertyTearOff<SVGLength> >" if $type eq "SVGLength";
+ return "SVGListPropertyTearOff<SVGLengthList>*" if $type eq "SVGLengthList";
return "float" if $type eq "SVGNumber";
return "SVGPreserveAspectRatio" if $type eq "SVGPreserveAspectRatio";
return "SVGPaint::SVGPaintType" if $type eq "SVGPaintType";
@@ -3027,6 +2998,7 @@ sub BasicTypeCanFailConversion
return 1 if $type eq "SVGMatrix";
return 1 if $type eq "SVGPoint";
return 1 if $type eq "SVGPreserveAspectRatio";
+ return 1 if $type eq "SVGRect";
return 1 if $type eq "SVGTransform";
return 0;
}
@@ -3407,16 +3379,17 @@ sub IsSVGTypeNeedingContextParameter
{
my $implClassName = shift;
- return 0 unless $implClassName =~ /SVG/;
- return 0 if $implClassName =~ /Element/;
return 0 if $codeGenerator->IsSVGNewStyleAnimatedType($implClassName);
- return 0 if $codeGenerator->IsSVGTypeNeedingTearOff($implClassName);
-
- my @noContextNeeded = ("SVGColor", "SVGDocument", "SVGPaintType", "SVGPaint", "SVGZoomEvent");
- foreach (@noContextNeeded) {
- return 0 if $implClassName eq $_;
+ if ($implClassName =~ /SVG/ and not $implClassName =~ /Element/) {
+ return 1 unless $implClassName =~ /SVGAngle/
+ or $implClassName =~ /SVGPaint/
+ or $implClassName =~ /SVGColor/
+ or $implClassName =~ /SVGDocument/
+ or $implClassName =~ /SVGLength/
+ or $implClassName =~ /SVGLengthList/;
}
- return 1;
+
+ return 0;
}
# FIXME: This method will go away once all SVG animated properties are converted to the new scheme.
diff --git a/WebCore/svg/DeprecatedSVGAnimatedPropertyTraits.h b/WebCore/svg/DeprecatedSVGAnimatedPropertyTraits.h
index 51bd496..63a90cf 100644
--- a/WebCore/svg/DeprecatedSVGAnimatedPropertyTraits.h
+++ b/WebCore/svg/DeprecatedSVGAnimatedPropertyTraits.h
@@ -105,6 +105,18 @@ struct DeprecatedSVGAnimatedPropertyTraits<SVGPreserveAspectRatio> : public Nonc
static String toString(PassType type) { return type.valueAsString(); }
};
+// SVGAnimatedRect
+template<>
+struct DeprecatedSVGAnimatedPropertyTraits<FloatRect> : public Noncopyable {
+ typedef const FloatRect& PassType;
+ typedef FloatRect ReturnType;
+ typedef FloatRect StoredType;
+
+ static ReturnType null() { return FloatRect(); }
+ static ReturnType toReturnType(const StoredType& type) { return type; }
+ static String toString(PassType type) { return String::format("%f %f %f %f", type.x(), type.y(), type.width(), type.height()); }
+};
+
// SVGAnimatedString
template<>
struct DeprecatedSVGAnimatedPropertyTraits<String> : public Noncopyable {
diff --git a/WebCore/svg/DeprecatedSVGAnimatedTemplate.h b/WebCore/svg/DeprecatedSVGAnimatedTemplate.h
index de24fe4..351ff5a 100644
--- a/WebCore/svg/DeprecatedSVGAnimatedTemplate.h
+++ b/WebCore/svg/DeprecatedSVGAnimatedTemplate.h
@@ -160,6 +160,7 @@ namespace WebCore {
typedef DeprecatedSVGAnimatedTemplate<float> SVGAnimatedNumber;
typedef DeprecatedSVGAnimatedTemplate<SVGNumberList*> SVGAnimatedNumberList;
typedef DeprecatedSVGAnimatedTemplate<SVGPreserveAspectRatio> SVGAnimatedPreserveAspectRatio;
+ typedef DeprecatedSVGAnimatedTemplate<FloatRect> SVGAnimatedRect;
typedef DeprecatedSVGAnimatedTemplate<String> SVGAnimatedString;
typedef DeprecatedSVGAnimatedTemplate<SVGTransformList*> SVGAnimatedTransformList;
diff --git a/WebCore/svg/SVGAngle.idl b/WebCore/svg/SVGAngle.idl
index b36670a..69959ad 100644
--- a/WebCore/svg/SVGAngle.idl
+++ b/WebCore/svg/SVGAngle.idl
@@ -22,7 +22,7 @@
module svg {
- interface [Conditional=SVG] SVGAngle {
+ interface [Conditional=SVG, SVGProperty=SVGAngle] SVGAngle {
// Angle Unit Types
const unsigned short SVG_ANGLETYPE_UNKNOWN = 0;
const unsigned short SVG_ANGLETYPE_UNSPECIFIED = 1;
diff --git a/WebCore/svg/SVGAnimatedAngle.idl b/WebCore/svg/SVGAnimatedAngle.idl
index 76d4b71..48159fd 100644
--- a/WebCore/svg/SVGAnimatedAngle.idl
+++ b/WebCore/svg/SVGAnimatedAngle.idl
@@ -25,7 +25,7 @@
module svg {
- interface [Conditional=SVG] SVGAnimatedAngle {
+ interface [Conditional=SVG, SVGAnimatedProperty] SVGAnimatedAngle {
readonly attribute SVGAngle baseVal;
readonly attribute SVGAngle animVal;
};
diff --git a/WebCore/svg/SVGAnimatedLength.idl b/WebCore/svg/SVGAnimatedLength.idl
index 7ace261..a0e2182 100644
--- a/WebCore/svg/SVGAnimatedLength.idl
+++ b/WebCore/svg/SVGAnimatedLength.idl
@@ -25,7 +25,7 @@
module svg {
- interface [Conditional=SVG] SVGAnimatedLength {
+ interface [Conditional=SVG, SVGAnimatedProperty] SVGAnimatedLength {
readonly attribute SVGLength baseVal;
readonly attribute SVGLength animVal;
};
diff --git a/WebCore/svg/SVGAnimatedLengthList.idl b/WebCore/svg/SVGAnimatedLengthList.idl
index a68724a..b94797e 100644
--- a/WebCore/svg/SVGAnimatedLengthList.idl
+++ b/WebCore/svg/SVGAnimatedLengthList.idl
@@ -25,7 +25,7 @@
module svg {
- interface [Conditional=SVG] SVGAnimatedLengthList {
+ interface [Conditional=SVG, SVGAnimatedProperty] SVGAnimatedLengthList {
readonly attribute SVGLengthList baseVal;
readonly attribute SVGLengthList animVal;
};
diff --git a/WebCore/svg/SVGAnimatedRect.h b/WebCore/svg/SVGAnimatedRect.h
deleted file mode 100644
index ee94352..0000000
--- a/WebCore/svg/SVGAnimatedRect.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) Research In Motion Limited 2010. 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 SVGAnimatedRect_h
-#define SVGAnimatedRect_h
-
-#if ENABLE(SVG)
-#include "FloatRect.h"
-#include "SVGAnimatedPropertyTearOff.h"
-
-namespace WebCore {
-
-typedef SVGAnimatedPropertyTearOff<FloatRect> SVGAnimatedRect;
-
-} // namespace WebCore
-
-#endif // ENABLE(SVG)
-#endif
diff --git a/WebCore/svg/SVGFitToViewBox.h b/WebCore/svg/SVGFitToViewBox.h
index df41fce..ecc89bb 100644
--- a/WebCore/svg/SVGFitToViewBox.h
+++ b/WebCore/svg/SVGFitToViewBox.h
@@ -39,7 +39,7 @@ public:
bool parseMappedAttribute(Document*, Attribute*);
bool isKnownAttribute(const QualifiedName&);
- virtual void setViewBoxBaseValue(const FloatRect&) = 0;
+ virtual void setViewBoxBaseValue(DeprecatedSVGAnimatedPropertyTraits<FloatRect>::PassType) = 0;
virtual void setPreserveAspectRatioBaseValue(DeprecatedSVGAnimatedPropertyTraits<SVGPreserveAspectRatio>::PassType) = 0;
private:
diff --git a/WebCore/svg/SVGLength.idl b/WebCore/svg/SVGLength.idl
index 166019e..ed0199b 100644
--- a/WebCore/svg/SVGLength.idl
+++ b/WebCore/svg/SVGLength.idl
@@ -22,7 +22,7 @@
module svg {
- interface [Conditional=SVG] SVGLength {
+ interface [Conditional=SVG, SVGProperty=SVGLength] SVGLength {
// Length Unit Types
const unsigned short SVG_LENGTHTYPE_UNKNOWN = 0;
const unsigned short SVG_LENGTHTYPE_NUMBER = 1;
diff --git a/WebCore/svg/SVGMarkerElement.h b/WebCore/svg/SVGMarkerElement.h
index 12f52bd..bc70524 100644
--- a/WebCore/svg/SVGMarkerElement.h
+++ b/WebCore/svg/SVGMarkerElement.h
@@ -88,7 +88,7 @@ private:
DECLARE_ANIMATED_PROPERTY(SVGMarkerElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGMarkerElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
+ DECLARE_ANIMATED_PROPERTY(SVGMarkerElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
DECLARE_ANIMATED_PROPERTY(SVGMarkerElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
};
diff --git a/WebCore/svg/SVGPatternElement.h b/WebCore/svg/SVGPatternElement.h
index 7bcee75..51352fc 100644
--- a/WebCore/svg/SVGPatternElement.h
+++ b/WebCore/svg/SVGPatternElement.h
@@ -79,7 +79,7 @@ namespace WebCore {
DECLARE_ANIMATED_PROPERTY(SVGPatternElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
// SVGPatternElement
- DECLARE_ANIMATED_PROPERTY_NEW(SVGPatternElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
+ DECLARE_ANIMATED_PROPERTY(SVGPatternElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
DECLARE_ANIMATED_PROPERTY(SVGPatternElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
};
diff --git a/WebCore/svg/SVGRect.idl b/WebCore/svg/SVGRect.idl
index 4231ac0..a4ece66 100644
--- a/WebCore/svg/SVGRect.idl
+++ b/WebCore/svg/SVGRect.idl
@@ -22,11 +22,11 @@
module svg {
- interface [Conditional=SVG] SVGRect {
- attribute [StrictTypeChecking] float x;
- attribute [StrictTypeChecking] float y;
- attribute [StrictTypeChecking] float width;
- attribute [StrictTypeChecking] float height;
+ interface [Conditional=SVG, PODType=FloatRect] SVGRect {
+ attribute float x;
+ attribute float y;
+ attribute float width;
+ attribute float height;
};
}
diff --git a/WebCore/svg/SVGSVGElement.cpp b/WebCore/svg/SVGSVGElement.cpp
index 2354b27..7de880c 100644
--- a/WebCore/svg/SVGSVGElement.cpp
+++ b/WebCore/svg/SVGSVGElement.cpp
@@ -186,7 +186,7 @@ void SVGSVGElement::setUseCurrentView(bool currentView)
SVGViewSpec* SVGSVGElement::currentView() const
{
if (!m_viewSpec)
- m_viewSpec = adoptPtr(new SVGViewSpec(const_cast<SVGSVGElement*>(this)));
+ m_viewSpec = adoptPtr(new SVGViewSpec(this));
return m_viewSpec.get();
}
@@ -580,9 +580,9 @@ void SVGSVGElement::inheritViewAttributes(SVGViewElement* viewElement)
{
setUseCurrentView(true);
if (viewElement->hasAttribute(SVGNames::viewBoxAttr))
- currentView()->setViewBoxBaseValue(viewElement->viewBox());
+ currentView()->setViewBox(viewElement->viewBox());
else
- currentView()->setViewBoxBaseValue(viewBox());
+ currentView()->setViewBox(viewBox());
SVGPreserveAspectRatio aspectRatio;
if (viewElement->hasAttribute(SVGNames::preserveAspectRatioAttr))
diff --git a/WebCore/svg/SVGSVGElement.h b/WebCore/svg/SVGSVGElement.h
index 224d516..8a9f653 100644
--- a/WebCore/svg/SVGSVGElement.h
+++ b/WebCore/svg/SVGSVGElement.h
@@ -146,7 +146,7 @@ namespace WebCore {
DECLARE_ANIMATED_PROPERTY(SVGSVGElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGSVGElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
+ DECLARE_ANIMATED_PROPERTY(SVGSVGElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
DECLARE_ANIMATED_PROPERTY(SVGSVGElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
virtual void documentWillBecomeInactive();
diff --git a/WebCore/svg/SVGSVGElement.idl b/WebCore/svg/SVGSVGElement.idl
index 39912ec..bcf9236 100644
--- a/WebCore/svg/SVGSVGElement.idl
+++ b/WebCore/svg/SVGSVGElement.idl
@@ -41,14 +41,14 @@ module svg {
/*setter raises(DOMException)*/;
attribute DOMString contentStyleType
/*setter raises(DOMException)*/;
- readonly attribute SVGRect viewport;
+ readonly attribute [Immutable] SVGRect viewport;
readonly attribute float pixelUnitToMillimeterX;
readonly attribute float pixelUnitToMillimeterY;
readonly attribute float screenPixelToMillimeterX;
readonly attribute float screenPixelToMillimeterY;
attribute boolean useCurrentView
/*setter raises(DOMException)*/;
- // TODO readonly attribute SVGViewSpec currentView;
+ // TODO readonly attribute [Immutable] SVGViewSpec currentView;
attribute float currentScale
/*setter raises(DOMException)*/;
readonly attribute SVGPoint currentTranslate;
diff --git a/WebCore/svg/SVGSymbolElement.h b/WebCore/svg/SVGSymbolElement.h
index 404e50e..1f310f8 100644
--- a/WebCore/svg/SVGSymbolElement.h
+++ b/WebCore/svg/SVGSymbolElement.h
@@ -22,7 +22,6 @@
#define SVGSymbolElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
#include "SVGLangSpace.h"
@@ -51,7 +50,7 @@ namespace WebCore {
DECLARE_ANIMATED_PROPERTY(SVGSymbolElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGSymbolElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
+ DECLARE_ANIMATED_PROPERTY(SVGSymbolElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
DECLARE_ANIMATED_PROPERTY(SVGSymbolElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
};
diff --git a/WebCore/svg/SVGViewElement.h b/WebCore/svg/SVGViewElement.h
index 329ea78..b483236 100644
--- a/WebCore/svg/SVGViewElement.h
+++ b/WebCore/svg/SVGViewElement.h
@@ -22,7 +22,6 @@
#define SVGViewElement_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
#include "SVGStyledElement.h"
#include "SVGExternalResourcesRequired.h"
#include "SVGFitToViewBox.h"
@@ -52,7 +51,7 @@ namespace WebCore {
DECLARE_ANIMATED_PROPERTY(SVGViewElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGViewElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
+ DECLARE_ANIMATED_PROPERTY(SVGViewElement, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
DECLARE_ANIMATED_PROPERTY(SVGViewElement, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
mutable RefPtr<SVGStringList> m_viewTarget;
diff --git a/WebCore/svg/SVGViewSpec.cpp b/WebCore/svg/SVGViewSpec.cpp
index 2eafff1..20c58ac 100644
--- a/WebCore/svg/SVGViewSpec.cpp
+++ b/WebCore/svg/SVGViewSpec.cpp
@@ -31,7 +31,7 @@
namespace WebCore {
-SVGViewSpec::SVGViewSpec(SVGElement* contextElement)
+SVGViewSpec::SVGViewSpec(const SVGSVGElement* contextElement)
: m_contextElement(contextElement)
, m_transform(SVGTransformList::create(SVGNames::transformAttr))
{
diff --git a/WebCore/svg/SVGViewSpec.h b/WebCore/svg/SVGViewSpec.h
index 491b7b8..cf64bca 100644
--- a/WebCore/svg/SVGViewSpec.h
+++ b/WebCore/svg/SVGViewSpec.h
@@ -21,8 +21,6 @@
#define SVGViewSpec_h
#if ENABLE(SVG)
-#include "SVGAnimatedPropertyMacros.h"
-#include "SVGElement.h"
#include "SVGFitToViewBox.h"
#include "SVGZoomAndPan.h"
@@ -31,13 +29,14 @@
namespace WebCore {
class SVGElement;
+ class SVGSVGElement;
class SVGTransformList;
class SVGViewSpec : public SVGFitToViewBox,
public SVGZoomAndPan,
public Noncopyable {
public:
- SVGViewSpec(SVGElement*);
+ SVGViewSpec(const SVGSVGElement*);
bool parseViewSpec(const String&);
@@ -52,13 +51,13 @@ namespace WebCore {
String viewTargetString() const { return m_viewTargetString; }
SVGElement* viewTarget() const;
- SVGElement* contextElement() const { return m_contextElement; }
+ SVGSVGElement* contextElement() const { return const_cast<SVGSVGElement*>(m_contextElement); }
private:
- SVGElement* m_contextElement;
+ const SVGSVGElement* m_contextElement;
// SVGFitToViewBox
- DECLARE_ANIMATED_PROPERTY_NEW(SVGViewSpec, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
+ DECLARE_ANIMATED_PROPERTY(SVGViewSpec, SVGNames::viewBoxAttr, FloatRect, ViewBox, viewBox)
DECLARE_ANIMATED_PROPERTY(SVGViewSpec, SVGNames::preserveAspectRatioAttr, SVGPreserveAspectRatio, PreserveAspectRatio, preserveAspectRatio)
mutable RefPtr<SVGTransformList> m_transform;
diff --git a/WebCore/svg/SVGZoomEvent.idl b/WebCore/svg/SVGZoomEvent.idl
index 7ddd08f..520f202 100644
--- a/WebCore/svg/SVGZoomEvent.idl
+++ b/WebCore/svg/SVGZoomEvent.idl
@@ -26,7 +26,7 @@
module svg {
interface [Conditional=SVG] SVGZoomEvent : UIEvent {
- readonly attribute SVGRect zoomRectScreen;
+ readonly attribute [Immutable] SVGRect zoomRectScreen;
readonly attribute float previousScale;
readonly attribute [Immutable] SVGPoint previousTranslate;
readonly attribute float newScale;
diff --git a/WebCore/svg/properties/SVGAnimatedPropertyMacros.h b/WebCore/svg/properties/SVGAnimatedPropertyMacros.h
index b3258c8..ac7b54b 100644
--- a/WebCore/svg/properties/SVGAnimatedPropertyMacros.h
+++ b/WebCore/svg/properties/SVGAnimatedPropertyMacros.h
@@ -73,8 +73,7 @@ PropertyType& LowerProperty##BaseValue() const \
void set##UpperProperty##BaseValue(const PropertyType& type) \
{ \
m_##LowerProperty.value = type; \
- SVGElement* contextElement = GetOwnerElementForType<OwnerType, IsDerivedFromSVGElement<OwnerType>::value>::ownerElement(this); \
- contextElement->invalidateSVGAttributes(); \
+ invalidateSVGAttributes(); \
} \
\
void synchronize##UpperProperty() \
@@ -82,15 +81,13 @@ void synchronize##UpperProperty() \
if (!m_##LowerProperty.shouldSynchronize) \
return; \
AtomicString value(SVGPropertyTraits<PropertyType>::toString(LowerProperty##BaseValue())); \
- SVGElement* contextElement = GetOwnerElementForType<OwnerType, IsDerivedFromSVGElement<OwnerType>::value>::ownerElement(this); \
- SVGAnimatedPropertySynchronizer<IsDerivedFromSVGElement<OwnerType>::value>::synchronize(contextElement, DOMAttribute, value); \
+ SVGAnimatedPropertySynchronizer<IsDerivedFromSVGElement<OwnerType>::value>::synchronize(this, DOMAttribute, value); \
} \
\
PassRefPtr<TearOffType> LowerProperty##Animated() \
{ \
m_##LowerProperty.shouldSynchronize = true; \
- SVGElement* contextElement = GetOwnerElementForType<OwnerType, IsDerivedFromSVGElement<OwnerType>::value>::ownerElement(this); \
- return SVGAnimatedProperty::lookupOrCreateWrapper<TearOffType, PropertyType>(contextElement, DOMAttribute, SVGDOMAttributeIdentifier, m_##LowerProperty.value); \
+ return SVGAnimatedProperty::lookupOrCreateWrapper<TearOffType, PropertyType>(this, DOMAttribute, SVGDOMAttributeIdentifier, m_##LowerProperty.value); \
} \
private: \
mutable SVGSynchronizableAnimatedProperty<PropertyType> m_##LowerProperty;
@@ -106,8 +103,7 @@ DECLARE_ANIMATED_PROPERTY_NEW_SHARED(OwnerType, DOMAttribute, DOMAttribute.local
\
void detachAnimated##UpperProperty##ListWrappers(unsigned newListSize) \
{ \
- SVGElement* contextElement = GetOwnerElementForType<OwnerType, IsDerivedFromSVGElement<OwnerType>::value>::ownerElement(this); \
- SVGAnimatedProperty* wrapper = SVGAnimatedProperty::lookupWrapper<SVGAnimatedListPropertyTearOff<PropertyType> >(contextElement, DOMAttribute.localName()); \
+ SVGAnimatedProperty* wrapper = SVGAnimatedProperty::lookupWrapper<SVGAnimatedListPropertyTearOff<PropertyType> >(this, DOMAttribute.localName()); \
if (!wrapper) \
return; \
static_cast<SVGAnimatedListPropertyTearOff<PropertyType>*>(wrapper)->detachListWrappers(newListSize); \
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list