Title: [223242] trunk/Source/WebKit
Revision
223242
Author
[email protected]
Date
2017-10-12 11:26:33 -0700 (Thu, 12 Oct 2017)

Log Message

CacheStorage persistent folder should be in /Library/Cache
https://bugs.webkit.org/show_bug.cgi?id=178193

Patch by Youenn Fablet <[email protected]> on 2017-10-12
Reviewed by Brady Eidson.

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultCacheStorageDirectory): Making CacheStorage
directory a subfolder of Caches folder.
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::ensureNetworkProcess): Make sure the web site data store
has the right cache directory path. Also make sure that the quota is set even if there is no folder specified.
Quota may still be useful in case of non persistent sessions.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
* UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::defaultCacheStorageDirectory):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (223241 => 223242)


--- trunk/Source/WebKit/ChangeLog	2017-10-12 18:21:05 UTC (rev 223241)
+++ trunk/Source/WebKit/ChangeLog	2017-10-12 18:26:33 UTC (rev 223242)
@@ -1,3 +1,24 @@
+2017-10-12  Youenn Fablet  <[email protected]>
+
+        CacheStorage persistent folder should be in /Library/Cache
+        https://bugs.webkit.org/show_bug.cgi?id=178193
+
+        Reviewed by Brady Eidson.
+
+        * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
+        (API::WebsiteDataStore::defaultCacheStorageDirectory): Making CacheStorage
+        directory a subfolder of Caches folder.
+        (API::WebsiteDataStore::defaultDataStoreConfiguration):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::legacyWebsiteDataStoreConfiguration):
+        (WebKit::WebProcessPool::ensureNetworkProcess): Make sure the web site data store
+        has the right cache directory path. Also make sure that the quota is set even if there is no folder specified.
+        Quota may still be useful in case of non persistent sessions.
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
+        * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
+        (API::WebsiteDataStore::defaultCacheStorageDirectory):
+
 2017-10-11  Sam Weinig  <[email protected]>
 
         Remove out-parameter variants of copyToVector

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm (223241 => 223242)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm	2017-10-12 18:21:05 UTC (rev 223241)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm	2017-10-12 18:26:33 UTC (rev 223242)
@@ -54,7 +54,7 @@
 
 String WebsiteDataStore::defaultCacheStorageDirectory()
 {
-    return websiteDataDirectoryFileSystemRepresentation("CacheStorage");
+    return cacheDirectoryFileSystemRepresentation("CacheStorage");
 }
 
 String WebsiteDataStore::defaultNetworkCacheDirectory()
@@ -188,6 +188,7 @@
 
     configuration.applicationCacheDirectory = defaultApplicationCacheDirectory();
     configuration.applicationCacheFlatFileSubdirectoryName = "Files";
+    configuration.cacheStorageDirectory = defaultCacheStorageDirectory();
     configuration.networkCacheDirectory = defaultNetworkCacheDirectory();
     configuration.mediaCacheDirectory = defaultMediaCacheDirectory();
 

Modified: trunk/Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp (223241 => 223242)


--- trunk/Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp	2017-10-12 18:21:05 UTC (rev 223241)
+++ trunk/Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp	2017-10-12 18:26:33 UTC (rev 223242)
@@ -48,6 +48,11 @@
     return cacheDirectoryFileSystemRepresentation(WebCore::pathByAppendingComponent(WebCore::stringFromFileSystemRepresentation(g_get_prgname()), "WebKitCache"));
 }
 
+String WebsiteDataStore::defaultCacheStorageDirectory()
+{
+    return cacheDirectoryFileSystemRepresentation(WebCore::pathByAppendingComponent(WebCore::stringFromFileSystemRepresentation(g_get_prgname()), "CacheStorage"));
+}
+
 String WebsiteDataStore::defaultIndexedDBDatabaseDirectory()
 {
     return websiteDataDirectoryFileSystemRepresentation(BASE_DIRECTORY G_DIR_SEPARATOR_S "databases" G_DIR_SEPARATOR_S "indexeddb");

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (223241 => 223242)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2017-10-12 18:21:05 UTC (rev 223241)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2017-10-12 18:26:33 UTC (rev 223242)
@@ -189,6 +189,7 @@
 {
     WebsiteDataStore::Configuration configuration;
 
+    configuration.cacheStorageDirectory = API::WebsiteDataStore::defaultCacheStorageDirectory();
     configuration.localStorageDirectory = processPoolConfiguration.localStorageDirectory();
     configuration.webSQLDatabaseDirectory = processPoolConfiguration.webSQLDatabaseDirectory();
     configuration.applicationCacheDirectory = processPoolConfiguration.applicationCacheDirectory();
@@ -416,6 +417,9 @@
         return *m_networkProcess;
     }
 
+    if (m_websiteDataStore)
+        m_websiteDataStore->websiteDataStore().resolveDirectoriesIfNecessary();
+
     m_networkProcess = NetworkProcessProxy::create(*this);
 
     NetworkProcessCreationParameters parameters;
@@ -433,10 +437,9 @@
         parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
 
     parameters.cacheStorageDirectory = m_websiteDataStore ? m_websiteDataStore->websiteDataStore().cacheStorageDirectory() : String { };
-    if (!parameters.cacheStorageDirectory.isEmpty()) {
+    if (!parameters.cacheStorageDirectory.isEmpty())
         SandboxExtension::createHandleForReadWriteDirectory(parameters.cacheStorageDirectory, parameters.cacheStorageDirectoryExtensionHandle);
-        parameters.cacheStoragePerOriginQuota = m_websiteDataStore ? m_websiteDataStore->websiteDataStore().cacheStoragePerOriginQuota() : WebsiteDataStore::defaultCacheStoragePerOriginQuota;
-    }
+    parameters.cacheStoragePerOriginQuota = m_websiteDataStore ? m_websiteDataStore->websiteDataStore().cacheStoragePerOriginQuota() : WebsiteDataStore::defaultCacheStoragePerOriginQuota;
 
     parameters.diskCacheDirectory = m_configuration->diskCacheDirectory();
     if (!parameters.diskCacheDirectory.isEmpty())

Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (223241 => 223242)


--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2017-10-12 18:21:05 UTC (rev 223241)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp	2017-10-12 18:26:33 UTC (rev 223242)
@@ -119,6 +119,9 @@
     if (!m_configuration._javascript_ConfigurationDirectory.isEmpty())
         m_resolvedConfiguration._javascript_ConfigurationDirectory = resolvePathForSandboxExtension(m_configuration._javascript_ConfigurationDirectory);
 
+    if (!m_configuration.cacheStorageDirectory.isEmpty() && m_resolvedConfiguration.cacheStorageDirectory.isEmpty())
+        m_resolvedConfiguration.cacheStorageDirectory = resolvePathForSandboxExtension(m_configuration.cacheStorageDirectory);
+
     // Resolve directories for file paths.
     if (!m_configuration.cookieStorageFile.isEmpty()) {
         m_resolvedConfiguration.cookieStorageFile = resolveAndCreateReadWriteDirectoryForSandboxExtension(WebCore::directoryName(m_configuration.cookieStorageFile));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to