void DatabaseTracker::addOpenDatabase(DatabaseBackend* database) { ASSERT(database->scriptExecutionContext()->isContextThread()); MutexLocker openDatabaseMapLock(m_openDatabaseMapGuard); if (!m_openDatabaseMap) m_openDatabaseMap = adoptPtr(new DatabaseOriginMap); String originIdentifier = database->securityOrigin()->databaseIdentifier(); DatabaseNameMap* nameMap = m_openDatabaseMap->get(originIdentifier); if (!nameMap) { nameMap = new DatabaseNameMap(); m_openDatabaseMap->set(originIdentifier, nameMap); } String name(database->stringIdentifier()); DatabaseSet* databaseSet = nameMap->get(name); if (!databaseSet) { databaseSet = new DatabaseSet(); nameMap->set(name, databaseSet); } databaseSet->add(database); DatabaseObserver::databaseOpened(database); }
void DatabaseTracker::addOpenDatabase(DatabaseBackendBase* database) { if (!database) return; { MutexLocker openDatabaseMapLock(m_openDatabaseMapGuard); if (!m_openDatabaseMap) m_openDatabaseMap = adoptPtr(new DatabaseOriginMap); String name(database->stringIdentifier()); DatabaseNameMap* nameMap = m_openDatabaseMap->get(database->securityOrigin()); if (!nameMap) { nameMap = new DatabaseNameMap; m_openDatabaseMap->set(database->securityOrigin()->isolatedCopy(), nameMap); } DatabaseSet* databaseSet = nameMap->get(name); if (!databaseSet) { databaseSet = new DatabaseSet; nameMap->set(name.isolatedCopy(), databaseSet); } databaseSet->add(database); LOG(StorageAPI, "Added open Database %s (%p)\n", database->stringIdentifier().ascii().data(), database); } }
void DatabaseTracker::addOpenDatabase(Database* database) { MutexLocker openDatabaseMapLock(m_openDatabaseMapGuard); if (!m_openDatabaseMap) m_openDatabaseMap = wrapUnique(new DatabaseOriginMap); String originString = database->getSecurityOrigin()->toRawString(); DatabaseNameMap* nameMap = m_openDatabaseMap->get(originString); if (!nameMap) { nameMap = new DatabaseNameMap(); m_openDatabaseMap->set(originString, nameMap); } String name(database->stringIdentifier()); DatabaseSet* databaseSet = nameMap->get(name); if (!databaseSet) { databaseSet = new DatabaseSet(); nameMap->set(name, databaseSet); } databaseSet->add(database); }