[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
dumi at chromium.org
dumi at chromium.org
Wed Dec 22 11:25:08 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 307f9d73832c5cd7ead8a0c80627001ebb69a647
Author: dumi at chromium.org <dumi at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 22 20:56:49 2010 +0000
WebCore: Make db.changeVersion()'s third parameter optional, as required by the spec.
https://bugs.webkit.org/show_bug.cgi?id=42787
Reviewed by Ojan Vafai.
* bindings/js/JSDatabaseCustom.cpp:
(WebCore::JSDatabase::changeVersion):
* bindings/js/JSDatabaseSyncCustom.cpp:
(WebCore::JSDatabaseSync::changeVersion):
* bindings/v8/custom/V8DatabaseCustom.cpp:
(WebCore::V8Database::changeVersionCallback):
* bindings/v8/custom/V8DatabaseSyncCustom.cpp:
(WebCore::V8DatabaseSync::changeVersionCallback):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::deliverTransactionCallback):
* storage/SQLTransactionSync.cpp:
(WebCore::SQLTransactionSync::execute):
LayoutTests: Simplify some tests, and make sure db.changeVersion()'s third parameter is optional.
https://bugs.webkit.org/show_bug.cgi?id=42787
Reviewed by Ojan Vafai.
* fast/workers/storage/resources/change-version-sync-1.js:
* fast/workers/storage/resources/change-version-sync-2.js:
* storage/change-version.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 8417b48..dbe5e6a 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-07-22 Dumitru Daniliuc <dumi at chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ Simplify some tests, and make sure db.changeVersion()'s third parameter is optional.
+ https://bugs.webkit.org/show_bug.cgi?id=42787
+
+ * fast/workers/storage/resources/change-version-sync-1.js:
+ * fast/workers/storage/resources/change-version-sync-2.js:
+ * storage/change-version.html:
+
2010-07-22 Stephen White <senorblanco at chromium.org>
Unreviewed; test expectations fix.
diff --git a/LayoutTests/fast/workers/storage/resources/change-version-sync-1.js b/LayoutTests/fast/workers/storage/resources/change-version-sync-1.js
index 8ce92c2..9c5a059 100644
--- a/LayoutTests/fast/workers/storage/resources/change-version-sync-1.js
+++ b/LayoutTests/fast/workers/storage/resources/change-version-sync-1.js
@@ -1,13 +1,11 @@
var EXPECTED_VERSION_AFTER_HIXIE_TEST = "2";
var EXPECTED_VERSION_AFTER_RELOAD = "3";
-function emptyFunction() { }
-
var db1 = openDatabaseSync("ChangeVersionTest", "1", "Test for the database.changeVersion() function", 1);
var db2 = openDatabaseSync("ChangeVersionTest", "1", "Test for the database.changeVersion() function", 1);
// First run Hixie's test to ensure basic changeVersion() functionality works (see bug 28418).
-db1.changeVersion("1", EXPECTED_VERSION_AFTER_HIXIE_TEST, emptyFunction);
+db1.changeVersion("1", EXPECTED_VERSION_AFTER_HIXIE_TEST);
if (db2.version != db1.version) {
postMessage("FAIL: changing db1's version (" + db1.version + ") did not change db2's version (" + db2.version + ") as expected.");
postMessage("fail");
diff --git a/LayoutTests/fast/workers/storage/resources/change-version-sync-2.js b/LayoutTests/fast/workers/storage/resources/change-version-sync-2.js
index ca82e90..0602b93 100644
--- a/LayoutTests/fast/workers/storage/resources/change-version-sync-2.js
+++ b/LayoutTests/fast/workers/storage/resources/change-version-sync-2.js
@@ -7,6 +7,6 @@ else
postMessage("FAIL: db.version is " + db.version + "; expected " + EXPECTED_VERSION_AFTER_RELOAD);
// Reset the version; otherwise this test will fail the next time it's run
-db.changeVersion(db.version, "1", function(tx) { });
+db.changeVersion(db.version, "1");
postMessage("done");
diff --git a/LayoutTests/storage/change-version.html b/LayoutTests/storage/change-version.html
index 9b6876c..79bb9df 100644
--- a/LayoutTests/storage/change-version.html
+++ b/LayoutTests/storage/change-version.html
@@ -44,6 +44,10 @@ function runTest()
if (window.location.search == "?2") {
db1 = window.openDatabase("changeversion-test", "", "Test for the database.changeVersion() function", 1024);
log("Finished tests with version " + db1.version + "; expected version: " + EXPECTED_VERSION_AFTER_RELOAD);
+
+ // Reset the DB version or the next run might fail.
+ db1.changeVersion(db1.version, "1");
+
finishTest();
} else
testPart1();
@@ -60,7 +64,7 @@ function testPart1() {
var db2 = window.openDatabase("changeversion-test", "1", "Test for the database.changeVersion() function", 1024);
// First run Hixie's test to ensure basic changeVersion functionality works (see bug 28418).
- db1.changeVersion("1", EXPECTED_VERSION_AFTER_HIXIE_TEST, emptyFunction, function (e) {
+ db1.changeVersion("1", EXPECTED_VERSION_AFTER_HIXIE_TEST, null, function (e) {
log("FAIL in changeVersion:" + e);
finishTest();
}, function () {
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 58f1bf2..fc9f69f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2010-07-22 Dumitru Daniliuc <dumi at chromium.org>
+
+ Reviewed by Ojan Vafai.
+
+ Make db.changeVersion()'s third parameter optional, as required by the spec.
+ https://bugs.webkit.org/show_bug.cgi?id=42787
+
+ * bindings/js/JSDatabaseCustom.cpp:
+ (WebCore::JSDatabase::changeVersion):
+ * bindings/js/JSDatabaseSyncCustom.cpp:
+ (WebCore::JSDatabaseSync::changeVersion):
+ * bindings/v8/custom/V8DatabaseCustom.cpp:
+ (WebCore::V8Database::changeVersionCallback):
+ * bindings/v8/custom/V8DatabaseSyncCustom.cpp:
+ (WebCore::V8DatabaseSync::changeVersionCallback):
+ * storage/SQLTransaction.cpp:
+ (WebCore::SQLTransaction::deliverTransactionCallback):
+ * storage/SQLTransactionSync.cpp:
+ (WebCore::SQLTransactionSync::execute):
+
2010-07-20 Jessie Berlin <jberlin at apple.com>
Reviewed by Darin Adler.
diff --git a/WebCore/bindings/js/JSDatabaseCustom.cpp b/WebCore/bindings/js/JSDatabaseCustom.cpp
index 26f9db7..6733320 100644
--- a/WebCore/bindings/js/JSDatabaseCustom.cpp
+++ b/WebCore/bindings/js/JSDatabaseCustom.cpp
@@ -57,17 +57,20 @@ JSValue JSDatabase::changeVersion(ExecState* exec)
if (exec->hadException())
return jsUndefined();
- JSObject* object = exec->argument(2).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
- }
+ RefPtr<SQLTransactionCallback> callback;
+ if (exec->argumentCount() > 2 && !exec->argument(2).isNull()) {
+ JSObject* object = exec->argument(2).getObject();
+ if (!object) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
- RefPtr<SQLTransactionCallback> callback(JSSQLTransactionCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject())));
+ callback = JSSQLTransactionCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
+ }
RefPtr<SQLTransactionErrorCallback> errorCallback;
- if (!exec->argument(3).isNull()) {
- object = exec->argument(3).getObject();
+ if (exec->argumentCount() > 3 && !exec->argument(3).isNull()) {
+ JSObject* object = exec->argument(3).getObject();
if (!object) {
setDOMException(exec, TYPE_MISMATCH_ERR);
return jsUndefined();
@@ -77,8 +80,8 @@ JSValue JSDatabase::changeVersion(ExecState* exec)
}
RefPtr<VoidCallback> successCallback;
- if (!exec->argument(4).isNull()) {
- object = exec->argument(4).getObject();
+ if (exec->argumentCount() > 4 && !exec->argument(4).isNull()) {
+ JSObject* object = exec->argument(4).getObject();
if (!object) {
setDOMException(exec, TYPE_MISMATCH_ERR);
return jsUndefined();
diff --git a/WebCore/bindings/js/JSDatabaseSyncCustom.cpp b/WebCore/bindings/js/JSDatabaseSyncCustom.cpp
index 79eb376..f929658 100644
--- a/WebCore/bindings/js/JSDatabaseSyncCustom.cpp
+++ b/WebCore/bindings/js/JSDatabaseSyncCustom.cpp
@@ -52,14 +52,17 @@ JSValue JSDatabaseSync::changeVersion(ExecState* exec)
if (exec->hadException())
return jsUndefined();
- JSObject* object = exec->argument(2).getObject();
- if (!object) {
- setDOMException(exec, TYPE_MISMATCH_ERR);
- return jsUndefined();
+ RefPtr<SQLTransactionSyncCallback> callback;
+ if (exec->argumentCount() > 2 && !exec->argument(2).isNull()) {
+ JSObject* object = exec->argument(2).getObject();
+ if (!object) {
+ setDOMException(exec, TYPE_MISMATCH_ERR);
+ return jsUndefined();
+ }
+
+ callback = JSSQLTransactionSyncCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()));
}
- RefPtr<SQLTransactionSyncCallback> callback(JSSQLTransactionSyncCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject())));
-
ExceptionCode ec = 0;
m_impl->changeVersion(oldVersion, newVersion, callback.release(), ec);
setDOMException(exec, ec);
diff --git a/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp b/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
index 44a6eeb..31406fb 100644
--- a/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8DatabaseCustom.cpp
@@ -61,7 +61,7 @@ v8::Handle<v8::Value> V8Database::changeVersionCallback(const v8::Arguments& arg
return v8::Undefined();
RefPtr<V8SQLTransactionCallback> callback;
- if (args.Length() > 2) {
+ if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
if (!args[2]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
@@ -69,7 +69,7 @@ v8::Handle<v8::Value> V8Database::changeVersionCallback(const v8::Arguments& arg
}
RefPtr<V8SQLTransactionErrorCallback> errorCallback;
- if (args.Length() > 3) {
+ if (args.Length() > 3 && !isUndefinedOrNull(args[3])) {
if (!args[3]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
@@ -77,7 +77,7 @@ v8::Handle<v8::Value> V8Database::changeVersionCallback(const v8::Arguments& arg
}
RefPtr<V8CustomVoidCallback> successCallback;
- if (args.Length() > 4) {
+ if (args.Length() > 4 && !isUndefinedOrNull(args[4])) {
if (!args[4]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
diff --git a/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp b/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp
index 8a317d7..079f6e9 100644
--- a/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp
+++ b/WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp
@@ -55,7 +55,7 @@ v8::Handle<v8::Value> V8DatabaseSync::changeVersionCallback(const v8::Arguments&
DatabaseSync* database = V8DatabaseSync::toNative(args.Holder());
RefPtr<V8SQLTransactionSyncCallback> callback;
- if (args.Length() > 2) {
+ if (args.Length() > 2 && !isUndefinedOrNull(args[2])) {
if (!args[2]->IsObject())
return throwError(TYPE_MISMATCH_ERR);
diff --git a/WebCore/storage/SQLTransaction.cpp b/WebCore/storage/SQLTransaction.cpp
index decdf24..e43d844 100644
--- a/WebCore/storage/SQLTransaction.cpp
+++ b/WebCore/storage/SQLTransaction.cpp
@@ -292,8 +292,7 @@ void SQLTransaction::deliverTransactionCallback()
m_executeSqlAllowed = true;
shouldDeliverErrorCallback = !m_callback->handleEvent(m_database->scriptExecutionContext(), this);
m_executeSqlAllowed = false;
- } else
- shouldDeliverErrorCallback = true;
+ }
// Transaction Step 5 - If the transaction callback was null or raised an exception, jump to the error callback
if (shouldDeliverErrorCallback) {
diff --git a/WebCore/storage/SQLTransactionSync.cpp b/WebCore/storage/SQLTransactionSync.cpp
index af98f8f..883721c 100644
--- a/WebCore/storage/SQLTransactionSync.cpp
+++ b/WebCore/storage/SQLTransactionSync.cpp
@@ -150,7 +150,7 @@ ExceptionCode SQLTransactionSync::begin()
ExceptionCode SQLTransactionSync::execute()
{
ASSERT(m_database->scriptExecutionContext()->isContextThread());
- if (!m_database->opened() || !m_callback || !m_callback->handleEvent(m_database->scriptExecutionContext(), this)) {
+ if (!m_database->opened() || (m_callback && !m_callback->handleEvent(m_database->scriptExecutionContext(), this))) {
m_callback = 0;
return SQLException::UNKNOWN_ERR;
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list