diff options
author | ager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-07 13:21:01 +0000 |
---|---|---|
committer | ager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-07 13:21:01 +0000 |
commit | f07bca5b714db813db693434fb63ad08aa8e3efe (patch) | |
tree | b74c6f5121b5fd4133c10e4baad527492f352bd7 | |
parent | dd8322d204cd5888d7dbf12301aa598da32b9e0c (diff) | |
download | chromium_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.vcproj | 16 | ||||
-rw-r--r-- | webkit/port/DerivedSources.make | 2 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_index.cpp | 2 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_index.h | 2 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_proxy.cpp | 53 | ||||
-rw-r--r-- | webkit/tools/layout_tests/test_lists/tests_fixable.txt | 5 |
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 |