Diff
Modified: trunk/Source/WebKit2/ChangeLog (199841 => 199842)
--- trunk/Source/WebKit2/ChangeLog 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/ChangeLog 2016-04-21 23:06:41 UTC (rev 199842)
@@ -1,5 +1,62 @@
2016-04-21 Anders Carlsson <ander...@apple.com>
+ Get rid of the last uses of ApplicationCacheStorage::singleton() from WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=156876
+
+ Reviewed by Tim Horton.
+
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ Add and encode and decode a applicationCacheFlatFileSubdirectoryName.
+
+ * UIProcess/API/APIProcessPoolConfiguration.cpp:
+ (API::ProcessPoolConfiguration::createWithLegacyOptions):
+ Set m_applicationCacheFlatFileSubdirectoryName to "ApplicationCache".
+
+ (API::ProcessPoolConfiguration::ProcessPoolConfiguration):
+ Set m_applicationCacheFlatFileSubdirectoryName to "Files".
+
+ (API::ProcessPoolConfiguration::copy):
+ Copy m_applicationCacheFlatFileSubdirectoryName.
+
+ * UIProcess/API/APIProcessPoolConfiguration.h:
+ Add getter for applicationCacheFlatFileSubdirectoryName.
+
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::legacyWebsiteDataStoreConfiguration):
+ Initialize applicationCacheFlatFileSubdirectoryName from the process pool configuration.
+
+ (WebKit::WebProcessPool::createNewWebProcess):
+ Initialize parameters.applicationCacheFlatFileSubdirectoryName. Remove a call to
+ ApplicationCacheStorage::singleton().setDefaultOriginQuota since it had no effect (it was called in the UI process).
+
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+ (WebKit::WebsiteDataStore::WebsiteDataStore):
+ Initialize m_applicationCacheFlatFileSubdirectoryName.
+
+ (WebKit::WebsiteDataStore::fetchData):
+ (WebKit::WebsiteDataStore::removeData):
+ Pass m_applicationCacheFlatFileSubdirectoryName when creating the application cache storage.
+
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+ Add new members.
+
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ Set the application cache storage.
+
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::initializeWebProcess):
+ Initialize the application cache storage.
+
+ * WebProcess/WebProcess.h:
+ (WebKit::WebProcess::applicationCacheStorage):
+ Add new getter.
+
+2016-04-21 Anders Carlsson <ander...@apple.com>
+
Remove two uses of ApplicationCacheStorage::singleton() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=156873
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp (199841 => 199842)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp 2016-04-21 23:06:41 UTC (rev 199842)
@@ -62,6 +62,7 @@
encoder << injectedBundlePathExtensionHandle;
encoder << initializationUserData;
encoder << applicationCacheDirectory;
+ encoder << applicationCacheFlatFileSubdirectoryName;
encoder << applicationCacheDirectoryExtensionHandle;
encoder << webSQLDatabaseDirectory;
encoder << webSQLDatabaseDirectoryExtensionHandle;
@@ -156,6 +157,8 @@
return false;
if (!decoder.decode(parameters.applicationCacheDirectory))
return false;
+ if (!decoder.decode(parameters.applicationCacheFlatFileSubdirectoryName))
+ return false;
if (!decoder.decode(parameters.applicationCacheDirectoryExtensionHandle))
return false;
if (!decoder.decode(parameters.webSQLDatabaseDirectory))
Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (199841 => 199842)
--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h 2016-04-21 23:06:41 UTC (rev 199842)
@@ -68,7 +68,8 @@
UserData initializationUserData;
- String applicationCacheDirectory;
+ String applicationCacheDirectory;
+ String applicationCacheFlatFileSubdirectoryName;
SandboxExtension::Handle applicationCacheDirectoryExtensionHandle;
String webSQLDatabaseDirectory;
SandboxExtension::Handle webSQLDatabaseDirectoryExtensionHandle;
Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp (199841 => 199842)
--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp 2016-04-21 23:06:41 UTC (rev 199842)
@@ -45,6 +45,7 @@
configuration->m_cacheModel = WebKit::CacheModelDocumentViewer;
configuration->m_applicationCacheDirectory = WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory();
+ configuration->m_applicationCacheFlatFileSubdirectoryName = "ApplicationCache";
configuration->m_diskCacheDirectory = WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory();
configuration->m_mediaCacheDirectory = WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory();
configuration->m_indexedDBDatabaseDirectory = WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory();
@@ -57,6 +58,7 @@
ProcessPoolConfiguration::ProcessPoolConfiguration()
: m_applicationCacheDirectory(WebsiteDataStore::defaultApplicationCacheDirectory())
+ , m_applicationCacheFlatFileSubdirectoryName("Files")
, m_diskCacheDirectory(WebsiteDataStore::defaultNetworkCacheDirectory())
, m_mediaCacheDirectory(WebsiteDataStore::defaultMediaCacheDirectory())
, m_indexedDBDatabaseDirectory(WebsiteDataStore::defaultIndexedDBDatabaseDirectory())
@@ -80,6 +82,7 @@
copy->m_diskCacheSpeculativeValidationEnabled = this->m_diskCacheSpeculativeValidationEnabled;
copy->m_diskCacheSizeOverride = this->m_diskCacheSizeOverride;
copy->m_applicationCacheDirectory = this->m_applicationCacheDirectory;
+ copy->m_applicationCacheFlatFileSubdirectoryName = this->m_applicationCacheFlatFileSubdirectoryName;
copy->m_diskCacheDirectory = this->m_diskCacheDirectory;
copy->m_mediaCacheDirectory = this->m_mediaCacheDirectory;
copy->m_indexedDBDatabaseDirectory = this->m_indexedDBDatabaseDirectory;
Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (199841 => 199842)
--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h 2016-04-21 23:06:41 UTC (rev 199842)
@@ -62,6 +62,8 @@
const WTF::String& applicationCacheDirectory() const { return m_applicationCacheDirectory; }
void setApplicationCacheDirectory(const WTF::String& applicationCacheDirectory) { m_applicationCacheDirectory = applicationCacheDirectory; }
+ const WTF::String& applicationCacheFlatFileSubdirectoryName() const { return m_applicationCacheFlatFileSubdirectoryName; }
+
const WTF::String& diskCacheDirectory() const { return m_diskCacheDirectory; }
void setDiskCacheDirectory(const WTF::String& diskCacheDirectory) { m_diskCacheDirectory = diskCacheDirectory; }
@@ -104,6 +106,7 @@
int64_t m_diskCacheSizeOverride { -1 };
WTF::String m_applicationCacheDirectory;
+ WTF::String m_applicationCacheFlatFileSubdirectoryName;
WTF::String m_diskCacheDirectory;
WTF::String m_mediaCacheDirectory;
WTF::String m_indexedDBDatabaseDirectory;
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (199841 => 199842)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2016-04-21 23:06:41 UTC (rev 199842)
@@ -128,6 +128,7 @@
configuration.localStorageDirectory = processPoolConfiguration.localStorageDirectory();
configuration.webSQLDatabaseDirectory = processPoolConfiguration.webSQLDatabaseDirectory();
configuration.applicationCacheDirectory = processPoolConfiguration.applicationCacheDirectory();
+ configuration.applicationCacheFlatFileSubdirectoryName = processPoolConfiguration.applicationCacheFlatFileSubdirectoryName();
configuration.mediaCacheDirectory = processPoolConfiguration.mediaCacheDirectory();
configuration.mediaKeysStorageDirectory = processPoolConfiguration.mediaKeysStorageDirectory();
configuration.networkCacheDirectory = processPoolConfiguration.diskCacheDirectory();
@@ -538,6 +539,8 @@
SandboxExtension::createHandle(parameters.injectedBundlePath, SandboxExtension::ReadOnly, parameters.injectedBundlePathExtensionHandle);
parameters.applicationCacheDirectory = m_configuration->applicationCacheDirectory();
+ parameters.applicationCacheFlatFileSubdirectoryName = m_configuration->applicationCacheFlatFileSubdirectoryName();
+
if (!parameters.applicationCacheDirectory.isEmpty())
SandboxExtension::createHandleForReadWriteDirectory(parameters.applicationCacheDirectory, parameters.applicationCacheDirectoryExtensionHandle);
@@ -646,9 +649,6 @@
#if PLATFORM(COCOA)
process->send(Messages::WebProcess::SetQOS(webProcessLatencyQOS(), webProcessThroughputQOS()), 0);
#endif
-#if PLATFORM(IOS)
- ApplicationCacheStorage::singleton().setDefaultOriginQuota(25ULL * 1024 * 1024);
-#endif
if (WebPreferences::anyPagesAreUsingPrivateBrowsing())
process->send(Messages::WebProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp (199841 => 199842)
--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp 2016-04-21 23:06:41 UTC (rev 199842)
@@ -78,6 +78,7 @@
, m_sessionID(WebCore::SessionID::defaultSessionID())
, m_networkCacheDirectory(WTFMove(configuration.networkCacheDirectory))
, m_applicationCacheDirectory(WTFMove(configuration.applicationCacheDirectory))
+ , m_applicationCacheFlatFileSubdirectoryName(WTFMove(configuration.applicationCacheFlatFileSubdirectoryName))
, m_mediaCacheDirectory(WTFMove(configuration.mediaCacheDirectory))
, m_webSQLDatabaseDirectory(WTFMove(configuration.webSQLDatabaseDirectory))
, m_mediaKeysStorageDirectory(WTFMove(configuration.mediaKeysStorageDirectory))
@@ -355,11 +356,12 @@
if (dataTypes.contains(WebsiteDataType::OfflineWebApplicationCache) && isPersistent()) {
StringCapture applicationCacheDirectory { m_applicationCacheDirectory };
+ StringCapture applicationCacheFlatFileSubdirectoryName { m_applicationCacheFlatFileSubdirectoryName };
callbackAggregator->addPendingCallback();
- m_queue->dispatch([fetchOptions, applicationCacheDirectory, callbackAggregator] {
- auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), "ApplicationCache");
+ m_queue->dispatch([fetchOptions, applicationCacheDirectory, applicationCacheFlatFileSubdirectoryName, callbackAggregator] {
+ auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), applicationCacheFlatFileSubdirectoryName.string());
WebsiteData* websiteData = new WebsiteData;
@@ -632,11 +634,12 @@
if (dataTypes.contains(WebsiteDataType::OfflineWebApplicationCache) && isPersistent()) {
StringCapture applicationCacheDirectory { m_applicationCacheDirectory };
+ StringCapture applicationCacheFlatFileSubdirectoryName { m_applicationCacheFlatFileSubdirectoryName };
callbackAggregator->addPendingCallback();
- m_queue->dispatch([applicationCacheDirectory, callbackAggregator] {
- auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), "ApplicationCache");
+ m_queue->dispatch([applicationCacheDirectory, applicationCacheFlatFileSubdirectoryName, callbackAggregator] {
+ auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), applicationCacheFlatFileSubdirectoryName.string());
storage->deleteAllCaches();
@@ -884,6 +887,7 @@
if (dataTypes.contains(WebsiteDataType::OfflineWebApplicationCache) && isPersistent()) {
StringCapture applicationCacheDirectory { m_applicationCacheDirectory };
+ StringCapture applicationCacheFlatFileSubdirectoryName { m_applicationCacheFlatFileSubdirectoryName };
HashSet<RefPtr<WebCore::SecurityOrigin>> origins;
for (const auto& dataRecord : dataRecords) {
@@ -892,8 +896,8 @@
}
callbackAggregator->addPendingCallback();
- m_queue->dispatch([origins, applicationCacheDirectory, callbackAggregator] {
- auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), "ApplicationCache");
+ m_queue->dispatch([origins, applicationCacheDirectory, applicationCacheFlatFileSubdirectoryName, callbackAggregator] {
+ auto storage = WebCore::ApplicationCacheStorage::create(applicationCacheDirectory.string(), applicationCacheFlatFileSubdirectoryName.string());
for (const auto& origin : origins)
storage->deleteCacheForOrigin(*origin);
Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h (199841 => 199842)
--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h 2016-04-21 23:06:41 UTC (rev 199842)
@@ -60,6 +60,7 @@
struct Configuration {
String networkCacheDirectory;
String applicationCacheDirectory;
+ String applicationCacheFlatFileSubdirectoryName;
String mediaCacheDirectory;
String webSQLDatabaseDirectory;
@@ -118,6 +119,7 @@
const String m_networkCacheDirectory;
const String m_applicationCacheDirectory;
+ const String m_applicationCacheFlatFileSubdirectoryName;
const String m_mediaCacheDirectory;
const String m_webSQLDatabaseDirectory;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (199841 => 199842)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2016-04-21 23:06:41 UTC (rev 199842)
@@ -106,6 +106,7 @@
#include "WebUserContentController.h"
#include "WebUserMediaClient.h"
#include <_javascript_Core/APICast.h>
+#include <WebCore/ApplicationCacheStorage.h>
#include <WebCore/ArchiveResource.h>
#include <WebCore/Chrome.h>
#include <WebCore/ContextMenuController.h>
@@ -402,6 +403,7 @@
pageConfiguration.progressTrackerClient = new WebProgressTrackerClient(*this);
pageConfiguration.diagnosticLoggingClient = new WebDiagnosticLoggingClient(*this);
+ pageConfiguration.applicationCacheStorage = &WebProcess::singleton().applicationCacheStorage();
pageConfiguration.databaseProvider = WebDatabaseProvider::getOrCreate(m_pageGroup->pageGroupID());
pageConfiguration.storageNamespaceProvider = WebStorageNamespaceProvider::getOrCreate(m_pageGroup->pageGroupID());
pageConfiguration.userContentProvider = m_userContentController.ptr();
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (199841 => 199842)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2016-04-21 23:06:41 UTC (rev 199842)
@@ -291,8 +291,11 @@
m_iconDatabaseProxy.setEnabled(parameters.iconDatabaseEnabled);
#endif
- if (!parameters.applicationCacheDirectory.isEmpty())
- ApplicationCacheStorage::singleton().setCacheDirectory(parameters.applicationCacheDirectory);
+ // FIXME: This should be constructed per data store, not per process.
+ m_applicationCacheStorage = ApplicationCacheStorage::create(parameters.applicationCacheDirectory, parameters.applicationCacheFlatFileSubdirectoryName);
+#if PLATFORM(IOS)
+ m_applicationCacheStorage->setDefaultOriginQuota(25ULL * 1024 * 1024);
+#endif
if (!parameters.mediaCacheDirectory.isEmpty())
WebCore::HTMLMediaElement::setMediaCacheDirectory(parameters.mediaCacheDirectory);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (199841 => 199842)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2016-04-21 23:03:27 UTC (rev 199841)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2016-04-21 23:06:41 UTC (rev 199842)
@@ -61,6 +61,7 @@
}
namespace WebCore {
+class ApplicationCacheStorage;
class CertificateInfo;
class PageGroup;
class ResourceRequest;
@@ -207,6 +208,8 @@
bool hasRichContentServices() const { return m_hasRichContentServices; }
#endif
+ WebCore::ApplicationCacheStorage& applicationCacheStorage() { return *m_applicationCacheStorage; }
+
void prefetchDNS(const String&);
WebAutomationSessionProxy* automationSessionProxy() { return m_automationSessionProxy.get(); }
@@ -385,6 +388,8 @@
WebCore::Timer m_nonVisibleProcessCleanupTimer;
WebCore::Timer m_statisticsChangedTimer;
+ RefPtr<WebCore::ApplicationCacheStorage> m_applicationCacheStorage;
+
#if PLATFORM(IOS)
WebSQLiteDatabaseTracker m_webSQLiteDatabaseTracker;
#endif