[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