void WebIconDatabase::setDatabasePath(const String& path) { if (isOpen()) { LOG_ERROR("Icon database already has a path and is already open. We don't currently support changing its path and reopening."); return; } m_iconDatabaseImpl = std::make_unique<IconDatabase>(); m_iconDatabaseImpl->setClient(this); IconDatabase::delayDatabaseCleanup(); m_databaseCleanupDisabled = true; m_iconDatabaseImpl->setEnabled(true); // FIXME: WebIconDatabases are per-WebContext but WebContext's don't have their own notion of the current private browsing setting. // As we clean up private browsing throughout the stack we need to clean it up here. m_iconDatabaseImpl->setPrivateBrowsingEnabled(WebPreferences::anyPagesAreUsingPrivateBrowsing()); if (!m_iconDatabaseImpl->open(directoryName(path), pathGetFileName(path))) { LOG_ERROR("Unable to open WebKit2 icon database on disk"); m_iconDatabaseImpl = nullptr; setGlobalIconDatabase(nullptr); IconDatabase::allowDatabaseCleanup(); m_databaseCleanupDisabled = false; } setGlobalIconDatabase(m_iconDatabaseImpl.get()); }
void WebIconDatabaseProxy::setEnabled(bool enabled) { if (enabled == m_isEnabled) return; m_isEnabled = enabled; setGlobalIconDatabase(enabled ? this : 0); }
void WebIconDatabase::setDatabasePath(const String& path) { if (isOpen()) { LOG_ERROR("Icon database already has a path and is already open. We don't currently support changing its path and reopening."); return; } m_iconDatabaseImpl = IconDatabase::create(); m_iconDatabaseImpl->setClient(this); IconDatabase::delayDatabaseCleanup(); m_databaseCleanupDisabled = true; m_iconDatabaseImpl->setEnabled(true); if (!m_iconDatabaseImpl->open(directoryName(path), pathGetFileName(path))) { LOG_ERROR("Unable to open WebKit2 icon database on disk"); m_iconDatabaseImpl.clear(); setGlobalIconDatabase(0); IconDatabase::allowDatabaseCleanup(); m_databaseCleanupDisabled = false; } setGlobalIconDatabase(m_iconDatabaseImpl.get()); }
void WebIconDatabase::invalidate() { setGlobalIconDatabase(0); }
void WebIconDatabase::invalidate() { setGlobalIconDatabase(nullptr); }