APIWebsiteDataStore.cpp [plain text]
#include "config.h"
#include "APIWebsiteDataStore.h"
#include "WebKit2Initialize.h"
#include "WebsiteDataStore.h"
namespace API {
static RefPtr<WebsiteDataStore>& globalDefaultDataStore()
{
static NeverDestroyed<RefPtr<WebsiteDataStore>> globalDefaultDataStore;
return globalDefaultDataStore.get();
}
Ref<WebsiteDataStore> WebsiteDataStore::defaultDataStore()
{
WebKit::InitializeWebKit2();
auto& store = globalDefaultDataStore();
if (!store)
store = adoptRef(new WebsiteDataStore(defaultDataStoreConfiguration(), PAL::SessionID::defaultSessionID()));
return *store;
}
void WebsiteDataStore::deleteDefaultDataStoreForTesting()
{
globalDefaultDataStore() = nullptr;
}
bool WebsiteDataStore::defaultDataStoreExists()
{
return !!globalDefaultDataStore();
}
Ref<WebsiteDataStore> WebsiteDataStore::createNonPersistentDataStore()
{
return adoptRef(*new WebsiteDataStore);
}
Ref<WebsiteDataStore> WebsiteDataStore::createLegacy(Ref<WebKit::WebsiteDataStoreConfiguration>&& configuration)
{
return adoptRef(*new WebsiteDataStore(WTFMove(configuration), PAL::SessionID::defaultSessionID()));
}
WebsiteDataStore::WebsiteDataStore()
: m_websiteDataStore(WebKit::WebsiteDataStore::createNonPersistent())
{
}
WebsiteDataStore::WebsiteDataStore(Ref<WebKit::WebsiteDataStoreConfiguration>&& configuration, PAL::SessionID sessionID)
: m_websiteDataStore(WebKit::WebsiteDataStore::create(WTFMove(configuration), sessionID))
{
}
WebsiteDataStore::~WebsiteDataStore()
{
}
HTTPCookieStore& WebsiteDataStore::httpCookieStore()
{
if (!m_apiHTTPCookieStore)
m_apiHTTPCookieStore = HTTPCookieStore::create(*this);
return *m_apiHTTPCookieStore;
}
bool WebsiteDataStore::isPersistent()
{
return m_websiteDataStore->isPersistent();
}
bool WebsiteDataStore::resourceLoadStatisticsEnabled() const
{
return m_websiteDataStore->resourceLoadStatisticsEnabled();
}
void WebsiteDataStore::setResourceLoadStatisticsEnabled(bool enabled)
{
m_websiteDataStore->setResourceLoadStatisticsEnabled(enabled);
}
bool WebsiteDataStore::resourceLoadStatisticsDebugMode() const
{
return m_websiteDataStore->resourceLoadStatisticsDebugMode();
}
void WebsiteDataStore::setResourceLoadStatisticsDebugMode(bool enabled)
{
m_websiteDataStore->setResourceLoadStatisticsDebugMode(enabled);
}
#if !PLATFORM(COCOA)
WTF::String WebsiteDataStore::defaultMediaCacheDirectory()
{
return WTF::String();
}
WTF::String WebsiteDataStore::defaultJavaScriptConfigurationDirectory()
{
return WTF::String();
}
#endif
Ref<WebKit::WebsiteDataStoreConfiguration> WebsiteDataStore::legacyDefaultDataStoreConfiguration()
{
auto configuration = defaultDataStoreConfiguration();
configuration->setApplicationCacheDirectory(legacyDefaultApplicationCacheDirectory());
configuration->setApplicationCacheFlatFileSubdirectoryName("ApplicationCache");
configuration->setNetworkCacheDirectory(legacyDefaultNetworkCacheDirectory());
configuration->setMediaCacheDirectory(legacyDefaultMediaCacheDirectory());
configuration->setMediaKeysStorageDirectory(legacyDefaultMediaKeysStorageDirectory());
configuration->setDeviceIdHashSaltsStorageDirectory(legacyDefaultDeviceIdHashSaltsStorageDirectory());
configuration->setIndexedDBDatabaseDirectory(legacyDefaultIndexedDBDatabaseDirectory());
configuration->setWebSQLDatabaseDirectory(legacyDefaultWebSQLDatabaseDirectory());
configuration->setLocalStorageDirectory(legacyDefaultLocalStorageDirectory());
configuration->setJavaScriptConfigurationDirectory(legacyDefaultJavaScriptConfigurationDirectory());
return configuration;
}
}