summaryrefslogtreecommitdiffstats
path: root/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/bindings/v8/custom/V8DatabaseCustom.cpp')
-rw-r--r--WebCore/bindings/v8/custom/V8DatabaseCustom.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp b/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
index cdcef31..9ddd620 100644
--- a/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
@@ -87,10 +87,8 @@ CALLBACK_FUNC_DECL(DatabaseChangeVersion)
return v8::Undefined();
}
-CALLBACK_FUNC_DECL(DatabaseTransaction)
+static v8::Handle<v8::Value> createTransaction(const v8::Arguments& args, bool readOnly)
{
- INC_STATS("DOM.Database.transaction()");
-
if (!args.Length())
return throwError("Transaction callback is required.", V8Proxy::SyntaxError);
@@ -121,12 +119,22 @@ CALLBACK_FUNC_DECL(DatabaseTransaction)
successCallback = V8CustomVoidCallback::create(args[2], frame);
}
- database->transaction(callback.release(), errorCallback.release(), successCallback.release());
-
+ database->transaction(callback.release(), errorCallback.release(), successCallback.release(), readOnly);
return v8::Undefined();
}
+CALLBACK_FUNC_DECL(DatabaseTransaction)
+{
+ INC_STATS("DOM.Database.transaction()");
+ return createTransaction(args, false);
+}
+
+CALLBACK_FUNC_DECL(DatabaseReadTransaction)
+{
+ INC_STATS("DOM.Database.readTransaction()");
+ return createTransaction(args, true);
+}
+
} // namespace WebCore
#endif
-