diff options
author | ager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-20 12:19:55 +0000 |
---|---|---|
committer | ager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-20 12:19:55 +0000 |
commit | 2b9bbda5ccf12c9e8cb9489f1f0060d26818f59a (patch) | |
tree | 714355f8fe243c2a3e7b0faf78f42218a9360ac5 /webkit/port/bindings | |
parent | ad334fd8d55a2dc324e8512ba3758ae1a61a84ca (diff) | |
download | chromium_src-2b9bbda5ccf12c9e8cb9489f1f0060d26818f59a.zip chromium_src-2b9bbda5ccf12c9e8cb9489f1f0060d26818f59a.tar.gz chromium_src-2b9bbda5ccf12c9e8cb9489f1f0060d26818f59a.tar.bz2 |
Add v8 bindings for WebKitCSSMatrix.
Review URL: http://codereview.chromium.org/18361
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8275 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port/bindings')
-rw-r--r-- | webkit/port/bindings/scripts/CodeGeneratorV8.pm | 2 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_custom.cpp | 28 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_custom.h | 1 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_index.cpp | 1 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_index.h | 1 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_proxy.cpp | 10 |
6 files changed, 39 insertions, 4 deletions
diff --git a/webkit/port/bindings/scripts/CodeGeneratorV8.pm b/webkit/port/bindings/scripts/CodeGeneratorV8.pm index 779ac9d..c63f314 100644 --- a/webkit/port/bindings/scripts/CodeGeneratorV8.pm +++ b/webkit/port/bindings/scripts/CodeGeneratorV8.pm @@ -1567,6 +1567,7 @@ sub IsRefPtrType return 1 if $type eq "TextMetrics"; return 1 if $type eq "TimeRanges"; return 1 if $type eq "TreeWalker"; + return 1 if $type eq "WebKitCSSMatrix"; return 1 if $type eq "XPathExpression"; return 1 if $type eq "XPathNSResolver"; return 1 if $type eq "XPathResult"; @@ -1662,6 +1663,7 @@ my %typeCanFailConversion = ( "SVGRect" => 0, "SVGTransform" => 0, "VoidCallback" => 1, + "WebKitCSSMatrix" => 0, "XPathEvaluator" => 0, "XPathNSResolver" => 0, "XPathResult" => 0, diff --git a/webkit/port/bindings/v8/v8_custom.cpp b/webkit/port/bindings/v8/v8_custom.cpp index c1be432..7b5242e 100644 --- a/webkit/port/bindings/v8/v8_custom.cpp +++ b/webkit/port/bindings/v8/v8_custom.cpp @@ -106,6 +106,7 @@ #include "Settings.h" #include "StyleSheetList.h" #include "TreeWalker.h" +#include "WebKitCSSMatrix.h" #include "WindowFeatures.h" #include "XMLSerializer.h" #include "XPathEvaluator.h" @@ -307,6 +308,33 @@ CALLBACK_FUNC_DECL(MessageChannelConstructor) { } +CALLBACK_FUNC_DECL(WebKitCSSMatrixConstructor) { + INC_STATS("DOM.WebKitCSSMatrix.Constructor"); + String s; + if (args.Length() >= 1) + s = ToWebCoreString(args[0]); + + // Create the matrix. + ExceptionCode ec = 0; + RefPtr<WebKitCSSMatrix> matrix = WebKitCSSMatrix::create(s, ec); + if (ec != 0) { + V8Proxy::SetDOMException(ec); + return v8::Undefined(); + } + + // Transform the holder into a wrapper object for the matrix. + V8Proxy::SetDOMWrapper(args.Holder(), + V8ClassIndex::ToInt(V8ClassIndex::WEBKITCSSMATRIX), + matrix.get()); + // Add the wrapper to the DOM object map. + matrix->ref(); + V8Proxy::SetJSWrapperForDOMObject( + matrix.get(), + v8::Persistent<v8::Object>::New(args.Holder())); + return args.Holder(); +} + + CALLBACK_FUNC_DECL(XMLSerializerConstructor) { INC_STATS("DOM.XMLSerializer.Constructor"); return V8Proxy::ConstructDOMObject<V8ClassIndex::XMLSERIALIZER, diff --git a/webkit/port/bindings/v8/v8_custom.h b/webkit/port/bindings/v8/v8_custom.h index c839939..20c53d9 100644 --- a/webkit/port/bindings/v8/v8_custom.h +++ b/webkit/port/bindings/v8/v8_custom.h @@ -239,6 +239,7 @@ DECLARE_CALLBACK(DOMWindowOpen) DECLARE_CALLBACK(DOMParserConstructor) DECLARE_CALLBACK(MessageChannelConstructor) +DECLARE_CALLBACK(WebKitCSSMatrixConstructor) DECLARE_CALLBACK(XMLHttpRequestConstructor) DECLARE_CALLBACK(XMLSerializerConstructor) DECLARE_CALLBACK(XPathEvaluatorConstructor) diff --git a/webkit/port/bindings/v8/v8_index.cpp b/webkit/port/bindings/v8/v8_index.cpp index 29ff3aa..033506a 100644 --- a/webkit/port/bindings/v8/v8_index.cpp +++ b/webkit/port/bindings/v8/v8_index.cpp @@ -158,6 +158,7 @@ #include "V8WebKitAnimationEvent.h" #include "V8WebKitCSSKeyframeRule.h" #include "V8WebKitCSSKeyframesRule.h" +#include "V8WebKitCSSMatrix.h" #include "V8WebKitCSSTransformValue.h" #include "V8WebKitTransitionEvent.h" #include "V8WheelEvent.h" diff --git a/webkit/port/bindings/v8/v8_index.h b/webkit/port/bindings/v8/v8_index.h index 159932d..3e0a5ef1 100644 --- a/webkit/port/bindings/v8/v8_index.h +++ b/webkit/port/bindings/v8/v8_index.h @@ -303,6 +303,7 @@ typedef v8::Persistent<v8::FunctionTemplate> (*FunctionTemplateFactory)(); V(WEBKITANIMATIONEVENT, WebKitAnimationEvent) \ V(WEBKITCSSKEYFRAMERULE, WebKitCSSKeyframeRule) \ V(WEBKITCSSKEYFRAMESRULE, WebKitCSSKeyframesRule) \ + V(WEBKITCSSMATRIX, WebKitCSSMatrix) \ V(WEBKITCSSTRANSFORMVALUE, WebKitCSSTransformValue) \ V(WEBKITTRANSITIONEVENT, WebKitTransitionEvent) \ V(WHEELEVENT, WheelEvent) \ diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp index 4e1be35..8dae140 100644 --- a/webkit/port/bindings/v8/v8_proxy.cpp +++ b/webkit/port/bindings/v8/v8_proxy.cpp @@ -134,7 +134,6 @@ #include "TextMetrics.h" #include "TimeRanges.h" #include "TreeWalker.h" -#include "WebKitCSSTransformValue.h" #include "XMLHttpRequest.h" #include "XMLHttpRequestUpload.h" #include "XMLHttpRequestException.h" @@ -147,6 +146,8 @@ #include "WebKitAnimationEvent.h" #include "WebKitCSSKeyframeRule.h" #include "WebKitCSSKeyframesRule.h" +#include "WebKitCSSMatrix.h" +#include "WebKitCSSTransformValue.h" #include "WebKitTransitionEvent.h" #include "WheelEvent.h" #include "XMLHttpRequestProgressEvent.h" @@ -1765,12 +1766,13 @@ v8::Persistent<v8::FunctionTemplate> V8Proxy::GetTemplate( break; } - // DOMParser, XMLSerializer, and XMLHttpRequest objects are created from - // JS world, but we setup the constructor function lazily in - // WindowNamedPropertyHandler::get. + // The following objects are created from JavaScript. case V8ClassIndex::DOMPARSER: desc->SetCallHandler(USE_CALLBACK(DOMParserConstructor)); break; + case V8ClassIndex::WEBKITCSSMATRIX: + desc->SetCallHandler(USE_CALLBACK(WebKitCSSMatrixConstructor)); + break; case V8ClassIndex::XMLSERIALIZER: desc->SetCallHandler(USE_CALLBACK(XMLSerializerConstructor)); break; |