WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
patch
patch (text/plain), 10.89 KB, created by
Dumitru Daniliuc
on 2010-07-21 15:30:30 PDT
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Dumitru Daniliuc
Created:
2010-07-21 15:30:30 PDT
Size:
10.89 KB
patch
obsolete
>Index: WebCore/ChangeLog >=================================================================== >--- WebCore/ChangeLog (revision 63859) >+++ WebCore/ChangeLog (working copy) >@@ -1,3 +1,23 @@ >+2010-07-21 Dumitru Daniliuc <dumi@chromium.org> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-21 Bo Liu <boliu@chromium.org> > > Reviewed by Darin Fisher. >Index: WebCore/bindings/js/JSDatabaseCustom.cpp >=================================================================== >--- WebCore/bindings/js/JSDatabaseCustom.cpp (revision 63859) >+++ WebCore/bindings/js/JSDatabaseCustom.cpp (working copy) >@@ -57,17 +57,20 @@ JSValue JSDatabase::changeVersion(ExecSt > 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(ExecSt > } > > 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(); >Index: WebCore/bindings/js/JSDatabaseSyncCustom.cpp >=================================================================== >--- WebCore/bindings/js/JSDatabaseSyncCustom.cpp (revision 63859) >+++ WebCore/bindings/js/JSDatabaseSyncCustom.cpp (working copy) >@@ -52,13 +52,16 @@ JSValue JSDatabaseSync::changeVersion(Ex > 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(); >+ } > >- RefPtr<SQLTransactionSyncCallback> callback(JSSQLTransactionSyncCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject()))); >+ callback = JSSQLTransactionSyncCallback::create(object, static_cast<JSDOMGlobalObject*>(globalObject())); >+ } > > ExceptionCode ec = 0; > m_impl->changeVersion(oldVersion, newVersion, callback.release(), ec); >Index: WebCore/bindings/v8/custom/V8DatabaseCustom.cpp >=================================================================== >--- WebCore/bindings/v8/custom/V8DatabaseCustom.cpp (revision 63859) >+++ WebCore/bindings/v8/custom/V8DatabaseCustom.cpp (working copy) >@@ -61,7 +61,7 @@ v8::Handle<v8::Value> V8Database::change > 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::change > } > > 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::change > } > > RefPtr<V8CustomVoidCallback> successCallback; >- if (args.Length() > 4) { >+ if (args.Length() > 4 && !isUndefinedOrNull(args[4])) { > if (!args[4]->IsObject()) > return throwError(TYPE_MISMATCH_ERR); > >Index: WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp >=================================================================== >--- WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp (revision 63859) >+++ WebCore/bindings/v8/custom/V8DatabaseSyncCustom.cpp (working copy) >@@ -55,7 +55,7 @@ v8::Handle<v8::Value> V8DatabaseSync::ch > 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); > >Index: WebCore/storage/SQLTransaction.cpp >=================================================================== >--- WebCore/storage/SQLTransaction.cpp (revision 63859) >+++ WebCore/storage/SQLTransaction.cpp (working copy) >@@ -292,8 +292,7 @@ void SQLTransaction::deliverTransactionC > 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) { >Index: WebCore/storage/SQLTransactionSync.cpp >=================================================================== >--- WebCore/storage/SQLTransactionSync.cpp (revision 63859) >+++ WebCore/storage/SQLTransactionSync.cpp (working copy) >@@ -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; > } >Index: LayoutTests/ChangeLog >=================================================================== >--- LayoutTests/ChangeLog (revision 63859) >+++ LayoutTests/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2010-07-21 Dumitru Daniliuc <dumi@chromium.org> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ 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-21 Adam Barth <abarth@webkit.org> > > Reviewed by Eric Seidel. >Index: LayoutTests/fast/workers/storage/resources/change-version-sync-1.js >=================================================================== >--- LayoutTests/fast/workers/storage/resources/change-version-sync-1.js (revision 63859) >+++ LayoutTests/fast/workers/storage/resources/change-version-sync-1.js (working copy) >@@ -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"); >Index: LayoutTests/fast/workers/storage/resources/change-version-sync-2.js >=================================================================== >--- LayoutTests/fast/workers/storage/resources/change-version-sync-2.js (revision 63859) >+++ LayoutTests/fast/workers/storage/resources/change-version-sync-2.js (working copy) >@@ -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"); >Index: LayoutTests/storage/change-version.html >=================================================================== >--- LayoutTests/storage/change-version.html (revision 63859) >+++ LayoutTests/storage/change-version.html (working copy) >@@ -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 () {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
ojan
:
review+
dumi
:
commit-queue-
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 42787
:
62239
| 62240