summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-07 13:21:01 +0000
committerager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-07 13:21:01 +0000
commitf07bca5b714db813db693434fb63ad08aa8e3efe (patch)
treeb74c6f5121b5fd4133c10e4baad527492f352bd7
parentdd8322d204cd5888d7dbf12301aa598da32b9e0c (diff)
downloadchromium_src-f07bca5b714db813db693434fb63ad08aa8e3efe.zip
chromium_src-f07bca5b714db813db693434fb63ad08aa8e3efe.tar.gz
chromium_src-f07bca5b714db813db693434fb63ad08aa8e3efe.tar.bz2
Generate V8WebKitCSSKeyframe(s)Rule and fix CSSRuleToV8Object to
return the correct object type. This fixes most of the css3/keyframes-rule.html layout test. The remaining issue is that the CSSParser cannot handle the webkit-keyframe-rule passed to it. Picking up a new CSSParser from webkit on the next merge should fix the remaining issue. Review URL: http://codereview.chromium.org/6535 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2934 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--webkit/build/V8Bindings/V8Bindings.vcproj16
-rw-r--r--webkit/port/DerivedSources.make2
-rw-r--r--webkit/port/bindings/v8/v8_index.cpp2
-rw-r--r--webkit/port/bindings/v8/v8_index.h2
-rw-r--r--webkit/port/bindings/v8/v8_proxy.cpp53
-rw-r--r--webkit/tools/layout_tests/test_lists/tests_fixable.txt5
6 files changed, 56 insertions, 24 deletions
diff --git a/webkit/build/V8Bindings/V8Bindings.vcproj b/webkit/build/V8Bindings/V8Bindings.vcproj
index f163ec8..4e660d4 100644
--- a/webkit/build/V8Bindings/V8Bindings.vcproj
+++ b/webkit/build/V8Bindings/V8Bindings.vcproj
@@ -2144,6 +2144,22 @@
>
</File>
<File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSKeyframeRule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSKeyframeRule.h"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSKeyframesRule.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(IntDir)\DerivedSources\V8WebKitCSSKeyframesRule.h"
+ >
+ </File>
+ <File
RelativePath="$(IntDir)\DerivedSources\V8WheelEvent.cpp"
>
</File>
diff --git a/webkit/port/DerivedSources.make b/webkit/port/DerivedSources.make
index 6d0f1ab..24f4c77 100644
--- a/webkit/port/DerivedSources.make
+++ b/webkit/port/DerivedSources.make
@@ -890,6 +890,8 @@ all : \
V8TreeWalker.h \
V8UIEvent.h \
V8VoidCallback.h \
+ V8WebKitCSSKeyframeRule.h \
+ V8WebKitCSSKeyframesRule.h \
V8WheelEvent.h \
V8XMLHttpRequest.h \
V8XMLHttpRequestUpload.h \
diff --git a/webkit/port/bindings/v8/v8_index.cpp b/webkit/port/bindings/v8/v8_index.cpp
index 71b764a..45eebc3 100644
--- a/webkit/port/bindings/v8/v8_index.cpp
+++ b/webkit/port/bindings/v8/v8_index.cpp
@@ -155,6 +155,8 @@
#include "V8EventTargetNode.h"
#include "V8KeyboardEvent.h"
#include "V8MouseEvent.h"
+#include "V8WebKitCSSKeyframeRule.h"
+#include "V8WebKitCSSKeyframesRule.h"
#include "V8WheelEvent.h"
#include "V8UIEvent.h"
#include "V8MutationEvent.h"
diff --git a/webkit/port/bindings/v8/v8_index.h b/webkit/port/bindings/v8/v8_index.h
index 3e7dd84..538326d 100644
--- a/webkit/port/bindings/v8/v8_index.h
+++ b/webkit/port/bindings/v8/v8_index.h
@@ -275,6 +275,8 @@ typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)();
V(TEXTMETRICS, TextMetrics) \
V(TREEWALKER, TreeWalker) \
V(UIEVENT, UIEvent) \
+ V(WEBKITCSSKEYFRAMERULE, WebKitCSSKeyframeRule) \
+ V(WEBKITCSSKEYFRAMESRULE, WebKitCSSKeyframesRule) \
V(WHEELEVENT, WheelEvent) \
V(XMLHTTPREQUEST, XMLHttpRequest) \
V(XMLHTTPREQUESTUPLOAD, XMLHttpRequestUpload) \
diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp
index 60283ab..1f6bd40 100644
--- a/webkit/port/bindings/v8/v8_proxy.cpp
+++ b/webkit/port/bindings/v8/v8_proxy.cpp
@@ -2593,29 +2593,36 @@ v8::Handle<v8::Value> V8Proxy::CSSRuleToV8Object(CSSRule* rule) {
V8ClassIndex::V8WrapperType type;
switch (rule->type()) {
- case CSSRule::STYLE_RULE:
- type = V8ClassIndex::CSSSTYLERULE;
- break;
- case CSSRule::CHARSET_RULE:
- type = V8ClassIndex::CSSCHARSETRULE;
- break;
- case CSSRule::IMPORT_RULE:
- type = V8ClassIndex::CSSIMPORTRULE;
- break;
- case CSSRule::MEDIA_RULE:
- type = V8ClassIndex::CSSMEDIARULE;
- break;
- case CSSRule::FONT_FACE_RULE:
- type = V8ClassIndex::CSSFONTFACERULE;
- break;
- case CSSRule::PAGE_RULE:
- type = V8ClassIndex::CSSPAGERULE;
- break;
- case CSSRule::VARIABLES_RULE:
- type = V8ClassIndex::CSSVARIABLESRULE;
- break;
- default: // CSSRule::UNKNOWN_RULE
- type = V8ClassIndex::CSSRULE;
+ case CSSRule::STYLE_RULE:
+ type = V8ClassIndex::CSSSTYLERULE;
+ break;
+ case CSSRule::CHARSET_RULE:
+ type = V8ClassIndex::CSSCHARSETRULE;
+ break;
+ case CSSRule::IMPORT_RULE:
+ type = V8ClassIndex::CSSIMPORTRULE;
+ break;
+ case CSSRule::MEDIA_RULE:
+ type = V8ClassIndex::CSSMEDIARULE;
+ break;
+ case CSSRule::FONT_FACE_RULE:
+ type = V8ClassIndex::CSSFONTFACERULE;
+ break;
+ case CSSRule::PAGE_RULE:
+ type = V8ClassIndex::CSSPAGERULE;
+ break;
+ case CSSRule::VARIABLES_RULE:
+ type = V8ClassIndex::CSSVARIABLESRULE;
+ break;
+ case CSSRule::WEBKIT_KEYFRAME_RULE:
+ type = V8ClassIndex::WEBKITCSSKEYFRAMERULE;
+ break;
+ case CSSRule::WEBKIT_KEYFRAMES_RULE:
+ type = V8ClassIndex::WEBKITCSSKEYFRAMESRULE;
+ break;
+ default: // CSSRule::UNKNOWN_RULE
+ type = V8ClassIndex::CSSRULE;
+ break;
}
// Set the peer object for future access.
diff --git a/webkit/tools/layout_tests/test_lists/tests_fixable.txt b/webkit/tools/layout_tests/test_lists/tests_fixable.txt
index 32fabbe5..052d1bd 100644
--- a/webkit/tools/layout_tests/test_lists/tests_fixable.txt
+++ b/webkit/tools/layout_tests/test_lists/tests_fixable.txt
@@ -896,6 +896,10 @@ V8 | KJS # LayoutTests/fast/forms/submit-to-url-fragment.html = FAIL
# JSC. However, the missing position and totalSize properties seems genuine.
V8 | KJS # SKIP : LayoutTests/fast/dom/xmlhttprequest-get.xhtml = PASS
+# This fails because the CSSParser cannot handle the keyframe rule.
+# Picking up a new parser from webkit should fix the rest.
+V8 | KJS # LayoutTests/css3/keyframes-rule.html = FAIL
+
// ----------------------------------------------------------------------------
// NEW FOR THE MERGE
//
@@ -904,7 +908,6 @@ V8 | KJS # SKIP : LayoutTests/fast/dom/xmlhttprequest-get.xhtml = PASS
// ----------------------------------------------------------------------------
V8 | KJS # LayoutTests/accessibility = FAIL
-V8 | KJS # LayoutTests/css3/keyframes-rule.html = FAIL
V8 | KJS # LayoutTests/css3/transform-value-types.html = FAIL
V8 | KJS # LayoutTests/dom/html/level2/html/HTMLFormElement10.html = FAIL | TIMEOUT
V8 | KJS # LayoutTests/editing/execCommand/16049.html = FAIL