12015-12-20 Brady Eidson <beidson@apple.com>
2
3 Modern IDB: Don't open any new connections until after version change transactions are completely handled.
4 https://bugs.webkit.org/show_bug.cgi?id=152441
5
6 Reviewed by NOBODY (OOPS!).
7
8 No new tests (At least 4 failing tests now pass).
9
10 When a version change transaction is in progress for a database, the server should not open any new connections
11 to that database until the version change transaction has been 100% completed.
12
13 This means *all* events related to finishing the transaction must fire.
14
15 To support this, a new message from client -> server is added.
16
17 * Modules/indexeddb/client/IDBConnectionToServer.cpp:
18 (WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
19 * Modules/indexeddb/client/IDBConnectionToServer.h:
20 * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
21
22 * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
23 (WebCore::IDBClient::IDBOpenDBRequest::dispatchEvent):
24 * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
25 * Modules/indexeddb/client/IDBRequestImpl.h:
26
27 * Modules/indexeddb/server/IDBServer.cpp:
28 (WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
29 * Modules/indexeddb/server/IDBServer.h:
30
31 * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
32 (WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
33 (WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
34 (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction): Deleted.
35 (WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction): Deleted.
36 (WebCore::IDBServer::UniqueIDBDatabase::inProgressTransactionCompleted): Deleted.
37 * Modules/indexeddb/server/UniqueIDBDatabase.h:
38
39 * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
40 (WebCore::IDBServer::UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange):
41 * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
42
43 * Modules/indexeddb/shared/IDBTransactionInfo.cpp:
44 (WebCore::IDBTransactionInfo::loggingString):
45 * Modules/indexeddb/shared/IDBTransactionInfo.h:
46
47 * Modules/indexeddb/shared/InProcessIDBServer.cpp:
48 (WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
49 * Modules/indexeddb/shared/InProcessIDBServer.h:
50