Changeset 200695 in webkit
- Timestamp:
- May 11, 2016 11:42:03 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r200694 r200695 1 2016-05-11 Brady Eidson <beidson@apple.com> 2 3 Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact. 4 https://bugs.webkit.org/show_bug.cgi?id=157448 5 6 Reviewed by Alex Christensen. 7 8 * TestExpectations: 9 * storage/indexeddb/pending-version-change-stuck-private-expected.txt: 10 * storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt: 11 * storage/indexeddb/pending-version-change-stuck-works-with-terminate-private-expected.txt: 12 1 13 2016-05-11 Joseph Pecoraro <pecoraro@apple.com> 2 14 -
trunk/LayoutTests/TestExpectations
r200674 r200695 914 914 storage/indexeddb/dont-commit-on-blocked-private.html [ Failure ] 915 915 916 # IDB workers tests that timeout917 storage/indexeddb/pending-version-change-stuck.html918 storage/indexeddb/pending-version-change-stuck-private.html919 storage/indexeddb/pending-version-change-stuck-works-with-terminate.html920 storage/indexeddb/pending-version-change-stuck-works-with-terminate-private.html921 922 916 # Test's behavior specific to Legacy IDB with LevelDB backend 923 917 # Modern IDB is spec-compliant without supporting this behavior -
trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-private-expected.txt
r195247 r200695 6 6 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; 7 7 8 request = indexedDB.open("pending-version-change-stuck .html")8 request = indexedDB.open("pending-version-change-stuck-private.html") 9 9 PASS Open worked after page reload. 10 10 PASS successfullyParsed is true -
trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate-expected.txt
r147254 r200695 6 6 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; 7 7 8 dbname = "pending-version-change-stuck-works-with-terminate.html"9 8 indexedDB.open(dbname) 10 9 PASS Open worked after page reload. -
trunk/LayoutTests/storage/indexeddb/pending-version-change-stuck-works-with-terminate-private-expected.txt
r195394 r200695 6 6 indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; 7 7 8 dbname = "pending-version-change-stuck-works-with-terminate.html"9 8 indexedDB.open(dbname) 10 9 PASS Open worked after page reload. -
trunk/Source/WebCore/ChangeLog
r200691 r200695 1 2016-05-11 Brady Eidson <beidson@apple.com> 2 3 Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact. 4 https://bugs.webkit.org/show_bug.cgi?id=157448 5 6 Reviewed by Alex Christensen. 7 8 No new tests (Previously skipped tests cover new behavior, and are now unskipped). 9 10 There's two main parts to this patch: 11 12 1 - When an IDBOpenDBRequest is stop()'ed due to page navigation or worker termination, 13 we now notify the IDBServer of that. 14 2 - Lot's of little tweaks to UniqueIDBDatabase to handle shutting down version change 15 transactions and/or connections related to the cancelled openDB request. 16 17 Fortunately the changes to UniqueIDBDatabase were all well covered by existing tests. 18 19 * Modules/indexeddb/IDBOpenDBRequest.cpp: 20 (WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit): 21 (WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion): 22 (WebCore::IDBOpenDBRequest::cancelForStop): 23 (WebCore::IDBOpenDBRequest::dispatchEvent): 24 * Modules/indexeddb/IDBOpenDBRequest.h: 25 26 * Modules/indexeddb/IDBRequest.cpp: 27 (WebCore::IDBRequest::stop): 28 (WebCore::IDBRequest::cancelForStop): 29 * Modules/indexeddb/IDBRequest.h: 30 31 * Modules/indexeddb/client/IDBConnectionProxy.cpp: 32 (WebCore::IDBClient::IDBConnectionProxy::openDBRequestCancelled): 33 (WebCore::IDBClient::IDBConnectionProxy::didFinishHandlingVersionChangeTransaction): 34 * Modules/indexeddb/client/IDBConnectionProxy.h: 35 36 * Modules/indexeddb/client/IDBConnectionToServer.cpp: 37 (WebCore::IDBClient::IDBConnectionToServer::didFinishHandlingVersionChangeTransaction): 38 (WebCore::IDBClient::IDBConnectionToServer::openDBRequestCancelled): 39 * Modules/indexeddb/client/IDBConnectionToServer.h: 40 41 * Modules/indexeddb/client/IDBConnectionToServerDelegate.h: 42 43 * Modules/indexeddb/server/IDBServer.cpp: 44 (WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction): 45 (WebCore::IDBServer::IDBServer::databaseConnectionClosed): 46 (WebCore::IDBServer::IDBServer::openDBRequestCancelled): 47 * Modules/indexeddb/server/IDBServer.h: 48 49 * Modules/indexeddb/server/UniqueIDBDatabase.cpp: 50 (WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore): 51 (WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation): 52 (WebCore::IDBServer::UniqueIDBDatabase::openDBRequestCancelled): 53 (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction): 54 (WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction): 55 (WebCore::IDBServer::UniqueIDBDatabase::didPerformCommitTransaction): 56 (WebCore::IDBServer::UniqueIDBDatabase::abortTransaction): 57 (WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange): 58 (WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction): 59 (WebCore::IDBServer::UniqueIDBDatabase::didPerformAbortTransaction): 60 (WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): 61 (WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted): 62 (WebCore::IDBServer::UniqueIDBDatabase::forgetErrorCallback): 63 * Modules/indexeddb/server/UniqueIDBDatabase.h: 64 65 * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp: 66 (WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback): 67 (WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange): 68 * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h: 69 70 * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp: 71 (WebCore::IDBServer::UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange): Deleted. 72 * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h: 73 74 * Modules/indexeddb/shared/InProcessIDBServer.cpp: 75 (WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction): 76 (WebCore::InProcessIDBServer::openDBRequestCancelled): 77 * Modules/indexeddb/shared/InProcessIDBServer.h: 78 1 79 2016-05-11 Chris Dumez <cdumez@apple.com> 2 80 -
trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.cpp
r200495 r200695 85 85 void IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit() 86 86 { 87 LOG(IndexedDB, "IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit() ");87 LOG(IndexedDB, "IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit() - %s", resourceIdentifier().loggingString().utf8().data()); 88 88 89 89 ASSERT(currentThread() == originThreadID()); … … 99 99 void IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion() 100 100 { 101 LOG(IndexedDB, "IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion() ");101 LOG(IndexedDB, "IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion() - %s", resourceIdentifier().loggingString().utf8().data()); 102 102 103 103 ASSERT(currentThread() == originThreadID()); … … 112 112 } 113 113 114 void IDBOpenDBRequest::cancelForStop() 115 { 116 connectionProxy().openDBRequestCancelled({ connectionProxy(), *this }); 117 } 118 114 119 bool IDBOpenDBRequest::dispatchEvent(Event& event) 115 120 { … … 119 124 120 125 if (m_transaction && m_transaction->isVersionChange() && (event.type() == eventNames().errorEvent || event.type() == eventNames().successEvent)) 121 m_transaction->database().connectionProxy().didFinishHandlingVersionChangeTransaction( *m_transaction);126 m_transaction->database().connectionProxy().didFinishHandlingVersionChangeTransaction(m_transaction->database().databaseConnectionIdentifier(), *m_transaction); 122 127 123 128 return result; -
trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h
r199843 r200695 57 57 bool dispatchEvent(Event&) final; 58 58 59 void cancelForStop() final; 60 59 61 void onError(const IDBResultData&); 60 62 void onSuccess(const IDBResultData&); -
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp
r200521 r200695 243 243 ASSERT(!m_contextStopped); 244 244 245 cancelForStop(); 246 245 247 removeAllEventListeners(); 246 248 247 249 m_contextStopped = true; 250 } 251 252 void IDBRequest::cancelForStop() 253 { 254 // The base IDBRequest class has nothing additional to do here. 248 255 } 249 256 -
trunk/Source/WebCore/Modules/indexeddb/IDBRequest.h
r200483 r200695 140 140 bool canSuspendForDocumentSuspension() const final; 141 141 void stop() final; 142 virtual void cancelForStop(); 142 143 143 144 void refEventTarget() final { RefCounted::ref(); } -
trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.cpp
r200521 r200695 294 294 } 295 295 296 void IDBConnectionProxy::openDBRequestCancelled(const IDBRequestData& requestData) 297 { 298 callConnectionOnMainThread(&IDBConnectionToServer::openDBRequestCancelled, requestData); 299 } 300 296 301 void IDBConnectionProxy::establishTransaction(IDBTransaction& transaction) 297 302 { … … 374 379 } 375 380 376 void IDBConnectionProxy::didFinishHandlingVersionChangeTransaction( IDBTransaction& transaction)377 { 378 callConnectionOnMainThread(&IDBConnectionToServer::didFinishHandlingVersionChangeTransaction, transaction.info().identifier());381 void IDBConnectionProxy::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, IDBTransaction& transaction) 382 { 383 callConnectionOnMainThread(&IDBConnectionToServer::didFinishHandlingVersionChangeTransaction, databaseConnectionIdentifier, transaction.info().identifier()); 379 384 } 380 385 -
trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionProxy.h
r200521 r200695 81 81 82 82 void notifyOpenDBRequestBlocked(const IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion); 83 void openDBRequestCancelled(const IDBRequestData&); 83 84 84 85 void establishTransaction(IDBTransaction&); … … 90 91 void didAbortTransaction(const IDBResourceIdentifier& transactionIdentifier, const IDBError&); 91 92 92 void didFinishHandlingVersionChangeTransaction( IDBTransaction&);93 void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, IDBTransaction&); 93 94 void databaseConnectionClosed(IDBDatabase&); 94 95 -
trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.cpp
r200503 r200695 269 269 } 270 270 271 void IDBConnectionToServer::didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier& transactionIdentifier)271 void IDBConnectionToServer::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) 272 272 { 273 273 LOG(IndexedDB, "IDBConnectionToServer::didFinishHandlingVersionChangeTransaction"); 274 274 ASSERT(isMainThread()); 275 275 276 m_delegate->didFinishHandlingVersionChangeTransaction( transactionIdentifier);276 m_delegate->didFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier); 277 277 } 278 278 … … 323 323 324 324 m_proxy->notifyOpenDBRequestBlocked(requestIdentifier, oldVersion, newVersion); 325 } 326 327 void IDBConnectionToServer::openDBRequestCancelled(const IDBRequestData& requestData) 328 { 329 LOG(IndexedDB, "IDBConnectionToServer::openDBRequestCancelled"); 330 ASSERT(isMainThread()); 331 332 m_delegate->openDBRequestCancelled(requestData); 325 333 } 326 334 -
trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServer.h
r200503 r200695 98 98 WEBCORE_EXPORT void didCommitTransaction(const IDBResourceIdentifier& transactionIdentifier, const IDBError&); 99 99 100 void didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier&);100 void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&); 101 101 102 102 void abortTransaction(const IDBResourceIdentifier& transactionIdentifier); … … 108 108 WEBCORE_EXPORT void didStartTransaction(const IDBResourceIdentifier& transactionIdentifier, const IDBError&); 109 109 WEBCORE_EXPORT void notifyOpenDBRequestBlocked(const IDBResourceIdentifier& requestIdentifier, uint64_t oldVersion, uint64_t newVersion); 110 void openDBRequestCancelled(const IDBRequestData&); 110 111 111 112 void establishTransaction(uint64_t databaseConnectionIdentifier, const IDBTransactionInfo&); -
trunk/Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h
r200503 r200695 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015, 2016 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #ifndef IDBConnectionToServerDelegate_h 27 #define IDBConnectionToServerDelegate_h 26 #pragma once 28 27 29 28 #if ENABLE(INDEXED_DATABASE) … … 61 60 virtual void abortTransaction(const IDBResourceIdentifier&) = 0; 62 61 virtual void commitTransaction(const IDBResourceIdentifier&) = 0; 63 virtual void didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier&) = 0;62 virtual void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&) = 0; 64 63 virtual void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&) = 0; 65 64 virtual void deleteObjectStore(const IDBRequestData&, const String& objectStoreName) = 0; … … 78 77 virtual void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) = 0; 79 78 virtual void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& requestIdentifier) = 0; 79 virtual void openDBRequestCancelled(const IDBRequestData&) = 0; 80 80 81 81 virtual void getAllDatabaseNames(const SecurityOriginData& mainFrameOrigin, const SecurityOriginData& openingOrigin, uint64_t callbackID) = 0; … … 89 89 90 90 #endif // ENABLE(INDEXED_DATABASE) 91 #endif // IDBConnectionToServerDelegate_h -
trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
r200163 r200695 333 333 } 334 334 335 void IDBServer::didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier& transactionIdentifier)336 { 337 LOG(IndexedDB, "IDBServer::didFinishHandlingVersionChangeTransaction ");338 339 auto transaction = m_transactions.get(transactionIdentifier);340 if (! transaction)341 return; 342 343 transaction->didFinishHandlingVersionChange();335 void IDBServer::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) 336 { 337 LOG(IndexedDB, "IDBServer::didFinishHandlingVersionChangeTransaction - %s", transactionIdentifier.loggingString().utf8().data()); 338 339 auto* connection = m_databaseConnections.get(databaseConnectionIdentifier); 340 if (!connection) 341 return; 342 343 connection->didFinishHandlingVersionChange(transactionIdentifier); 344 344 } 345 345 346 346 void IDBServer::databaseConnectionClosed(uint64_t databaseConnectionIdentifier) 347 347 { 348 LOG(IndexedDB, "IDBServer::databaseConnectionClosed ");348 LOG(IndexedDB, "IDBServer::databaseConnectionClosed - %" PRIu64, databaseConnectionIdentifier); 349 349 350 350 auto databaseConnection = m_databaseConnections.get(databaseConnectionIdentifier); … … 376 376 if (auto databaseConnection = m_databaseConnections.get(databaseConnectionIdentifier)) 377 377 databaseConnection->didFireVersionChangeEvent(requestIdentifier); 378 } 379 380 void IDBServer::openDBRequestCancelled(const IDBRequestData& requestData) 381 { 382 LOG(IndexedDB, "IDBServer::openDBRequestCancelled"); 383 384 auto* uniqueIDBDatabase = m_uniqueIDBDatabaseMap.get(requestData.databaseIdentifier()); 385 if (!uniqueIDBDatabase) 386 return; 387 388 uniqueIDBDatabase->openDBRequestCancelled(requestData.requestIdentifier()); 378 389 } 379 390 -
trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.h
r200163 r200695 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015, 2016 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #ifndef IDBServer_h 27 #define IDBServer_h 26 #pragma once 28 27 29 28 #if ENABLE(INDEXED_DATABASE) … … 65 64 WEBCORE_EXPORT void abortTransaction(const IDBResourceIdentifier&); 66 65 WEBCORE_EXPORT void commitTransaction(const IDBResourceIdentifier&); 67 WEBCORE_EXPORT void didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier&);66 WEBCORE_EXPORT void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&); 68 67 WEBCORE_EXPORT void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&); 69 68 WEBCORE_EXPORT void deleteObjectStore(const IDBRequestData&, const String& objectStoreName); … … 82 81 WEBCORE_EXPORT void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier); 83 82 WEBCORE_EXPORT void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& requestIdentifier); 83 WEBCORE_EXPORT void openDBRequestCancelled(const IDBRequestData&); 84 84 85 85 WEBCORE_EXPORT void getAllDatabaseNames(uint64_t serverConnectionIdentifier, const SecurityOriginData& mainFrameOrigin, const SecurityOriginData& openingOrigin, uint64_t callbackID); … … 132 132 133 133 #endif // ENABLE(INDEXED_DATABASE) 134 #endif // IDBServer_h -
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp
r200603 r200695 75 75 void UniqueIDBDatabase::openDatabaseConnection(IDBConnectionToClient& connection, const IDBRequestData& requestData) 76 76 { 77 auto operation = ServerOpenDBRequest::create(connection, requestData); 78 m_pendingOpenDBRequests.append(WTFMove(operation)); 77 m_pendingOpenDBRequests.add(ServerOpenDBRequest::create(connection, requestData)); 79 78 80 79 // An open operation is already in progress, so we can't possibly handle this one yet. … … 248 247 LOG(IndexedDB, "(main) UniqueIDBDatabase::didDeleteBackingStore"); 249 248 250 ASSERT(m_currentOpenDBRequest);251 ASSERT(m_currentOpenDBRequest->isDeleteRequest());252 249 ASSERT(!hasAnyPendingCallbacks()); 253 250 ASSERT(!hasUnfinishedTransactions()); 254 251 ASSERT(m_pendingTransactions.isEmpty()); 255 252 ASSERT(m_openDatabaseConnections.isEmpty()); 253 254 // It's possible that the openDBRequest was cancelled from client-side after the delete was already dispatched to the backingstore. 255 // So it's okay if we don't have a currentOpenDBRequest, but if we do it has to be a deleteRequest. 256 ASSERT(!m_currentOpenDBRequest || m_currentOpenDBRequest->isDeleteRequest()); 256 257 257 258 if (m_databaseInfo) … … 264 265 m_mostRecentDeletedDatabaseInfo = std::make_unique<IDBDatabaseInfo>(m_identifier.databaseName(), deletedVersion); 265 266 266 m_currentOpenDBRequest->notifyDidDeleteDatabase(*m_mostRecentDeletedDatabaseInfo); 267 m_currentOpenDBRequest = nullptr; 267 if (m_currentOpenDBRequest) { 268 m_currentOpenDBRequest->notifyDidDeleteDatabase(*m_mostRecentDeletedDatabaseInfo); 269 m_currentOpenDBRequest = nullptr; 270 } 268 271 269 272 m_deleteBackingStoreInProgress = false; 270 273 271 if (m_closePendingDatabaseConnections.isEmpty() ) {272 if (m_pendingOpenDBRequests.isEmpty())273 m_server.closeUniqueIDBDatabase(*this);274 else275 invokeOperationAndTransactionTimer(); 276 }274 if (m_closePendingDatabaseConnections.isEmpty() && m_pendingOpenDBRequests.isEmpty()) { 275 m_server.closeUniqueIDBDatabase(*this); 276 return; 277 } 278 279 invokeOperationAndTransactionTimer(); 277 280 } 278 281 … … 280 283 { 281 284 ASSERT(isMainThread()); 282 LOG(IndexedDB, "(main) UniqueIDBDatabase::handleDatabaseOperations - There are %zu pending", m_pendingOpenDBRequests.size()); 285 LOG(IndexedDB, "(main) UniqueIDBDatabase::handleDatabaseOperations - There are %u pending", m_pendingOpenDBRequests.size()); 286 287 if (m_deleteBackingStoreInProgress) 288 return; 283 289 284 290 if (m_versionChangeDatabaseConnection || m_versionChangeTransaction || m_currentOpenDBRequest) { … … 298 304 299 305 m_currentOpenDBRequest = m_pendingOpenDBRequests.takeFirst(); 300 LOG(IndexedDB, "UniqueIDBDatabase::handleDatabaseOperations - Popped an operation, now there are % zu pending", m_pendingOpenDBRequests.size());306 LOG(IndexedDB, "UniqueIDBDatabase::handleDatabaseOperations - Popped an operation, now there are %u pending", m_pendingOpenDBRequests.size()); 301 307 302 308 handleCurrentOperation(); … … 305 311 void UniqueIDBDatabase::handleCurrentOperation() 306 312 { 313 LOG(IndexedDB, "(main) UniqueIDBDatabase::handleCurrentOperation"); 314 307 315 ASSERT(m_currentOpenDBRequest); 308 316 … … 368 376 LOG(IndexedDB, "(main) UniqueIDBDatabase::handleDelete"); 369 377 370 m_pendingOpenDBRequests.a ppend(ServerOpenDBRequest::create(connection, requestData));378 m_pendingOpenDBRequests.add(ServerOpenDBRequest::create(connection, requestData)); 371 379 handleDatabaseOperations(); 372 380 } … … 466 474 467 475 notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent(connection.identifier()); 476 } 477 478 void UniqueIDBDatabase::openDBRequestCancelled(const IDBResourceIdentifier& requestIdentifier) 479 { 480 LOG(IndexedDB, "UniqueIDBDatabase::openDBRequestCancelled - %s", requestIdentifier.loggingString().utf8().data()); 481 482 if (m_currentOpenDBRequest && m_currentOpenDBRequest->requestData().requestIdentifier() == requestIdentifier) 483 m_currentOpenDBRequest = nullptr; 484 485 if (m_versionChangeDatabaseConnection && m_versionChangeDatabaseConnection->openRequestIdentifier() == requestIdentifier) { 486 ASSERT(!m_versionChangeTransaction || m_versionChangeTransaction->databaseConnection().openRequestIdentifier() == requestIdentifier); 487 ASSERT(!m_versionChangeTransaction || &m_versionChangeTransaction->databaseConnection() == m_versionChangeDatabaseConnection); 488 489 connectionClosedFromClient(*m_versionChangeDatabaseConnection); 490 } 491 492 for (auto& request : m_pendingOpenDBRequests) { 493 if (request->requestData().requestIdentifier() == requestIdentifier) { 494 m_pendingOpenDBRequests.remove(request); 495 return; 496 } 497 } 468 498 } 469 499 … … 999 1029 { 1000 1030 ASSERT(isMainThread()); 1001 LOG(IndexedDB, "(main) UniqueIDBDatabase::commitTransaction ");1031 LOG(IndexedDB, "(main) UniqueIDBDatabase::commitTransaction - %s", transaction.info().identifier().loggingString().utf8().data()); 1002 1032 1003 1033 ASSERT(&transaction.databaseConnection().database() == this); … … 1006 1036 1007 1037 if (!prepareToFinishTransaction(transaction)) { 1038 if (!m_openDatabaseConnections.contains(&transaction.databaseConnection())) { 1039 // This database connection is closing or has already closed, so there is no point in messaging back to it about the commit failing. 1040 forgetErrorCallback(callbackID); 1041 return; 1042 } 1043 1008 1044 performErrorCallback(callbackID, { IDBDatabaseException::UnknownError, ASCIILiteral("Attempt to commit transaction that is already finishing") }); 1009 1045 return; … … 1016 1052 { 1017 1053 ASSERT(!isMainThread()); 1018 LOG(IndexedDB, "(db) UniqueIDBDatabase::performCommitTransaction ");1054 LOG(IndexedDB, "(db) UniqueIDBDatabase::performCommitTransaction - %s", transactionIdentifier.loggingString().utf8().data()); 1019 1055 1020 1056 IDBError error = m_backingStore->commitTransaction(transactionIdentifier); … … 1025 1061 { 1026 1062 ASSERT(isMainThread()); 1027 LOG(IndexedDB, "(main) UniqueIDBDatabase::didPerformCommitTransaction ");1063 LOG(IndexedDB, "(main) UniqueIDBDatabase::didPerformCommitTransaction - %s", transactionIdentifier.loggingString().utf8().data()); 1028 1064 1029 1065 performErrorCallback(callbackIdentifier, error); … … 1035 1071 { 1036 1072 ASSERT(isMainThread()); 1037 LOG(IndexedDB, "(main) UniqueIDBDatabase::abortTransaction ");1073 LOG(IndexedDB, "(main) UniqueIDBDatabase::abortTransaction - %s", transaction.info().identifier().loggingString().utf8().data()); 1038 1074 1039 1075 ASSERT(&transaction.databaseConnection().database() == this); … … 1042 1078 1043 1079 if (!prepareToFinishTransaction(transaction)) { 1080 if (!m_openDatabaseConnections.contains(&transaction.databaseConnection())) { 1081 // This database connection is closing or has already closed, so there is no point in messaging back to it about the abort failing. 1082 forgetErrorCallback(callbackID); 1083 return; 1084 } 1085 1044 1086 performErrorCallback(callbackID, { IDBDatabaseException::UnknownError, ASCIILiteral("Attempt to abort transaction that is already finishing") }); 1045 1087 return; … … 1049 1091 } 1050 1092 1051 void UniqueIDBDatabase::didFinishHandlingVersionChange(UniqueIDBDatabase Transaction& transaction)1093 void UniqueIDBDatabase::didFinishHandlingVersionChange(UniqueIDBDatabaseConnection& connection, const IDBResourceIdentifier& transactionIdentifier) 1052 1094 { 1053 1095 ASSERT(isMainThread()); 1054 1096 LOG(IndexedDB, "(main) UniqueIDBDatabase::didFinishHandlingVersionChange"); 1055 1097 1056 ASSERT (m_versionChangeTransaction);1057 ASSERT_UNUSED( transaction, m_versionChangeTransaction == &transaction);1098 ASSERT_UNUSED(transactionIdentifier, !m_versionChangeTransaction || m_versionChangeTransaction->info().identifier() == transactionIdentifier); 1099 ASSERT_UNUSED(connection, !m_versionChangeDatabaseConnection || m_versionChangeDatabaseConnection.get() == &connection); 1058 1100 1059 1101 m_versionChangeTransaction = nullptr; … … 1066 1108 { 1067 1109 ASSERT(!isMainThread()); 1068 LOG(IndexedDB, "(db) UniqueIDBDatabase::performAbortTransaction ");1110 LOG(IndexedDB, "(db) UniqueIDBDatabase::performAbortTransaction - %s", transactionIdentifier.loggingString().utf8().data()); 1069 1111 1070 1112 IDBError error = m_backingStore->abortTransaction(transactionIdentifier); … … 1075 1117 { 1076 1118 ASSERT(isMainThread()); 1077 LOG(IndexedDB, "(main) UniqueIDBDatabase::didPerformAbortTransaction ");1119 LOG(IndexedDB, "(main) UniqueIDBDatabase::didPerformAbortTransaction - %s", transactionIdentifier.loggingString().utf8().data()); 1078 1120 1079 1121 auto transaction = m_finishingTransactions.take(transactionIdentifier); … … 1101 1143 { 1102 1144 ASSERT(isMainThread()); 1103 LOG(IndexedDB, "(main) UniqueIDBDatabase::connectionClosedFromClient"); 1104 1105 if (m_versionChangeDatabaseConnection == &connection) 1145 LOG(IndexedDB, "(main) UniqueIDBDatabase::connectionClosedFromClient - %s (%" PRIu64 ")", connection.openRequestIdentifier().loggingString().utf8().data(), connection.identifier()); 1146 1147 Ref<UniqueIDBDatabaseConnection> protectedConnection(connection); 1148 m_openDatabaseConnections.remove(&connection); 1149 1150 if (m_versionChangeDatabaseConnection == &connection) { 1151 if (m_versionChangeTransaction) { 1152 m_closePendingDatabaseConnections.add(WTFMove(m_versionChangeDatabaseConnection)); 1153 1154 auto transactionIdentifier = m_versionChangeTransaction->info().identifier(); 1155 if (m_inProgressTransactions.contains(transactionIdentifier)) { 1156 ASSERT(!m_finishingTransactions.contains(transactionIdentifier)); 1157 connection.abortTransactionWithoutCallback(*m_versionChangeTransaction); 1158 } 1159 1160 return; 1161 } 1162 1106 1163 m_versionChangeDatabaseConnection = nullptr; 1107 1108 ASSERT(m_openDatabaseConnections.contains(&connection)); 1164 } 1109 1165 1110 1166 Deque<RefPtr<UniqueIDBDatabaseTransaction>> pendingTransactions; … … 1118 1174 m_pendingTransactions.swap(pendingTransactions); 1119 1175 1120 RefPtr<UniqueIDBDatabaseConnection> refConnection(&connection);1121 m_openDatabaseConnections.remove(&connection);1122 1123 1176 if (m_currentOpenDBRequest) 1124 1177 notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent(connection.identifier()); 1125 1178 1126 1179 if (connection.hasNonFinishedTransactions()) { 1127 m_closePendingDatabaseConnections.add(WTFMove( refConnection));1180 m_closePendingDatabaseConnections.add(WTFMove(protectedConnection)); 1128 1181 return; 1129 1182 } … … 1323 1376 m_closePendingDatabaseConnections.remove(&transaction->databaseConnection()); 1324 1377 1378 if (m_versionChangeTransaction == transaction) 1379 m_versionChangeTransaction = nullptr; 1380 1325 1381 // It's possible that this database had its backing store deleted but there were a few outstanding asynchronous operations. 1326 1382 // If this transaction completing was the last of those operations, we can finally delete this UniqueIDBDatabase. … … 1362 1418 } 1363 1419 1420 void UniqueIDBDatabase::forgetErrorCallback(uint64_t callbackIdentifier) 1421 { 1422 ASSERT(m_errorCallbacks.contains(callbackIdentifier)); 1423 m_errorCallbacks.remove(callbackIdentifier); 1424 } 1425 1364 1426 } // namespace IDBServer 1365 1427 } // namespace WebCore -
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h
r200598 r200695 97 97 void commitTransaction(UniqueIDBDatabaseTransaction&, ErrorCallback); 98 98 void abortTransaction(UniqueIDBDatabaseTransaction&, ErrorCallback); 99 void didFinishHandlingVersionChange(UniqueIDBDatabase Transaction&);99 void didFinishHandlingVersionChange(UniqueIDBDatabaseConnection&, const IDBResourceIdentifier& transactionIdentifier); 100 100 void transactionDestroyed(UniqueIDBDatabaseTransaction&); 101 101 void connectionClosedFromClient(UniqueIDBDatabaseConnection&); 102 102 void didFireVersionChangeEvent(UniqueIDBDatabaseConnection&, const IDBResourceIdentifier& requestIdentifier); 103 void openDBRequestCancelled(const IDBResourceIdentifier& requestIdentifier); 103 104 104 105 void enqueueTransaction(Ref<UniqueIDBDatabaseTransaction>&&); … … 175 176 void performCountCallback(uint64_t callbackIdentifier, const IDBError&, uint64_t); 176 177 178 void forgetErrorCallback(uint64_t callbackIdentifier); 179 177 180 bool hasAnyPendingCallbacks() const; 178 181 bool isCurrentlyInUse() const; … … 188 191 IDBDatabaseIdentifier m_identifier; 189 192 190 Deque<Ref<ServerOpenDBRequest>> m_pendingOpenDBRequests;193 ListHashSet<RefPtr<ServerOpenDBRequest>> m_pendingOpenDBRequests; 191 194 RefPtr<ServerOpenDBRequest> m_currentOpenDBRequest; 192 195 -
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp
r200603 r200695 33 33 #include "IDBTransactionInfo.h" 34 34 #include "Logging.h" 35 #include "ServerOpenDBRequest.h" 35 36 #include "UniqueIDBDatabase.h" 36 37 … … 71 72 { 72 73 ASSERT(m_transactionMap.contains(transaction.info().identifier())); 73 auto takenTransaction = m_transactionMap.take(transaction.info().identifier()); 74 75 m_database.abortTransaction(*takenTransaction, [](const IDBError&) { }); 74 75 const auto& transactionIdentifier = transaction.info().identifier(); 76 RefPtr<UniqueIDBDatabaseConnection> protector(this); 77 78 m_database.abortTransaction(transaction, [this, protector, transactionIdentifier](const IDBError&) { 79 ASSERT(m_transactionMap.contains(transactionIdentifier)); 80 m_transactionMap.remove(transactionIdentifier); 81 }); 76 82 } 77 83 … … 89 95 90 96 m_database.didFireVersionChangeEvent(*this, requestIdentifier); 97 } 98 99 void UniqueIDBDatabaseConnection::didFinishHandlingVersionChange(const IDBResourceIdentifier& transactionIdentifier) 100 { 101 LOG(IndexedDB, "UniqueIDBDatabaseConnection::didFinishHandlingVersionChange - %s - %" PRIu64, transactionIdentifier.loggingString().utf8().data(), m_identifier); 102 103 m_database.didFinishHandlingVersionChange(*this, transactionIdentifier); 91 104 } 92 105 -
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h
r200603 r200695 24 24 */ 25 25 26 #ifndef UniqueIDBDatabaseConnection_h 27 #define UniqueIDBDatabaseConnection_h 26 #pragma once 28 27 29 28 #if ENABLE(INDEXED_DATABASE) … … 75 74 void didDeleteIndex(const IDBResultData&); 76 75 void didFireVersionChangeEvent(const IDBResourceIdentifier& requestIdentifier); 76 void didFinishHandlingVersionChange(const IDBResourceIdentifier& transactionIdentifier); 77 77 78 78 void abortTransactionWithoutCallback(UniqueIDBDatabaseTransaction&); … … 95 95 96 96 #endif // ENABLE(INDEXED_DATABASE) 97 #endif // UniqueIDBDatabaseConnection_h -
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp
r199072 r200695 317 317 } 318 318 319 void UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange()320 {321 LOG(IndexedDB, "UniqueIDBDatabaseTransaction::didFinishHandlingVersionChange");322 ASSERT(isVersionChange());323 324 m_databaseConnection->database().didFinishHandlingVersionChange(*this);325 }326 327 319 } // namespace IDBServer 328 320 } // namespace WebCore -
trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h
r199072 r200695 24 24 */ 25 25 26 #ifndef UniqueIDBDatabaseTransaction_h 27 #define UniqueIDBDatabaseTransaction_h 26 #pragma once 28 27 29 28 #if ENABLE(INDEXED_DATABASE) … … 81 80 82 81 void didActivateInBackingStore(const IDBError&); 83 void didFinishHandlingVersionChange();84 82 85 83 const Vector<uint64_t>& objectStoreIdentifiers(); … … 100 98 101 99 #endif // ENABLE(INDEXED_DATABASE) 102 #endif // UniqueIDBDatabaseTransaction_h -
trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp
r200503 r200695 242 242 } 243 243 244 void InProcessIDBServer::didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier& transactionIdentifier)245 { 246 RefPtr<InProcessIDBServer> self(this); 247 RunLoop::current().dispatch([this, self, transactionIdentifier] {248 m_server->didFinishHandlingVersionChangeTransaction( transactionIdentifier);244 void InProcessIDBServer::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) 245 { 246 RefPtr<InProcessIDBServer> self(this); 247 RunLoop::current().dispatch([this, self, databaseConnectionIdentifier, transactionIdentifier] { 248 m_server->didFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier); 249 249 }); 250 250 } … … 400 400 } 401 401 402 void InProcessIDBServer::openDBRequestCancelled(const IDBRequestData& requestData) 403 { 404 RefPtr<InProcessIDBServer> self(this); 405 RunLoop::current().dispatch([this, self, requestData] { 406 m_server->openDBRequestCancelled(requestData); 407 }); 408 } 409 402 410 void InProcessIDBServer::getAllDatabaseNames(const SecurityOriginData& mainFrameOrigin, const SecurityOriginData& openingOrigin, uint64_t callbackID) 403 411 { -
trunk/Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.h
r200503 r200695 24 24 */ 25 25 26 #ifndef InProcessIDBServer_h 27 #define InProcessIDBServer_h 26 #pragma once 28 27 29 28 #if ENABLE(INDEXED_DATABASE) … … 60 59 void abortTransaction(const IDBResourceIdentifier&) final; 61 60 void commitTransaction(const IDBResourceIdentifier&) final; 62 void didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier&) final;61 void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier&) final; 63 62 void createObjectStore(const IDBRequestData&, const IDBObjectStoreInfo&) final; 64 63 void deleteObjectStore(const IDBRequestData&, const String& objectStoreName) final; … … 76 75 void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) final; 77 76 void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& requestIdentifier) final; 77 void openDBRequestCancelled(const IDBRequestData&) final; 78 78 void getAllDatabaseNames(const SecurityOriginData& mainFrameOrigin, const SecurityOriginData& openingOrigin, uint64_t callbackID) final; 79 79 … … 118 118 119 119 #endif // ENABLE(INDEXED_DATABASE) 120 #endif // InProcessIDBServer_h -
trunk/Source/WebKit2/ChangeLog
r200692 r200695 1 2016-05-11 Brady Eidson <beidson@apple.com> 2 3 Modern IDB: IDBOpenDBRequests that are stop()'ed don't notify the IDBServer of that fact. 4 https://bugs.webkit.org/show_bug.cgi?id=157448 5 6 Reviewed by Alex Christensen. 7 8 * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp: 9 (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): 10 (WebKit::WebIDBConnectionToClient::openDBRequestCancelled): 11 * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h: 12 * DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in: 13 14 * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: 15 (WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction): 16 (WebKit::WebIDBConnectionToServer::openDBRequestCancelled): 17 * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: 18 1 19 2016-05-11 Myles C. Maxfield <mmaxfield@apple.com> 2 20 -
trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp
r200163 r200695 200 200 } 201 201 202 void WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier& transactionIdentifier)203 { 204 DatabaseProcess::singleton().idbServer().didFinishHandlingVersionChangeTransaction( transactionIdentifier);202 void WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) 203 { 204 DatabaseProcess::singleton().idbServer().didFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier); 205 205 } 206 206 … … 290 290 } 291 291 292 void WebIDBConnectionToClient::openDBRequestCancelled(const IDBRequestData& requestData) 293 { 294 DatabaseProcess::singleton().idbServer().openDBRequestCancelled(requestData); 295 } 296 292 297 void WebIDBConnectionToClient::getAllDatabaseNames(uint64_t serverConnectionIdentifier, const WebCore::SecurityOriginData& topOrigin, const WebCore::SecurityOriginData& openingOrigin, uint64_t callbackID) 293 298 { -
trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h
r200163 r200695 89 89 void abortTransaction(const WebCore::IDBResourceIdentifier&); 90 90 void commitTransaction(const WebCore::IDBResourceIdentifier&); 91 void didFinishHandlingVersionChangeTransaction( const WebCore::IDBResourceIdentifier&);91 void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier&); 92 92 void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&); 93 93 void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName); … … 106 106 void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& transactionIdentifier); 107 107 void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& requestIdentifier); 108 void openDBRequestCancelled(const WebCore::IDBRequestData&); 108 109 109 110 void getAllDatabaseNames(uint64_t serverConnectionIdentifier, const WebCore::SecurityOriginData& topOrigin, const WebCore::SecurityOriginData& openingOrigin, uint64_t callbackID); -
trunk/Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in
r200163 r200695 28 28 AbortTransaction(WebCore::IDBResourceIdentifier transactionIdentifier); 29 29 CommitTransaction(WebCore::IDBResourceIdentifier transactionIdentifier); 30 DidFinishHandlingVersionChangeTransaction( WebCore::IDBResourceIdentifier transactionIdentifier);30 DidFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, WebCore::IDBResourceIdentifier transactionIdentifier); 31 31 CreateObjectStore(WebCore::IDBRequestData requestData, WebCore::IDBObjectStoreInfo info); 32 32 DeleteObjectStore(WebCore::IDBRequestData requestData, String objectStoreName); … … 45 45 AbortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, WebCore::IDBResourceIdentifier transactionIdentifier); 46 46 DidFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, WebCore::IDBResourceIdentifier requestIdentifier); 47 OpenDBRequestCancelled(WebCore::IDBRequestData requestData); 47 48 48 49 GetAllDatabaseNames(uint64_t serverConnectionIdentifier, struct WebCore::SecurityOriginData topOrigin, struct WebCore::SecurityOriginData openingOrigin, uint64_t callbackID); -
trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp
r200503 r200695 102 102 } 103 103 104 void WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction( const IDBResourceIdentifier& transactionIdentifier)105 { 106 send(Messages::WebIDBConnectionToClient::DidFinishHandlingVersionChangeTransaction( transactionIdentifier));104 void WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const IDBResourceIdentifier& transactionIdentifier) 105 { 106 send(Messages::WebIDBConnectionToClient::DidFinishHandlingVersionChangeTransaction(databaseConnectionIdentifier, transactionIdentifier)); 107 107 } 108 108 … … 182 182 } 183 183 184 void WebIDBConnectionToServer::openDBRequestCancelled(const IDBRequestData& requestData) 185 { 186 send(Messages::WebIDBConnectionToClient::OpenDBRequestCancelled(requestData)); 187 } 188 184 189 void WebIDBConnectionToServer::getAllDatabaseNames(const WebCore::SecurityOriginData& topOrigin, const WebCore::SecurityOriginData& openingOrigin, uint64_t callbackID) 185 190 { -
trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h
r200503 r200695 50 50 void abortTransaction(const WebCore::IDBResourceIdentifier&) final; 51 51 void commitTransaction(const WebCore::IDBResourceIdentifier&) final; 52 void didFinishHandlingVersionChangeTransaction( const WebCore::IDBResourceIdentifier&) final;52 void didFinishHandlingVersionChangeTransaction(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier&) final; 53 53 void createObjectStore(const WebCore::IDBRequestData&, const WebCore::IDBObjectStoreInfo&) final; 54 54 void deleteObjectStore(const WebCore::IDBRequestData&, const String& objectStoreName) final; … … 66 66 void abortOpenAndUpgradeNeeded(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& transactionIdentifier) final; 67 67 void didFireVersionChangeEvent(uint64_t databaseConnectionIdentifier, const WebCore::IDBResourceIdentifier& requestIdentifier) final; 68 void openDBRequestCancelled(const WebCore::IDBRequestData&) final; 69 68 70 void getAllDatabaseNames(const WebCore::SecurityOriginData& topOrigin, const WebCore::SecurityOriginData& openingOrigin, uint64_t callbackID) final; 69 71
Note: See TracChangeset
for help on using the changeset viewer.