summaryrefslogtreecommitdiffstats
path: root/webkit/port/bindings
diff options
context:
space:
mode:
authorager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-20 12:19:55 +0000
committerager@google.com <ager@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-20 12:19:55 +0000
commit2b9bbda5ccf12c9e8cb9489f1f0060d26818f59a (patch)
tree714355f8fe243c2a3e7b0faf78f42218a9360ac5 /webkit/port/bindings
parentad334fd8d55a2dc324e8512ba3758ae1a61a84ca (diff)
downloadchromium_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.pm2
-rw-r--r--webkit/port/bindings/v8/v8_custom.cpp28
-rw-r--r--webkit/port/bindings/v8/v8_custom.h1
-rw-r--r--webkit/port/bindings/v8/v8_index.cpp1
-rw-r--r--webkit/port/bindings/v8/v8_index.h1
-rw-r--r--webkit/port/bindings/v8/v8_proxy.cpp10
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;