summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webkit/build/V8Bindings/SConscript10
-rw-r--r--webkit/build/V8Bindings/V8Bindings.vcproj32
-rw-r--r--webkit/data/layout_test_results/common/LayoutTests/svg/custom/tearoffs-with-tearoffs-expected.txt22
-rw-r--r--webkit/port/DerivedSources.make6
-rw-r--r--webkit/port/bindings/scripts/CodeGenerator.pm16
-rw-r--r--webkit/port/bindings/scripts/CodeGeneratorV8.pm71
-rw-r--r--webkit/port/bindings/v8/V8SVGPODTypeWrapper.h165
-rw-r--r--webkit/port/bindings/v8/v8_custom.cpp52
-rw-r--r--webkit/port/bindings/v8/v8_index.cpp6
-rw-r--r--webkit/port/bindings/v8/v8_index.h4
-rw-r--r--webkit/port/bindings/v8/v8_proxy.cpp49
-rw-r--r--webkit/port/page/DOMWindow.idl4
-rw-r--r--webkit/tools/layout_tests/test_lists/tests_fixable.txt21
-rw-r--r--webkit/webkit.xcodeproj/project.pbxproj24
14 files changed, 315 insertions, 167 deletions
diff --git a/webkit/build/V8Bindings/SConscript b/webkit/build/V8Bindings/SConscript
index 710763e..3af24fd 100644
--- a/webkit/build/V8Bindings/SConscript
+++ b/webkit/build/V8Bindings/SConscript
@@ -293,11 +293,15 @@ inputs = [
'$DERIVED_DIR/V8TreeWalker.cpp',
'$DERIVED_DIR/V8UIEvent.cpp',
'$DERIVED_DIR/V8UndetectableHTMLCollection.cpp',
- '$DERIVED_DIR/V8WebkitCSSKeyframeRule.cpp',
- '$DERIVED_DIR/V8WebkitCSSKeyframesRule.cpp',
+ '$DERIVED_DIR/V8WebKitAnimationEvent.cpp',
+ '$DERIVED_DIR/V8WebKitCSSKeyframeRule.cpp',
+ '$DERIVED_DIR/V8WebKitCSSKeyframesRule.cpp',
+ '$DERIVED_DIR/V8WebKitCSSTransformValue.cpp',
+ '$DERIVED_DIR/V8WebKitTransitionEvent.cpp',
'$DERIVED_DIR/V8WheelEvent.cpp',
'$DERIVED_DIR/V8XMLHttpRequest.cpp',
'$DERIVED_DIR/V8XMLHttpRequestException.cpp',
+ '$DERIVED_DIR/V8XMLHttpRequestProgressEvent.cpp',
'$DERIVED_DIR/V8XMLHttpRequestUpload.cpp',
'$DERIVED_DIR/V8XMLSerializer.cpp',
'$DERIVED_DIR/V8XPathEvaluator.cpp',
@@ -336,8 +340,6 @@ if env['PLATFORM'] in ('darwin', 'posix'):
'$DERIVED_DIR/SVGElementFactory.cpp',
'$DERIVED_DIR/V8SVGCursorElement.cpp',
'$DERIVED_DIR/V8SVGMaskElement.cpp',
- '$DERIVED_DIR/V8WebkitCSSKeyframeRule.cpp',
- '$DERIVED_DIR/V8WebkitCSSKeyframesRule.cpp',
]
for remove in remove_files:
inputs.remove(remove)
diff --git a/webkit/build/V8Bindings/V8Bindings.vcproj b/webkit/build/V8Bindings/V8Bindings.vcproj
index 209ba50..03836c4 100644
--- a/webkit/build/V8Bindings/V8Bindings.vcproj
+++ b/webkit/build/V8Bindings/V8Bindings.vcproj
@@ -2144,6 +2144,14 @@
>
</File>
<File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitAnimationEvent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitAnimationEvent.h"
+ >
+ </File>
+ <File
RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSKeyframeRule.cpp"
>
</File>
@@ -2160,6 +2168,22 @@
>
</File>
<File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSTransformValue.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSTransformValue.h"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitTransitionEvent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitTransitionEvent.h"
+ >
+ </File>
+ <File
RelativePath="$(IntDir)\DerivedSources\V8WheelEvent.cpp"
>
</File>
@@ -2192,6 +2216,14 @@
>
</File>
<File
+ RelativePath="$(IntDir)\DerivedSources\V8XMLHttpRequestProgressEvent.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8XMLHttpRequestProgressEvent.h"
+ >
+ </File>
+ <File
RelativePath="$(IntDir)\DerivedSources\V8XMLHttpRequestUpload.cpp"
>
</File>
diff --git a/webkit/data/layout_test_results/common/LayoutTests/svg/custom/tearoffs-with-tearoffs-expected.txt b/webkit/data/layout_test_results/common/LayoutTests/svg/custom/tearoffs-with-tearoffs-expected.txt
deleted file mode 100644
index 9594632..0000000
--- a/webkit/data/layout_test_results/common/LayoutTests/svg/custom/tearoffs-with-tearoffs-expected.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-layer at (0,0) size 800x600
- RenderView at (0,0) size 800x600
-layer at (0,0) size 800x600
- RenderSVGRoot {svg} at (50,36) size 510x198
- RenderSVGText {text} at (50,50) size 510x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,-14) size 510x18
- chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 82 width 510.00: "Testing whether a tearoff value within another tearoff value successfully updates."
- RenderSVGText {text} at (50,80) size 488x15 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,-12) size 488x15
- chunk 1 text run 1 at (50.00,80.00) startOffset 0 endOffset 61 width 488.00: "var transform = document.documentElement.createSVGTransform()"
- RenderSVGText {text} at (60,110) size 247x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,-14) size 247x18
- chunk 1 text run 1 at (60.00,110.00) startOffset 0 endOffset 39 width 247.00: "Current value of transform.matrix.a = 1"
- RenderSVGText {text} at (50,140) size 176x15 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,-12) size 176x15
- chunk 1 text run 1 at (50.00,140.00) startOffset 0 endOffset 22 width 176.00: "transform.matrix.a = 2"
- RenderSVGText {text} at (60,170) size 247x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,-14) size 247x18
- chunk 1 text run 1 at (60.00,170.00) startOffset 0 endOffset 39 width 247.00: "Current value of transform.matrix.a = 2"
- RenderSVGText {text} at (50,230) size 501x18 contains 1 chunk(s)
- RenderSVGInlineText {#text} at (0,-14) size 501x18
- chunk 1 text run 1 at (50.00,230.00) startOffset 0 endOffset 79 width 501.00: "The value of transform.matrix.a should be 1 before the assignment, 2 afterward."
diff --git a/webkit/port/DerivedSources.make b/webkit/port/DerivedSources.make
index f9622e7..870d73e 100644
--- a/webkit/port/DerivedSources.make
+++ b/webkit/port/DerivedSources.make
@@ -890,12 +890,16 @@ all : \
V8TreeWalker.h \
V8UIEvent.h \
V8VoidCallback.h \
+ V8WebKitAnimationEvent.h \
V8WebKitCSSKeyframeRule.h \
V8WebKitCSSKeyframesRule.h \
+ V8WebKitCSSTransformValue.h \
+ V8WebKitTransitionEvent.h \
V8WheelEvent.h \
V8XMLHttpRequest.h \
- V8XMLHttpRequestUpload.h \
V8XMLHttpRequestException.h \
+ V8XMLHttpRequestProgressEvent.h \
+ V8XMLHttpRequestUpload.h \
V8XMLSerializer.h \
V8XPathEvaluator.h \
V8XPathException.h \
diff --git a/webkit/port/bindings/scripts/CodeGenerator.pm b/webkit/port/bindings/scripts/CodeGenerator.pm
index d6900ee..d115459 100644
--- a/webkit/port/bindings/scripts/CodeGenerator.pm
+++ b/webkit/port/bindings/scripts/CodeGenerator.pm
@@ -35,14 +35,14 @@ my $codeGenerator = 0;
my $verbose = 0;
-my %primitiveTypeHash = ("int" => 1, "short" => 1, "long" => 1,
+my %primitiveTypeHash = ("int" => 1, "short" => 1, "long" => 1, "long long" => 1,
"unsigned int" => 1, "unsigned short" => 1,
"unsigned long" => 1, "float" => 1,
"unsigned long long" => 1,
"double" => 1, "boolean" => 1, "void" => 1);
-my %podTypeHash = ("SVGLength" => 1, "SVGPoint" => 1, "SVGRect" => 1, "SVGNumber" => 1, "SVGMatrix" => 1, "SVGTransform" => 1);
-
+my %podTypeHash = ("SVGNumber" => 1, "SVGTransform" => 1);
+my %podTypeWithWriteablePropertiesHash = ("SVGLength" => 1, "SVGMatrix" => 1, "SVGPoint" => 1, "SVGRect" => 1);
my %stringTypeHash = ("DOMString" => 1, "AtomicString" => 1);
my %nonPointerTypeHash = ("DOMTimeStamp" => 1, "CompareHow" => 1, "SVGPaintType" => 1);
@@ -233,9 +233,19 @@ sub IsPodType
my $type = shift;
return 1 if $podTypeHash{$type};
+ return 1 if $podTypeWithWriteablePropertiesHash{$type};
return 0;
}
+sub IsPodTypeWithWriteableProperties
+{
+ my $object = shift;
+ my $type = shift;
+
+ return 1 if $podTypeWithWriteablePropertiesHash{$type};
+ return 0;
+}
+
sub IsPrimitiveType
{
my $object = shift;
diff --git a/webkit/port/bindings/scripts/CodeGeneratorV8.pm b/webkit/port/bindings/scripts/CodeGeneratorV8.pm
index 7186575..81391b9 100644
--- a/webkit/port/bindings/scripts/CodeGeneratorV8.pm
+++ b/webkit/port/bindings/scripts/CodeGeneratorV8.pm
@@ -452,13 +452,6 @@ sub GenerateNormalAttrGetter
$attrIsPodType = 0;
}
- my $creatorType = "";
- if ($attrIsPodType) {
- if ($codeGenerator->IsSVGAnimatedType($implClassName)) {
- $creatorType = $implClassName;
- }
- }
-
my $getterStringUsesImp = $implClassName ne "double";
# Getter
@@ -538,7 +531,30 @@ END
my $wrapper;
if ($attrIsPodType) {
- $wrapper = GeneratePodTypeWrapper($attribute->signature, $getterString, $creatorType);
+ $implIncludes{"V8SVGPODTypeWrapper.h"} = 1;
+
+ my $getter = $getterString;
+ $getter =~ s/imp->//;
+ $getter =~ s/\(\)//;
+ my $setter = "set" . WK_ucfirst($getter);
+
+ my $implClassIsAnimatedType = $codeGenerator->IsSVGAnimatedType($implClassName);
+ if (not $implClassIsAnimatedType
+ and $codeGenerator->IsPodTypeWithWriteableProperties($attrType)
+ and not defined $attribute->signature->extendedAttributes->{"Immutable"}) {
+ if ($codeGenerator->IsPodType($implClassName)) {
+ $wrapper = "new V8SVGStaticPODTypeWrapperWithPODTypeParent<$nativeType, $implClassName>($getterString, imp_wrapper)";
+ } else {
+ $wrapper = "new V8SVGStaticPODTypeWrapperWithParent<$nativeType, $implClassName>(imp, &${implClassName}::$getter, &${implClassName}::$setter)";
+ }
+ } else {
+ if ($implClassIsAnimatedType) {
+ $wrapper = "V8SVGDynamicPODTypeWrapperCache<$nativeType, $implClassName>::lookupOrCreateWrapper(imp, &${implClassName}::$getter, &${implClassName}::$setter)";
+ } else {
+ $wrapper = GenerateSVGStaticPodTypeWrapper($returnType, $getterString);
+ }
+ }
+
push(@implContentDecls, " Peerable* wrapper = $wrapper;\n");
} elsif ($nativeType ne "RGBColor") {
push(@implContentDecls, " $nativeType v = ");
@@ -1315,7 +1331,7 @@ sub GenerateFunctionCallString()
$return = "wrapper";
} elsif ($returnsPodType) {
$result .= $indent . "V8SVGPODTypeWrapper<" . $nativeReturnType . ">* wrapper = ";
- $result .= GenerateReadOnlyPodTypeWrapper($returnType, $return) . ";\n";
+ $result .= GenerateSVGStaticPodTypeWrapper($returnType, $return) . ";\n";
$return = "wrapper";
}
@@ -1737,9 +1753,7 @@ sub NativeToJSValue
{
my $signature = shift;
my $value = shift;
-
- my $signatureType = $signature->type;
- my $type = $codeGenerator->StripModule($signatureType);
+ my $type = $codeGenerator->StripModule($signature->type);
my $className= "V8$type";
return "v8::Date::New(static_cast<double>($value))" if $type eq "DOMTimeStamp";
@@ -1800,41 +1814,14 @@ sub NativeToJSValue
my $classIndex = uc($type);
if ($codeGenerator->IsPodType($type)) {
- $value = GenerateReadOnlyPodTypeWrapper($type, $value);
+ $value = GenerateSVGStaticPodTypeWrapper($type, $value);
}
return "V8Proxy::ToV8Object(V8ClassIndex::$classIndex, $value)";
}
}
-sub GeneratePodTypeWrapper {
- my $signature = shift;
- my $value = shift;
- my $creatorType = shift;
-
- my $signatureType = $signature->type;
- my $type = $codeGenerator->StripModule($signatureType);
-
- my $classIndex = uc($type);
- my $nativeType = GetNativeType($type);
- $implIncludes{"V8$type.h"}=1;
- $implIncludes{"V8SVGPODTypeWrapper.h"} = 1;
-
- if ($creatorType ne "") {
- my $getter = $value;
- $getter =~ s/imp->//;
- $getter =~ s/\(\)//;
- my $setter = "set" . WK_ucfirst($getter);
- $value = "V8SVGPODTypeWrapperCache<$nativeType, $creatorType>::lookupOrCreateWrapper(imp, &${creatorType}::$getter, &${creatorType}::$setter)";
- } else {
- $value = GenerateReadOnlyPodTypeWrapper($type, $value);
- }
- AddIncludesForType($type);
-
- return $value;
-}
-
-sub GenerateReadOnlyPodTypeWrapper {
+sub GenerateSVGStaticPodTypeWrapper {
my $type = shift;
my $value = shift;
@@ -1842,7 +1829,7 @@ sub GenerateReadOnlyPodTypeWrapper {
$implIncludes{"V8SVGPODTypeWrapper.h"} = 1;
my $nativeType = GetNativeType($type);
- return "new V8SVGPODTypeWrapperCreatorReadOnly<$nativeType>($value)";
+ return "new V8SVGStaticPODTypeWrapper<$nativeType>($value)";
}
# Internal helper
diff --git a/webkit/port/bindings/v8/V8SVGPODTypeWrapper.h b/webkit/port/bindings/v8/V8SVGPODTypeWrapper.h
index 94ddf5d..2638b79 100644
--- a/webkit/port/bindings/v8/V8SVGPODTypeWrapper.h
+++ b/webkit/port/bindings/v8/V8SVGPODTypeWrapper.h
@@ -1,6 +1,29 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
+/*
+ * Copyright (C) 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
+ * Copyright (C) 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2008 The Chromium Authors. 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 COMPUTER, 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 COMPUTER, 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.
+ */
#ifndef V8SVGPODTypeWrapper_h
#define V8SVGPODTypeWrapper_h
@@ -19,15 +42,11 @@ namespace WebCore {
template<typename PODType>
class V8SVGPODTypeWrapper : public RefCounted<V8SVGPODTypeWrapper<PODType> > {
public:
- V8SVGPODTypeWrapper() : RefCounted<V8SVGPODTypeWrapper<PODType> >(0) {
- }
- virtual ~V8SVGPODTypeWrapper() {
- }
-
- // Getter wrapper
+ // Start with a refcount of 0 because the only reference to this
+ // object will be the JavaScript peer created for it.
+ V8SVGPODTypeWrapper() : RefCounted<V8SVGPODTypeWrapper<PODType> >(0) { }
+ virtual ~V8SVGPODTypeWrapper() { }
virtual operator PODType() = 0;
-
- // Setter wrapper
virtual void commitChange(PODType, SVGElement*) = 0;
};
@@ -75,14 +94,14 @@ private:
};
template<typename PODType>
-class V8SVGPODTypeWrapperCreatorReadOnly : public V8SVGPODTypeWrapper<PODType>
+class V8SVGStaticPODTypeWrapper : public V8SVGPODTypeWrapper<PODType>
{
public:
- V8SVGPODTypeWrapperCreatorReadOnly(PODType type)
+ V8SVGStaticPODTypeWrapper(PODType type)
: m_podType(type)
{ }
- virtual ~V8SVGPODTypeWrapperCreatorReadOnly() { }
+ virtual ~V8SVGStaticPODTypeWrapper() { }
// Getter wrapper
virtual operator PODType() { return m_podType; }
@@ -97,15 +116,69 @@ private:
PODType m_podType;
};
+template<typename PODType, typename ParentTypeArg>
+class V8SVGStaticPODTypeWrapperWithPODTypeParent : public V8SVGStaticPODTypeWrapper<PODType> {
+public:
+ typedef V8SVGPODTypeWrapper<ParentTypeArg> ParentType;
+
+ V8SVGStaticPODTypeWrapperWithPODTypeParent(PODType type, ParentType* parent)
+ : V8SVGStaticPODTypeWrapper<PODType>(type)
+ , m_parentType(parent)
+ {
+ }
+
+ virtual void commitChange(PODType type, SVGElement* context)
+ {
+ V8SVGStaticPODTypeWrapper<PODType>::commitChange(type, context);
+ m_parentType->commitChange(ParentTypeArg(type), context);
+ }
+
+private:
+ RefPtr<ParentType> m_parentType;
+};
+
+template<typename PODType, typename ParentType>
+class V8SVGStaticPODTypeWrapperWithParent : public V8SVGPODTypeWrapper<PODType> {
+public:
+ typedef PODType (ParentType::*GetterMethod)() const;
+ typedef void (ParentType::*SetterMethod)(const PODType&);
+
+ V8SVGStaticPODTypeWrapperWithParent(ParentType* parent, GetterMethod getter, SetterMethod setter)
+ : m_parent(parent)
+ , m_getter(getter)
+ , m_setter(setter)
+ {
+ ASSERT(m_parent);
+ ASSERT(m_getter);
+ ASSERT(m_setter);
+ }
+
+ virtual operator PODType()
+ {
+ return (m_parent.get()->*m_getter)();
+ }
+
+ virtual void commitChange(PODType type, SVGElement* context)
+ {
+ (m_parent.get()->*m_setter)(type);
+ }
+
+private:
+ // Update callbacks
+ RefPtr<ParentType> m_parent;
+ GetterMethod m_getter;
+ SetterMethod m_setter;
+};
+
template<typename PODType, typename PODTypeCreator>
-class V8SVGPODTypeWrapperCreatorReadWrite : public V8SVGPODTypeWrapper<PODType>
+class V8SVGDynamicPODTypeWrapper : public V8SVGPODTypeWrapper<PODType>
{
public:
typedef PODType (PODTypeCreator::*GetterMethod)() const;
typedef void (PODTypeCreator::*SetterMethod)(PODType);
typedef void (*CacheRemovalCallback)(V8SVGPODTypeWrapper<PODType>*);
- V8SVGPODTypeWrapperCreatorReadWrite(PODTypeCreator* creator, GetterMethod getter, SetterMethod setter, CacheRemovalCallback cacheRemovalCallback)
+ V8SVGDynamicPODTypeWrapper(PODTypeCreator* creator, GetterMethod getter, SetterMethod setter, CacheRemovalCallback cacheRemovalCallback)
: m_creator(creator)
, m_getter(getter)
, m_setter(setter)
@@ -117,7 +190,7 @@ public:
ASSERT(cacheRemovalCallback);
}
- virtual ~V8SVGPODTypeWrapperCreatorReadWrite() {
+ virtual ~V8SVGDynamicPODTypeWrapper() {
ASSERT(m_cacheRemovalCallback);
(*m_cacheRemovalCallback)(this);
@@ -129,9 +202,6 @@ public:
// Setter wrapper
virtual void commitChange(PODType type, SVGElement* context)
{
- if (!m_setter)
- return;
-
(m_creator.get()->*m_setter)(type);
if (context)
@@ -148,19 +218,19 @@ private:
// Caching facilities
template<typename PODType, typename PODTypeCreator>
-struct PODTypeReadWriteHashInfo {
+struct PODTypeWrapperCacheInfo {
typedef PODType (PODTypeCreator::*GetterMethod)() const;
typedef void (PODTypeCreator::*SetterMethod)(PODType);
// Empty value
- PODTypeReadWriteHashInfo()
+ PODTypeWrapperCacheInfo()
: creator(0)
, getter(0)
, setter(0)
{ }
// Deleted value
- explicit PODTypeReadWriteHashInfo(WTF::HashTableDeletedValueType)
+ explicit PODTypeWrapperCacheInfo(WTF::HashTableDeletedValueType)
: creator(reinterpret_cast<PODTypeCreator*>(-1))
{
}
@@ -169,7 +239,7 @@ struct PODTypeReadWriteHashInfo {
return creator == reinterpret_cast<PODTypeCreator*>(-1);
}
- PODTypeReadWriteHashInfo(PODTypeCreator* _creator, GetterMethod _getter, SetterMethod _setter)
+ PODTypeWrapperCacheInfo(PODTypeCreator* _creator, GetterMethod _getter, SetterMethod _setter)
: creator(_creator)
, getter(_getter)
, setter(_setter)
@@ -178,7 +248,7 @@ struct PODTypeReadWriteHashInfo {
ASSERT(getter);
}
- bool operator==(const PODTypeReadWriteHashInfo& other) const
+ bool operator==(const PODTypeWrapperCacheInfo& other) const
{
return creator == other.creator && getter == other.getter && setter == other.setter;
}
@@ -189,13 +259,13 @@ struct PODTypeReadWriteHashInfo {
};
template<typename PODType, typename PODTypeCreator>
-struct PODTypeReadWriteHashInfoHash {
- static unsigned hash(const PODTypeReadWriteHashInfo<PODType, PODTypeCreator>& info)
+struct PODTypeWrapperCacheInfoHash {
+ static unsigned hash(const PODTypeWrapperCacheInfo<PODType, PODTypeCreator>& info)
{
- return StringImpl::computeHash((::UChar*) &info, sizeof(PODTypeReadWriteHashInfo<PODType, PODTypeCreator>) / sizeof(::UChar));
+ return StringImpl::computeHash((::UChar*) &info, sizeof(PODTypeWrapperCacheInfo<PODType, PODTypeCreator>) / sizeof(::UChar));
}
- static bool equal(const PODTypeReadWriteHashInfo<PODType, PODTypeCreator>& a, const PODTypeReadWriteHashInfo<PODType, PODTypeCreator>& b)
+ static bool equal(const PODTypeWrapperCacheInfo<PODType, PODTypeCreator>& a, const PODTypeWrapperCacheInfo<PODType, PODTypeCreator>& b)
{
return a == b;
}
@@ -204,8 +274,8 @@ struct PODTypeReadWriteHashInfoHash {
};
template<typename PODType, typename PODTypeCreator>
-struct PODTypeReadWriteHashInfoTraits : WTF::GenericHashTraits<PODTypeReadWriteHashInfo<PODType, PODTypeCreator> > {
- typedef PODTypeReadWriteHashInfo<PODType, PODTypeCreator> CacheInfo;
+struct PODTypeWrapperCacheInfoTraits : WTF::GenericHashTraits<PODTypeWrapperCacheInfo<PODType, PODTypeCreator> > {
+ typedef PODTypeWrapperCacheInfo<PODType, PODTypeCreator> CacheInfo;
static const bool emptyValueIsZero = true;
static const bool needsDestruction = false;
@@ -228,31 +298,38 @@ struct PODTypeReadWriteHashInfoTraits : WTF::GenericHashTraits<PODTypeReadWriteH
};
template<typename PODType, typename PODTypeCreator>
-class V8SVGPODTypeWrapperCache
+class V8SVGDynamicPODTypeWrapperCache
{
public:
typedef PODType (PODTypeCreator::*GetterMethod)() const;
typedef void (PODTypeCreator::*SetterMethod)(PODType);
- typedef HashMap<PODTypeReadWriteHashInfo<PODType, PODTypeCreator>, V8SVGPODTypeWrapperCreatorReadWrite<PODType, PODTypeCreator>*, PODTypeReadWriteHashInfoHash<PODType, PODTypeCreator>, PODTypeReadWriteHashInfoTraits<PODType, PODTypeCreator> > ReadWriteHashMap;
- typedef typename ReadWriteHashMap::const_iterator ReadWriteHashMapIterator;
+ typedef PODTypeWrapperCacheInfo<PODType, PODTypeCreator> CacheInfo;
+ typedef PODTypeWrapperCacheInfoHash<PODType, PODTypeCreator> CacheInfoHash;
+ typedef PODTypeWrapperCacheInfoTraits<PODType, PODTypeCreator> CacheInfoTraits;
+
+ typedef V8SVGPODTypeWrapper<PODType> WrapperBase;
+ typedef V8SVGDynamicPODTypeWrapper<PODType, PODTypeCreator> DynamicWrapper;
+
+ typedef HashMap<CacheInfo, DynamicWrapper*, CacheInfoHash, CacheInfoTraits> DynamicWrapperHashMap;
+ typedef typename DynamicWrapperHashMap::const_iterator DynamicWrapperHashMapIterator;
- static ReadWriteHashMap& readWriteHashMap()
+ static DynamicWrapperHashMap& dynamicWrapperHashMap()
{
- static ReadWriteHashMap _readWriteHashMap;
- return _readWriteHashMap;
+ static DynamicWrapperHashMap _dynamicWrapperHashMap;
+ return _dynamicWrapperHashMap;
}
// Used for readwrite attributes only
- static V8SVGPODTypeWrapper<PODType>* lookupOrCreateWrapper(PODTypeCreator* creator, GetterMethod getter, SetterMethod setter)
+ static WrapperBase* lookupOrCreateWrapper(PODTypeCreator* creator, GetterMethod getter, SetterMethod setter)
{
- ReadWriteHashMap& map(readWriteHashMap());
- PODTypeReadWriteHashInfo<PODType, PODTypeCreator> info(creator, getter, setter);
+ DynamicWrapperHashMap& map(dynamicWrapperHashMap());
+ CacheInfo info(creator, getter, setter);
if (map.contains(info))
return map.get(info);
- V8SVGPODTypeWrapperCreatorReadWrite<PODType, PODTypeCreator>* wrapper = new V8SVGPODTypeWrapperCreatorReadWrite<PODType, PODTypeCreator>(
+ DynamicWrapper* wrapper = new V8SVGDynamicPODTypeWrapper<PODType, PODTypeCreator>(
creator, getter, setter, forgetWrapper);
map.set(info, wrapper);
return wrapper;
@@ -260,10 +337,10 @@ public:
static void forgetWrapper(V8SVGPODTypeWrapper<PODType>* wrapper)
{
- ReadWriteHashMap& map(readWriteHashMap());
+ DynamicWrapperHashMap& map(dynamicWrapperHashMap());
- ReadWriteHashMapIterator it = map.begin();
- ReadWriteHashMapIterator end = map.end();
+ DynamicWrapperHashMapIterator it = map.begin();
+ DynamicWrapperHashMapIterator end = map.end();
for (; it != end; ++it) {
if (it->second != wrapper)
diff --git a/webkit/port/bindings/v8/v8_custom.cpp b/webkit/port/bindings/v8/v8_custom.cpp
index ea290e0..032e30e 100644
--- a/webkit/port/bindings/v8/v8_custom.cpp
+++ b/webkit/port/bindings/v8/v8_custom.cpp
@@ -3238,6 +3238,33 @@ CALLBACK_FUNC_DECL(NSResolverLookupNamespaceURI) {
return v8::Undefined();
}
+
+static String EventNameFromAttributeName(const String& name) {
+ ASSERT(name.startsWith("on"));
+ String event_type = name.substring(2);
+
+ if (event_type.startsWith("w")) {
+ switch(event_type[event_type.length() - 1]) {
+ case 't':
+ event_type = "webkitAnimationStart";
+ break;
+ case 'n':
+ event_type = "webkitAnimationIteration";
+ break;
+ case 'd':
+ ASSERT(event_type.length() > 7);
+ if (event_type[7] == 'a')
+ event_type = "webkitAnimationEnd";
+ else
+ event_type = "webkitTransitionEnd";
+ break;
+ }
+ }
+
+ return event_type;
+}
+
+
ACCESSOR_SETTER(DOMWindowEventHandler) {
v8::Handle<v8::Object> holder = V8Proxy::LookupDOMWrapper(
V8ClassIndex::DOMWINDOW, info.This());
@@ -3253,11 +3280,9 @@ ACCESSOR_SETTER(DOMWindowEventHandler) {
if (!doc)
return;
- // Name starts with 'on', remove them.
String key = ToWebCoreString(name);
- ASSERT(key.startsWith("on"));
- String event_type = key.substring(2);
-
+ String event_type = EventNameFromAttributeName(key);
+
if (value->IsNull()) {
// Clear the event listener
doc->removeHTMLWindowEventListener(event_type);
@@ -3290,10 +3315,8 @@ ACCESSOR_GETTER(DOMWindowEventHandler) {
if (!doc)
return v8::Undefined();
- // Name starts with 'on', remove them.
String key = ToWebCoreString(name);
- ASSERT(key.startsWith("on"));
- String event_type = key.substring(2);
+ String event_type = EventNameFromAttributeName(key);
EventListener* listener = doc->getHTMLWindowEventListener(event_type);
return V8Proxy::EventListenerToV8Object(listener);
@@ -3370,14 +3393,17 @@ ACCESSOR_SETTER(HTMLOptionsCollectionLength) {
ACCESSOR_GETTER(SVGLengthValue) {
INC_STATS(L"DOM.SVGLength.value");
V8SVGPODTypeWrapper<SVGLength>* wrapper = V8Proxy::ToNativeObject<V8SVGPODTypeWrapper<SVGLength> >(V8ClassIndex::SVGLENGTH, info.Holder());
- SVGLength imp_instance = *wrapper;
- SVGLength* imp = &imp_instance;
- return v8::Number::New(imp->value(V8Proxy::GetSVGContext(wrapper)));
+ SVGLength imp = *wrapper;
+ return v8::Number::New(imp.value(V8Proxy::GetSVGContext(wrapper)));
}
CALLBACK_FUNC_DECL(SVGLengthConvertToSpecifiedUnits) {
INC_STATS(L"DOM.SVGLength.convertToSpecifiedUnits");
- V8Proxy::SetDOMException(NOT_SUPPORTED_ERR);
+ V8SVGPODTypeWrapper<SVGLength>* wrapper = V8Proxy::ToNativeObject<V8SVGPODTypeWrapper<SVGLength> >(V8ClassIndex::SVGLENGTH, args.Holder());
+ SVGLength imp = *wrapper;
+ SVGElement* context = V8Proxy::GetSVGContext(wrapper);
+ imp.convertToSpecifiedUnits(ToInt32(args[0]), context);
+ wrapper->commitChange(imp, context);
return v8::Undefined();
}
@@ -3397,7 +3423,7 @@ CALLBACK_FUNC_DECL(SVGMatrixInverse) {
}
Peerable* peer = static_cast<Peerable*>(
- new V8SVGPODTypeWrapperCreatorReadOnly<AffineTransform>(result));
+ new V8SVGStaticPODTypeWrapper<AffineTransform>(result));
return V8Proxy::ToV8Object(V8ClassIndex::SVGMATRIX, peer);
}
@@ -3420,7 +3446,7 @@ CALLBACK_FUNC_DECL(SVGMatrixRotateFromVector) {
}
Peerable* peer = static_cast<Peerable*>(
- new V8SVGPODTypeWrapperCreatorReadOnly<AffineTransform>(result));
+ new V8SVGStaticPODTypeWrapper<AffineTransform>(result));
return V8Proxy::ToV8Object(V8ClassIndex::SVGMATRIX, peer);
}
diff --git a/webkit/port/bindings/v8/v8_index.cpp b/webkit/port/bindings/v8/v8_index.cpp
index 821072f..da59756 100644
--- a/webkit/port/bindings/v8/v8_index.cpp
+++ b/webkit/port/bindings/v8/v8_index.cpp
@@ -155,8 +155,11 @@
#include "V8EventTargetNode.h"
#include "V8KeyboardEvent.h"
#include "V8MouseEvent.h"
+#include "V8WebKitAnimationEvent.h"
#include "V8WebKitCSSKeyframeRule.h"
#include "V8WebKitCSSKeyframesRule.h"
+#include "V8WebKitCSSTransformValue.h"
+#include "V8WebKitTransitionEvent.h"
#include "V8WheelEvent.h"
#include "V8UIEvent.h"
#include "V8MutationEvent.h"
@@ -182,8 +185,9 @@
#include "V8XPathExpression.h"
#include "V8XPathNSResolver.h"
#include "V8XMLHttpRequest.h"
-#include "V8XMLHttpRequestUpload.h"
#include "V8XMLHttpRequestException.h"
+#include "V8XMLHttpRequestProgressEvent.h"
+#include "V8XMLHttpRequestUpload.h"
#include "V8XMLSerializer.h"
#include "V8XPathEvaluator.h"
#include "V8XSLTProcessor.h"
diff --git a/webkit/port/bindings/v8/v8_index.h b/webkit/port/bindings/v8/v8_index.h
index 538326d..4be3f1bf9 100644
--- a/webkit/port/bindings/v8/v8_index.h
+++ b/webkit/port/bindings/v8/v8_index.h
@@ -275,12 +275,16 @@ typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)();
V(TEXTMETRICS, TextMetrics) \
V(TREEWALKER, TreeWalker) \
V(UIEVENT, UIEvent) \
+ V(WEBKITANIMATIONEVENT, WebKitAnimationEvent) \
V(WEBKITCSSKEYFRAMERULE, WebKitCSSKeyframeRule) \
V(WEBKITCSSKEYFRAMESRULE, WebKitCSSKeyframesRule) \
+ V(WEBKITCSSTRANSFORMVALUE, WebKitCSSTransformValue) \
+ V(WEBKITTRANSITIONEVENT, WebKitTransitionEvent) \
V(WHEELEVENT, WheelEvent) \
V(XMLHTTPREQUEST, XMLHttpRequest) \
V(XMLHTTPREQUESTUPLOAD, XMLHttpRequestUpload) \
V(XMLHTTPREQUESTEXCEPTION, XMLHttpRequestException) \
+ V(XMLHTTPREQUESTPROGRESSEVENT, XMLHttpRequestProgressEvent) \
V(XMLSERIALIZER, XMLSerializer) \
V(XPATHEVALUATOR, XPathEvaluator) \
V(XPATHEXCEPTION, XPathException) \
diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp
index d6055ea..2d4109a 100644
--- a/webkit/port/bindings/v8/v8_proxy.cpp
+++ b/webkit/port/bindings/v8/v8_proxy.cpp
@@ -86,6 +86,7 @@
#include "ScriptController.h"
#include "NodeFilter.h"
#include "SecurityOrigin.h"
+#include "WebKitCSSTransformValue.h"
#include "XMLHttpRequestException.h"
#include "XPathException.h"
@@ -93,6 +94,7 @@
#include "SVGElement.h"
#include "SVGElementInstance.h"
#include "SVGException.h"
+#include "SVGZoomEvent.h"
#endif
#if ENABLE(XPATH)
@@ -2312,24 +2314,37 @@ v8::Handle<v8::Value> V8Proxy::EventToV8Object(Event* event)
V8ClassIndex::V8WrapperType type = V8ClassIndex::EVENT;
- if (event->isKeyboardEvent())
- type = V8ClassIndex::KEYBOARDEVENT;
- else if (event->isMouseEvent())
- type = V8ClassIndex::MOUSEEVENT;
- else if (event->isMessageEvent())
- type = V8ClassIndex::MESSAGEEVENT;
- else if (event->isWheelEvent())
- type = V8ClassIndex::WHEELEVENT;
- else if (event->isTextEvent())
- type = V8ClassIndex::TEXTEVENT;
- else if (event->isUIEvent())
- type = V8ClassIndex::UIEVENT;
- else if (event->isMutationEvent())
+ if (event->isUIEvent()) {
+ if (event->isKeyboardEvent())
+ type = V8ClassIndex::KEYBOARDEVENT;
+ else if (event->isTextEvent())
+ type = V8ClassIndex::TEXTEVENT;
+ else if (event->isMouseEvent())
+ type = V8ClassIndex::MOUSEEVENT;
+ else if (event->isWheelEvent())
+ type = V8ClassIndex::WHEELEVENT;
+#if ENABLE(SVG)
+ else if (event->isSVGZoomEvent())
+ type = V8ClassIndex::SVGZOOMEVENT;
+#endif
+ else
+ type = V8ClassIndex::UIEVENT;
+ } else if (event->isMutationEvent())
type = V8ClassIndex::MUTATIONEVENT;
else if (event->isOverflowEvent())
type = V8ClassIndex::OVERFLOWEVENT;
- else if (event->isProgressEvent())
- type = V8ClassIndex::PROGRESSEVENT;
+ else if (event->isMessageEvent())
+ type = V8ClassIndex::MESSAGEEVENT;
+ else if (event->isProgressEvent()) {
+ if (event->isXMLHttpRequestProgressEvent())
+ type = V8ClassIndex::XMLHTTPREQUESTPROGRESSEVENT;
+ else
+ type = V8ClassIndex::PROGRESSEVENT;
+ } else if (event->isWebKitAnimationEvent())
+ type = V8ClassIndex::WEBKITANIMATIONEVENT;
+ else if (event->isWebKitTransitionEvent())
+ type = V8ClassIndex::WEBKITTRANSITIONEVENT;
+
// Set the peer object for future access.
v8::Handle<v8::Object> result =
@@ -2582,7 +2597,9 @@ v8::Handle<v8::Value> V8Proxy::CSSValueToV8Object(CSSValue* value) {
V8ClassIndex::V8WrapperType type;
- if (value->isValueList())
+ if (value->isWebKitCSSTransformValue())
+ type = V8ClassIndex::WEBKITCSSTRANSFORMVALUE;
+ else if (value->isValueList())
type = V8ClassIndex::CSSVALUELIST;
else if (value->isPrimitiveValue())
type = V8ClassIndex::CSSPRIMITIVEVALUE;
diff --git a/webkit/port/page/DOMWindow.idl b/webkit/port/page/DOMWindow.idl
index 6626c31..e6e0c31 100644
--- a/webkit/port/page/DOMWindow.idl
+++ b/webkit/port/page/DOMWindow.idl
@@ -445,6 +445,10 @@ module window {
attribute [Custom=DOMWindowEventHandler] DOMString onsubmit;
attribute [Custom=DOMWindowEventHandler] DOMString onunload;
attribute [Custom=DOMWindowEventHandler] DOMString onbeforeunload;
+ attribute [Custom=DOMWindowEventHandler] DOMString onwebkitanimationstart;
+ attribute [Custom=DOMWindowEventHandler] DOMString onwebkitanimationiteration;
+ attribute [Custom=DOMWindowEventHandler] DOMString onwebkitanimationend;
+ attribute [Custom=DOMWindowEventHandler] DOMString onwebkittransitionend;
#endif // defined(V8_BINDING)
};
}
diff --git a/webkit/tools/layout_tests/test_lists/tests_fixable.txt b/webkit/tools/layout_tests/test_lists/tests_fixable.txt
index 816665c..ffd85d7 100644
--- a/webkit/tools/layout_tests/test_lists/tests_fixable.txt
+++ b/webkit/tools/layout_tests/test_lists/tests_fixable.txt
@@ -827,20 +827,6 @@ V8 | KJS # LayoutTests/fast/repaint/shadow-multiple-strict-horizontal.html = FAI
V8 | KJS # LayoutTests/fast/repaint/shadow-multiple-strict-vertical.html = FAIL
V8 | KJS # LayoutTests/fast/repaint/shadow-multiple-vertical.html = FAIL
-# Transition tests fail.
-# http://code.google.com/p/chromium/issues/detail?id=2996
-V8 | KJS # LayoutTests/transitions/transition-end-event-all-properties.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-attributes.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-container.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-left.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-multiple-01.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-multiple-02.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-multiple-03.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-multiple-04.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-nested.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-transform.html = FAIL
-V8 | KJS # LayoutTests/transitions/transition-end-event-window.html = FAIL
-
# This test times out for an unknown reason
# http://code.google.com/p/chromium/issues/detail?id=3005
V8 | KJS # LayoutTests/fast/events/tabindex-focus-blur-all.html = TIMEOUT
@@ -960,14 +946,7 @@ V8 | KJS # LayoutTests/plugins/return-error-from-new-stream-doesnt-invoke-destro
V8 | KJS # LayoutTests/printing = FAIL
V8 | KJS # LayoutTests/security/autocomplete-cleared-on-back.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/security/set-form-autocomplete-attribute.html = FAIL
-V8 | KJS # LayoutTests/svg/custom/immutable-properties.html = FAIL
-V8 | KJS # LayoutTests/svg/custom/svg-modify-currentTranslate.html = FAIL
-V8 | KJS # LayoutTests/svg/custom/tearoffs-with-tearoffs.html = FAIL
V8 | KJS # LayoutTests/svg/dom/altGlyph-dom.xhtml = FAIL
-V8 | KJS # LayoutTests/svg/dynamic-updates/SVGLinearGradientElement-svgdom-gradientTransform-prop.html = FAIL
-V8 | KJS # LayoutTests/svg/dynamic-updates/SVGPatternElement-svgdom-patternTransform-prop.html = FAIL
-V8 | KJS # LayoutTests/svg/dynamic-updates/SVGRadialGradientElement-svgdom-gradientTransform-prop.html = FAIL
-
// Post-MERGE failures: these will all need to be fixed one day
V8 | KJS # LayoutTests/editing/execCommand/outdent-selection.gchtml = FAIL
diff --git a/webkit/webkit.xcodeproj/project.pbxproj b/webkit/webkit.xcodeproj/project.pbxproj
index 8857183..6ae0a01 100644
--- a/webkit/webkit.xcodeproj/project.pbxproj
+++ b/webkit/webkit.xcodeproj/project.pbxproj
@@ -44,6 +44,10 @@
4D11C52F0E9AC1C700EF7617 /* EventHandlerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7B5E8EFF0D7F3C48001ECF42 /* EventHandlerMac.mm */; };
4D11C5520E9AC23100EF7617 /* RenderThemeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = E49E50DE0E65E33200AD47F7 /* RenderThemeMac.mm */; };
4D7B071F0E9DAE56009A6919 /* GraphicsContextStub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4D7B071E0E9DAE56009A6919 /* GraphicsContextStub.cpp */; };
+ 4DB299C50EA4DD1E007EA4CF /* V8WebKitAnimationEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB299BD0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.cpp */; };
+ 4DB299C60EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB299BF0EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.cpp */; };
+ 4DB299C70EA4DD1E007EA4CF /* V8WebKitTransitionEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB299C10EA4DD1E007EA4CF /* V8WebKitTransitionEvent.cpp */; };
+ 4DB299C80EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB299C30EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.cpp */; };
4DB7EF7B0E9B9F0200C66CE0 /* V8CSSVariablesDeclaration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF770E9B9F0200C66CE0 /* V8CSSVariablesDeclaration.cpp */; };
4DB7EF7C0E9B9F0200C66CE0 /* V8CSSVariablesRule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF790E9B9F0200C66CE0 /* V8CSSVariablesRule.cpp */; };
4DB7EF920E9B9F6300C66CE0 /* V8CanvasPixelArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4DB7EF800E9B9F6300C66CE0 /* V8CanvasPixelArray.cpp */; };
@@ -1359,6 +1363,14 @@
4D11C4DA0E9ABE9200EF7617 /* ScriptControllerKJS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptControllerKJS.cpp; sourceTree = "<group>"; };
4D11C4DB0E9ABE9200EF7617 /* ScriptControllerV8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptControllerV8.cpp; sourceTree = "<group>"; };
4D7B071E0E9DAE56009A6919 /* GraphicsContextStub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GraphicsContextStub.cpp; path = mac/GraphicsContextStub.cpp; sourceTree = "<group>"; };
+ 4DB299BD0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8WebKitAnimationEvent.cpp; sourceTree = "<group>"; };
+ 4DB299BE0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8WebKitAnimationEvent.h; sourceTree = "<group>"; };
+ 4DB299BF0EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8WebKitCSSTransformValue.cpp; sourceTree = "<group>"; };
+ 4DB299C00EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8WebKitCSSTransformValue.h; sourceTree = "<group>"; };
+ 4DB299C10EA4DD1E007EA4CF /* V8WebKitTransitionEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8WebKitTransitionEvent.cpp; sourceTree = "<group>"; };
+ 4DB299C20EA4DD1E007EA4CF /* V8WebKitTransitionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8WebKitTransitionEvent.h; sourceTree = "<group>"; };
+ 4DB299C30EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8XMLHttpRequestProgressEvent.cpp; sourceTree = "<group>"; };
+ 4DB299C40EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8XMLHttpRequestProgressEvent.h; sourceTree = "<group>"; };
4DB7EF770E9B9F0200C66CE0 /* V8CSSVariablesDeclaration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8CSSVariablesDeclaration.cpp; sourceTree = "<group>"; };
4DB7EF780E9B9F0200C66CE0 /* V8CSSVariablesDeclaration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8CSSVariablesDeclaration.h; sourceTree = "<group>"; };
4DB7EF790E9B9F0200C66CE0 /* V8CSSVariablesRule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = V8CSSVariablesRule.cpp; sourceTree = "<group>"; };
@@ -6779,16 +6791,24 @@
7B0093660DAFEFE500F72082 /* V8UIEvent.h */,
7B0093670DAFEFE500F72082 /* V8UndetectableHTMLCollection.cpp */,
7B0093680DAFEFE500F72082 /* V8UndetectableHTMLCollection.h */,
+ 4DB299BD0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.cpp */,
+ 4DB299BE0EA4DD1E007EA4CF /* V8WebKitAnimationEvent.h */,
4DB7F9A40E9BEB9B00C66CE0 /* V8WebKitCSSKeyframeRule.cpp */,
4DB7F9A50E9BEB9B00C66CE0 /* V8WebKitCSSKeyframeRule.h */,
4DB7F9A60E9BEB9B00C66CE0 /* V8WebKitCSSKeyframesRule.cpp */,
4DB7F9A70E9BEB9B00C66CE0 /* V8WebKitCSSKeyframesRule.h */,
+ 4DB299BF0EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.cpp */,
+ 4DB299C00EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.h */,
+ 4DB299C10EA4DD1E007EA4CF /* V8WebKitTransitionEvent.cpp */,
+ 4DB299C20EA4DD1E007EA4CF /* V8WebKitTransitionEvent.h */,
7B00936B0DAFEFE500F72082 /* V8WheelEvent.cpp */,
7B00936C0DAFEFE500F72082 /* V8WheelEvent.h */,
7B00936F0DAFEFE500F72082 /* V8XMLHttpRequest.cpp */,
7B0093700DAFEFE500F72082 /* V8XMLHttpRequest.h */,
7B0093710DAFEFE500F72082 /* V8XMLHttpRequestException.cpp */,
7B0093720DAFEFE500F72082 /* V8XMLHttpRequestException.h */,
+ 4DB299C30EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.cpp */,
+ 4DB299C40EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.h */,
4DB7EF9F0E9B9FBE00C66CE0 /* V8XMLHttpRequestUpload.cpp */,
4DB7EFA00E9B9FBE00C66CE0 /* V8XMLHttpRequestUpload.h */,
7B0093730DAFEFE500F72082 /* V8XMLSerializer.cpp */,
@@ -7723,12 +7743,16 @@
7B0095A50DAFEFE600F72082 /* V8TreeWalker.cpp in Sources */,
7B0095A70DAFEFE600F72082 /* V8UIEvent.cpp in Sources */,
7B0095A90DAFEFE600F72082 /* V8UndetectableHTMLCollection.cpp in Sources */,
+ 4DB299C50EA4DD1E007EA4CF /* V8WebKitAnimationEvent.cpp in Sources */,
4DB7F9A80E9BEBA600C66CE0 /* V8WebKitCSSKeyframeRule.cpp in Sources */,
4DB7F9A90E9BEBA800C66CE0 /* V8WebKitCSSKeyframesRule.cpp in Sources */,
+ 4DB299C60EA4DD1E007EA4CF /* V8WebKitCSSTransformValue.cpp in Sources */,
+ 4DB299C70EA4DD1E007EA4CF /* V8WebKitTransitionEvent.cpp in Sources */,
7B0095AD0DAFEFE600F72082 /* V8WheelEvent.cpp in Sources */,
7B0095B10DAFEFE600F72082 /* V8XMLHttpRequest.cpp in Sources */,
4DB7F5630E9BD69A00C66CE0 /* V8XMLHttpRequestCustom.cpp in Sources */,
7B0095B30DAFEFE600F72082 /* V8XMLHttpRequestException.cpp in Sources */,
+ 4DB299C80EA4DD1E007EA4CF /* V8XMLHttpRequestProgressEvent.cpp in Sources */,
4DB7EFA30E9B9FBE00C66CE0 /* V8XMLHttpRequestUpload.cpp in Sources */,
7B0095B50DAFEFE600F72082 /* V8XMLSerializer.cpp in Sources */,
7B0095B70DAFEFE600F72082 /* V8XPathEvaluator.cpp in Sources */,