Modern IDB: Disable simultaneous transactions in the SQLite backend for now.
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 23 Jan 2016 01:48:39 +0000 (01:48 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 23 Jan 2016 01:48:39 +0000 (01:48 +0000)
commite93ef5e9232c9126be54a7f6eebb5510de1c1085
treeac231838cd4c155f541b0b3868181ebe6687a303
parentf10ff139d7b0c05cc30372765b419813e8f62d59
Modern IDB: Disable simultaneous transactions in the SQLite backend for now.
https://bugs.webkit.org/show_bug.cgi?id=153381

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (This resolves many of the currently crashing/asserting tests).

Right now we're porting the Legacy IDB SQLite backend to Modern IDB.

The way the Legacy backend works is restricted to one transaction at a time.

There's many tricks we can play to resolve this, but that task is better performed
once all of the basic functionality is done.

Fixing this limitation is covered by https://bugs.webkit.org/show_bug.cgi?id=153382

* Modules/indexeddb/server/IDBBackingStore.h: Add a "supports simultaneous transactions" getter.
* Modules/indexeddb/server/MemoryIDBBackingStore.h:
* Modules/indexeddb/server/SQLiteIDBBackingStore.h:

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction): If the backing store does
  not support simultaneous transactions but there is a transaction in progress, return.
* Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

* platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@195499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/platform/mac-wk1/TestExpectations
Source/WebCore/ChangeLog
Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h
Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.h
Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h
Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp
Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h