Title: [199842] trunk/Source/WebKit2
Revision
199842
Author
ander...@apple.com
Date
2016-04-21 16:06:41 -0700 (Thu, 21 Apr 2016)

Log Message

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.

Modified Paths

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
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to