void IDBServer::deleteDatabase(const IDBRequestData& requestData) { LOG(IndexedDB, "IDBServer::deleteDatabase - %s", requestData.databaseIdentifier().debugString().utf8().data()); auto connection = m_connectionMap.get(requestData.requestIdentifier().connectionIdentifier()); if (!connection) { // If the connection back to the client is gone, there's no way to delete the database as // well as no way to message back failure. return; } // FIXME: During bringup of modern IDB, the database deletion is a no-op, and is // immediately reported back to the WebProcess as failure. auto result = IDBResultData::error(requestData.requestIdentifier(), IDBError(IDBExceptionCode::Unknown)); connection->didDeleteDatabase(result); }
void IDBServer::deleteDatabase(const IDBRequestData& requestData) { LOG(IndexedDB, "IDBServer::deleteDatabase - %s", requestData.databaseIdentifier().debugString().utf8().data()); auto connection = m_connectionMap.get(requestData.requestIdentifier().connectionIdentifier()); if (!connection) { // If the connection back to the client is gone, there's no way to delete the database as // well as no way to message back failure. return; } auto* database = m_uniqueIDBDatabaseMap.get(requestData.databaseIdentifier()); if (!database) { connection->didDeleteDatabase(IDBResultData::deleteDatabaseSuccess(requestData.requestIdentifier(), IDBDatabaseInfo(requestData.databaseIdentifier().databaseName(), 0))); return; } database->handleDelete(*connection, requestData); }