Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7e8331e7a471a3e91ee756d6a9d6c298502cea04
      
https://github.com/WebKit/WebKit/commit/7e8331e7a471a3e91ee756d6a9d6c298502cea04
  Author: Sihui Liu <[email protected]>
  Date:   2026-04-09 (Thu, 09 Apr 2026)

  Changed paths:
    M Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
    M Source/WebCore/Modules/indexeddb/server/IDBServer.h
    M Source/WebKitLegacy/Storage/InProcessIDBServer.cpp
    M Source/WebKitLegacy/Storage/InProcessIDBServer.h

  Log Message:
  -----------
  Remove unnecessary Lock from IDBServer
https://bugs.webkit.org/show_bug.cgi?id=311842
rdar://174432158

Reviewed by Chris Dumez.

The Lock on IDBServer was added to provide mutual exclusion between IDB 
background thread operations and main-thread
process suspension calls (stopDatabaseActivitiesOnMainThread / 
hasDatabaseActivitiesOnMainThread). Those suspension
methods were removed in 266976@main, and WebIDBServer (the network process 
caller) was deleted in 248127@main, leaving
InProcessIDBServer as the sole caller. Since all IDBServer methods are now 
called exclusively from InProcessIDBServer's
serial WorkQueue, the lock is redundant — the queue already guarantees 
single-threaded access.

Replace lock acquisitions with assertIsCurrent(m_queue.get()) and annotate 
m_server with
WTF_GUARDED_BY_CAPABILITY(m_queue.get()) to enforce thread confinement. Also 
remove the unused server() accessor from
InProcessIDBServer.

* Source/WebCore/Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::unregisterConnection):
(WebCore::IDBServer::IDBServer::registerTransaction):
(WebCore::IDBServer::IDBServer::unregisterTransaction):
(WebCore::IDBServer::IDBServer::openDatabase):
(WebCore::IDBServer::IDBServer::deleteDatabase):
(WebCore::IDBServer::IDBServer::abortTransaction):
(WebCore::IDBServer::IDBServer::createObjectStore):
(WebCore::IDBServer::IDBServer::deleteObjectStore):
(WebCore::IDBServer::IDBServer::renameObjectStore):
(WebCore::IDBServer::IDBServer::clearObjectStore):
(WebCore::IDBServer::IDBServer::createIndex):
(WebCore::IDBServer::IDBServer::deleteIndex):
(WebCore::IDBServer::IDBServer::renameIndex):
(WebCore::IDBServer::IDBServer::putOrAdd):
(WebCore::IDBServer::IDBServer::getRecord):
(WebCore::IDBServer::IDBServer::getAllRecords):
(WebCore::IDBServer::IDBServer::getCount):
(WebCore::IDBServer::IDBServer::deleteRecord):
(WebCore::IDBServer::IDBServer::openCursor):
(WebCore::IDBServer::IDBServer::iterateCursor):
(WebCore::IDBServer::IDBServer::establishTransaction):
(WebCore::IDBServer::IDBServer::commitTransaction):
(WebCore::IDBServer::IDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::IDBServer::IDBServer::databaseConnectionPendingClose):
(WebCore::IDBServer::IDBServer::databaseConnectionClosed):
(WebCore::IDBServer::IDBServer::abortOpenAndUpgradeNeeded):
(WebCore::IDBServer::IDBServer::didFireVersionChangeEvent):
(WebCore::IDBServer::IDBServer::openDBRequestCancelled):
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::getOrigins const):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::requestSpace):
(): Deleted.
* Source/WebCore/Modules/indexeddb/server/IDBServer.h:
* Source/WebKitLegacy/Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::~InProcessIDBServer):
(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::deleteDatabase):
(InProcessIDBServer::openDatabase):
(InProcessIDBServer::abortTransaction):
(InProcessIDBServer::commitTransaction):
(InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(InProcessIDBServer::createObjectStore):
(InProcessIDBServer::deleteObjectStore):
(InProcessIDBServer::renameObjectStore):
(InProcessIDBServer::clearObjectStore):
(InProcessIDBServer::createIndex):
(InProcessIDBServer::deleteIndex):
(InProcessIDBServer::renameIndex):
(InProcessIDBServer::putOrAdd):
(InProcessIDBServer::getRecord):
(InProcessIDBServer::getAllRecords):
(InProcessIDBServer::getCount):
(InProcessIDBServer::deleteRecord):
(InProcessIDBServer::openCursor):
(InProcessIDBServer::iterateCursor):
(InProcessIDBServer::establishTransaction):
(InProcessIDBServer::databaseConnectionPendingClose):
(InProcessIDBServer::databaseConnectionClosed):
(InProcessIDBServer::abortOpenAndUpgradeNeeded):
(InProcessIDBServer::didFireVersionChangeEvent):
(InProcessIDBServer::didGenerateIndexKeyForRecord):
(InProcessIDBServer::openDBRequestCancelled):
(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::closeAndDeleteDatabasesModifiedSince):
* Source/WebKitLegacy/Storage/InProcessIDBServer.h:

Canonical link: https://commits.webkit.org/310901@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to