RESOLVED FIXED 106377
IndexedDB: Allow createIndex/createObjectStore to be asynchronous
https://bugs.webkit.org/show_bug.cgi?id=106377
Summary IndexedDB: Allow createIndex/createObjectStore to be asynchronous
Alec Flett
Reported 2013-01-08 14:05:21 PST
IndexedDB: Allow createIndex/createObjectStore to be asynchronous
Attachments
Patch (87.09 KB, patch)
2013-01-08 15:25 PST, Alec Flett
no flags
Patch (89.05 KB, patch)
2013-01-08 15:42 PST, Alec Flett
no flags
Patch (85.86 KB, patch)
2013-01-09 17:21 PST, Alec Flett
no flags
Patch (85.87 KB, patch)
2013-01-09 18:09 PST, Alec Flett
no flags
Patch (85.88 KB, patch)
2013-01-09 18:12 PST, Alec Flett
no flags
Patch for landing (88.19 KB, patch)
2013-01-09 21:55 PST, Alec Flett
no flags
Alec Flett
Comment 1 2013-01-08 15:25:48 PST
Alec Flett
Comment 2 2013-01-08 15:39:46 PST
Comment on attachment 181784 [details] Patch oops, forgot one file
Alec Flett
Comment 3 2013-01-08 15:42:18 PST
Alec Flett
Comment 4 2013-01-08 15:44:31 PST
jsbell@ / dgrogan@ - one more big review? Lots of code removal in this one :)
Joshua Bell
Comment 5 2013-01-08 17:21:21 PST
Comment on attachment 181791 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=181791&action=review Overall LGTM... > Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp:640 > + return false; This changes the semantics of this method from "plow ahead in case of error" to "fail the load completely". I don't disagree with this change, but it's orthogonal to the rest of the patch, isn't it? (Also, I'd rather that we just implemented the FIXME if we're going to change the behavior.) > Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp:1017 > + return false; Ditto. > Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp:1037 > return indexes; Should be return true ? > Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:56 > + const RefPtr<IDBBackingStore> m_backingStore; Not for this patch (because it's consistent with other Operations), but given that we can get to the backing store via the transaction which is passed into perform(), we can probably eliminate this member from this and other Operations. > Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:1347 > + m_metadata.objectStores.clear(); Is this ever called with non-empty m_metadata.objectStores? > Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h:108 > class VersionChangeOperation; Remove this from IDBDatabaseBackendImpl class while the others are moving out too? > Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h:111 > class VersionChangeAbortOperation; Ditto? > Source/WebCore/Modules/indexeddb/IDBObjectStoreBackendImpl.h:46 > +namespace IDBObjectStoreBackendImpl { May want to add a FIXME indicating that this is temporary, and things in this namespace will move to ... ? > Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp:-50 > -TEST(IDBDatabaseBackendTest, BackingStoreRetention) Any way to change this test rather than removing it? E.g. creating an IDBTransactionBackendImpl which holds a reference?
EFL EWS Bot
Comment 6 2013-01-08 17:25:13 PST
WebKit Review Bot
Comment 7 2013-01-08 18:04:56 PST
Comment on attachment 181791 [details] Patch Attachment 181791 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/15764284
Alec Flett
Comment 8 2013-01-09 17:21:05 PST
Alec Flett
Comment 9 2013-01-09 17:22:27 PST
showed the updated IDBDatabaseBackendTest to jsbell in person he sez "lgtm" All other issues have been addressed. tony@ - r?
WebKit Review Bot
Comment 10 2013-01-09 17:35:16 PST
Comment on attachment 182026 [details] Patch Attachment 182026 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/15761681
Peter Beverloo (cr-android ews)
Comment 11 2013-01-09 18:09:04 PST
Comment on attachment 182026 [details] Patch Attachment 182026 [details] did not pass cr-android-ews (chromium-android): Output: http://queues.webkit.org/results/15762748
Alec Flett
Comment 12 2013-01-09 18:09:12 PST
Alec Flett
Comment 13 2013-01-09 18:12:49 PST
Tony Chang
Comment 14 2013-01-09 18:28:15 PST
Comment on attachment 182040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=182040&action=review > Source/WebCore/ChangeLog:35 > + * Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Add all create/delete operations. Nit: I would say where these are copied from. > Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp:608 > +// FIXME: This should do some error handling rather than plowing ahead when bad data is encountered. Are there security implications of plowing ahead when bad data is encountered? > Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h:69 > + virtual PassRefPtr<IDBObjectStoreBackendInterface> createObjectStore(int64_t id, const String& name, const IDBKeyPath&, bool autoIncrement, IDBTransactionBackendInterface*, ExceptionCode&) { ASSERT_NOT_REACHED(); return 0; } > + virtual void createObjectStore(int64_t transactionId, int64_t objectStoreId, const String& name, const IDBKeyPath&, bool autoIncrement); > + virtual void deleteObjectStore(int64_t, IDBTransactionBackendInterface*, ExceptionCode&) { ASSERT_NOT_REACHED(); } > + virtual void deleteObjectStore(int64_t transactionId, int64_t objectStoreId); Should these have OVERRIDE?
EFL EWS Bot
Comment 15 2013-01-09 19:48:14 PST
Alec Flett
Comment 16 2013-01-09 21:55:49 PST
Created attachment 182061 [details] Patch for landing
WebKit Review Bot
Comment 17 2013-01-09 23:07:37 PST
Comment on attachment 182061 [details] Patch for landing Rejecting attachment 182061 [details] from commit-queue. New failing tests: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html Full output: http://queues.webkit.org/results/15774678
Alec Flett
Comment 18 2013-01-09 23:27:11 PST
Comment on attachment 182061 [details] Patch for landing sigh. Those are not my failures. trying again.
WebKit Review Bot
Comment 19 2013-01-09 23:34:38 PST
Comment on attachment 182061 [details] Patch for landing Clearing flags on attachment: 182061 Committed r139289: <http://trac.webkit.org/changeset/139289>
WebKit Review Bot
Comment 20 2013-01-09 23:34:43 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.