-
beidson@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=124819 Reviewed by Dan Bernstein. Source/WebCore: * Modules/indexeddb/IDBDatabaseBackend.cpp: (WebCore::IDBDatabaseBackend::~IDBDatabaseBackend): Unregister from the IDBFactory. Source/WebKit2: UniqueIDBDatabase instances are per-DatabaseProcess, so it manages the set of them. * DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::getOrCreateUniqueIDBDatabase): (WebKit::DatabaseProcess::removeUniqueIDBDatabase): * DatabaseProcess/DatabaseProcess.h: * DatabaseProcess/DatabaseToWebProcessConnection.h: Start forwarding things along to the appropriate UniqueIDBDatabase. * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp: (WebKit::DatabaseProcessIDBConnection::~DatabaseProcessIDBConnection): (WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): (WebKit::DatabaseProcessIDBConnection::establishConnection): (WebKit::DatabaseProcessIDBConnection::getOrEstablishIDBDatabaseMetadata): * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h: A class that represents a single concrete IDB database that multiple WebProcesses can connect to. * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp: (WebKit::UniqueIDBDatabase::UniqueIDBDatabase): (WebKit::UniqueIDBDatabase::~UniqueIDBDatabase): (WebKit::UniqueIDBDatabase::registerConnection): (WebKit::UniqueIDBDatabase::unregisterConnection): (WebKit::UniqueIDBDatabase::getIDBDatabaseMetadata): * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: (WebKit::UniqueIDBDatabase::create): (WebKit::UniqueIDBDatabase::identifier): A class to help uniquely identify an IDBDatabase that can be expanded as needed. Importantly, it knows how to be used as a key in a HashMap. * DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.cpp: Added. (WebKit::UniqueIDBDatabaseIdentifier::UniqueIDBDatabaseIdentifier): (WebKit::UniqueIDBDatabaseIdentifier::isHashTableDeletedValue): (WebKit::UniqueIDBDatabaseIdentifier::hash): (WebKit::UniqueIDBDatabaseIdentifier::isNull): (WebKit::operator==): * DatabaseProcess/IndexedDB/UniqueIDBDatabaseIdentifier.h: Added. (WebKit::UniqueIDBDatabaseIdentifier::databaseName): (WebKit::UniqueIDBDatabaseIdentifier::openingOrigin): (WebKit::UniqueIDBDatabaseIdentifier::mainFrameOrigin): (WebKit::UniqueIDBDatabaseIdentifierHash::hash): (WebKit::UniqueIDBDatabaseIdentifierHash::equal): (WebKit::UniqueIDBDatabaseIdentifierHashTraits::isEmptyValue): * Shared/SecurityOriginData.cpp: (WebKit::operator==): * Shared/SecurityOriginData.h: * UIProcess/WebContext.cpp: * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp: (WebKit::WebIDBFactoryBackend::open): (WebKit::WebIDBFactoryBackend::removeIDBDatabaseBackend): * WebKit2.xcodeproj/project.pbxproj: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159737 268f45cc-cd09-0410-ab3c-d52691b4dbfc
36867044