Diff
Modified: trunk/Source/WebCore/ChangeLog (243910 => 243911)
--- trunk/Source/WebCore/ChangeLog 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebCore/ChangeLog 2019-04-04 22:07:09 UTC (rev 243911)
@@ -1,3 +1,17 @@
+2019-04-04 Youenn Fablet <[email protected]>
+
+ Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters
+ https://bugs.webkit.org/show_bug.cgi?id=196543
+
+ Reviewed by Alex Christensen.
+
+ Add a default routine to compute a third party quota from a per origin quota.
+ No change of behavior.
+
+ * storage/StorageQuotaManager.h:
+ (WebCore::StorageQuotaManager::defaultThirdPartyQuotaFromPerOriginQuota):
+ (WebCore::StorageQuotaManager::defaultThirdPartyQuota):
+
2019-04-04 Commit Queue <[email protected]>
Unreviewed, rolling out r243807 and r243824.
Modified: trunk/Source/WebCore/storage/StorageQuotaManager.h (243910 => 243911)
--- trunk/Source/WebCore/storage/StorageQuotaManager.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebCore/storage/StorageQuotaManager.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -46,8 +46,10 @@
}
WEBCORE_EXPORT ~StorageQuotaManager();
+ static constexpr uint64_t defaultThirdPartyQuotaFromPerOriginQuota(uint64_t quota) { return quota / 10; }
+
static constexpr uint64_t defaultQuota() { return 1000 * MB; }
- static constexpr uint64_t defaultThirdPartyQuota() { return 100 * MB; }
+ static constexpr uint64_t defaultThirdPartyQuota() { return defaultThirdPartyQuotaFromPerOriginQuota(defaultQuota()); }
WEBCORE_EXPORT void addUser(StorageQuotaUser&);
WEBCORE_EXPORT void removeUser(StorageQuotaUser&);
Modified: trunk/Source/WebKit/ChangeLog (243910 => 243911)
--- trunk/Source/WebKit/ChangeLog 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/ChangeLog 2019-04-04 22:07:09 UTC (rev 243911)
@@ -1,3 +1,56 @@
+2019-04-04 Youenn Fablet <[email protected]>
+
+ Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters
+ https://bugs.webkit.org/show_bug.cgi?id=196543
+
+ Reviewed by Alex Christensen.
+
+ Renamed methods used to set cache storage quota to be storage generic
+ since they will apply to all storage.
+
+ Pass quota parameters as part of WebsiteDataStoreParameters from UIProcess
+ to NetworkProcess (start-up time and new WebsiteDataStore time).
+
+ Compute on UIProcess the quota for third party origins using the default rule of dividing by 10.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::initializeNetworkProcess):
+ (WebKit::NetworkProcess::addWebsiteDataStore):
+ (WebKit::NetworkProcess::initializeStorageQuota):
+ (WebKit::NetworkProcess::setCacheStorageParameters):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcess.messages.in:
+ * Shared/WebsiteDataStoreParameters.cpp:
+ (WebKit::WebsiteDataStoreParameters::encode const):
+ (WebKit::WebsiteDataStoreParameters::decode):
+ * Shared/WebsiteDataStoreParameters.h:
+ * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+ (WKWebsiteDataStoreSetPerOriginStorageQuota):
+ (WKWebsiteDataStoreSetCacheStoragePerOriginQuota): Deleted.
+ * UIProcess/API/C/WKWebsiteDataStoreRef.h:
+ * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
+ (-[WKWebsiteDataStore _perOriginStorageQuota]):
+ (-[WKWebsiteDataStore _setPerOriginStorageQuota:]):
+ (-[WKWebsiteDataStore _cacheStoragePerOriginQuota]): Deleted.
+ (-[WKWebsiteDataStore _setCacheStoragePerOriginQuota:]): Deleted.
+ * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
+ * UIProcess/Network/NetworkProcessProxy.cpp:
+ (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):
+ * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+ (WebKit::WebsiteDataStore::parameters):
+ * UIProcess/WebsiteData/WebsiteDataStore.h:
+ (WebKit::WebsiteDataStore::perOriginStorageQuota const):
+ (WebKit::WebsiteDataStore::setPerOriginStorageQuota):
+ (WebKit::WebsiteDataStore::cacheStoragePerOriginQuota const): Deleted.
+ (WebKit::WebsiteDataStore::setCacheStoragePerOriginQuota): Deleted.
+ * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
+ (WebKit::WebsiteDataStoreConfiguration::copy):
+ * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
+ (WebKit::WebsiteDataStoreConfiguration::perOriginStorageQuota):
+ (WebKit::WebsiteDataStoreConfiguration::setPerOriginStorageQuota):
+ (WebKit::WebsiteDataStoreConfiguration::cacheStoragePerOriginQuota): Deleted.
+ (WebKit::WebsiteDataStoreConfiguration::setCacheStoragePerOriginQuota): Deleted.
+
2019-04-04 Wenson Hsieh <[email protected]>
Changing default website policies shouldn't change default website policies in subsequent navigations
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (243910 => 243911)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -322,6 +322,7 @@
m_shouldDisableServiceWorkerProcessTerminationDelay = parameters.shouldDisableServiceWorkerProcessTerminationDelay;
}
#endif
+ initializeStorageQuota(parameters.defaultDataStoreParameters);
auto* defaultSession = networkSession(PAL::SessionID::defaultSessionID());
for (const auto& cookie : parameters.defaultDataStoreParameters.pendingCookies)
@@ -455,9 +456,19 @@
addServiceWorkerSession(parameters.networkSessionParameters.sessionID, parameters.serviceWorkerRegistrationDirectory, parameters.serviceWorkerRegistrationDirectoryExtensionHandle);
#endif
+ initializeStorageQuota(parameters);
+
RemoteNetworkingContext::ensureWebsiteDataStoreSession(*this, WTFMove(parameters));
}
+void NetworkProcess::initializeStorageQuota(const WebsiteDataStoreParameters& parameters)
+{
+ auto& managers = m_storageQuotaManagers.ensure(parameters.networkSessionParameters.sessionID, [] {
+ return StorageQuotaManagers { };
+ }).iterator->value;
+ managers.setDefaultQuotas(parameters.perOriginStorageQuota, parameters.perThirdPartyOriginStorageQuota);
+}
+
void NetworkProcess::switchToNewTestingSession()
{
#if PLATFORM(COCOA)
@@ -2029,13 +2040,8 @@
}).iterator->value.append(WTFMove(callback));
}
-void NetworkProcess::setCacheStorageParameters(PAL::SessionID sessionID, uint64_t quota, String&& cacheStorageDirectory, SandboxExtension::Handle&& handle)
+void NetworkProcess::setCacheStorageParameters(PAL::SessionID sessionID, String&& cacheStorageDirectory, SandboxExtension::Handle&& handle)
{
- auto& managers = m_storageQuotaManagers.ensure(sessionID, [] {
- return StorageQuotaManagers { };
- }).iterator->value;
- managers.setDefaultQuotas(quota, quota / 10);
-
auto iterator = m_cacheStorageParametersCallbacks.find(sessionID);
if (iterator == m_cacheStorageParametersCallbacks.end())
return;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (243910 => 243911)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -380,7 +380,7 @@
void clearCachedCredentials();
- void setCacheStorageParameters(PAL::SessionID, uint64_t quota, String&& cacheStorageDirectory, SandboxExtension::Handle&&);
+ void setCacheStorageParameters(PAL::SessionID, String&& cacheStorageDirectory, SandboxExtension::Handle&&);
void initializeQuotaUsers(WebCore::StorageQuotaManager&, PAL::SessionID, const WebCore::ClientOrigin&);
// FIXME: This should take a session ID so we can identify which disk cache to delete.
@@ -460,6 +460,7 @@
void ensurePathExists(const String& path);
void clearStorageQuota(PAL::SessionID);
+ void initializeStorageQuota(const WebsiteDataStoreParameters&);
// Connections to WebProcesses.
Vector<Ref<NetworkConnectionToWebProcess>> m_webProcessConnections;
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (243910 => 243911)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in 2019-04-04 22:07:09 UTC (rev 243911)
@@ -151,7 +151,7 @@
RegisterURLSchemeAsCORSEnabled(String scheme)
RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(String scheme)
- SetCacheStorageParameters(PAL::SessionID sessionID, uint64_t quota, String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle);
+ SetCacheStorageParameters(PAL::SessionID sessionID, String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle);
#if ENABLE(SERVICE_WORKER)
PostMessageToServiceWorkerClient(struct WebCore::ServiceWorkerClientIdentifier destinationIdentifier, struct WebCore::MessageWithMessagePorts message, WebCore::ServiceWorkerIdentifier sourceIdentifier, String sourceOrigin)
Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (243910 => 243911)
--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -52,6 +52,9 @@
#if ENABLE(SERVICE_WORKER)
encoder << serviceWorkerRegistrationDirectory << serviceWorkerRegistrationDirectoryExtensionHandle;
#endif
+
+ encoder << perOriginStorageQuota;
+ encoder << perThirdPartyOriginStorageQuota;
}
Optional<WebsiteDataStoreParameters> WebsiteDataStoreParameters::decode(IPC::Decoder& decoder)
@@ -117,6 +120,18 @@
return WTF::nullopt;
parameters.serviceWorkerRegistrationDirectoryExtensionHandle = WTFMove(*serviceWorkerRegistrationDirectoryExtensionHandle);
#endif
+
+ Optional<uint64_t> perOriginStorageQuota;
+ decoder >> perOriginStorageQuota;
+ if (!perOriginStorageQuota)
+ return WTF::nullopt;
+ parameters.perOriginStorageQuota = *perOriginStorageQuota;
+
+ Optional<uint64_t> perThirdPartyOriginStorageQuota;
+ decoder >> perThirdPartyOriginStorageQuota;
+ if (!perThirdPartyOriginStorageQuota)
+ return WTF::nullopt;
+ parameters.perThirdPartyOriginStorageQuota = *perThirdPartyOriginStorageQuota;
return parameters;
}
Modified: trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h (243910 => 243911)
--- trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -28,6 +28,7 @@
#include "NetworkSessionCreationParameters.h"
#include "SandboxExtension.h"
#include <WebCore/Cookie.h>
+#include <WebCore/StorageQuotaManager.h>
#include <pal/SessionID.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
@@ -68,6 +69,9 @@
String serviceWorkerRegistrationDirectory;
SandboxExtension::Handle serviceWorkerRegistrationDirectoryExtensionHandle;
#endif
+
+ uint64_t perOriginStorageQuota { WebCore::StorageQuotaManager::defaultQuota() };
+ uint64_t perThirdPartyOriginStorageQuota { WebCore::StorageQuotaManager::defaultThirdPartyQuota() };
};
} // namespace WebKit
Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -573,9 +573,9 @@
WebKit::toImpl(dataStoreRef)->websiteDataStore().setServiceWorkerRegistrationDirectory(WebKit::toImpl(serviceWorkerRegistrationDirectory)->string());
}
-void WKWebsiteDataStoreSetCacheStoragePerOriginQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota)
+void WKWebsiteDataStoreSetPerOriginStorageQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota)
{
- WebKit::toImpl(dataStoreRef)->websiteDataStore().setCacheStoragePerOriginQuota(quota);
+ WebKit::toImpl(dataStoreRef)->websiteDataStore().setPerOriginStorageQuota(quota);
}
void WKWebsiteDataStoreSetWebAuthenticationMockConfiguration(WKWebsiteDataStoreRef dataStoreRef, WKDictionaryRef configurationRef)
Modified: trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -125,7 +125,7 @@
WK_EXPORT WKStringRef WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef);
WK_EXPORT void WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef, WKStringRef serviceWorkerRegistrationDirectory);
-WK_EXPORT void WKWebsiteDataStoreSetCacheStoragePerOriginQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota);
+WK_EXPORT void WKWebsiteDataStoreSetPerOriginStorageQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota);
WK_EXPORT void WKWebsiteDataStoreSetWebAuthenticationMockConfiguration(WKWebsiteDataStoreRef dataStoreRef, WKDictionaryRef configuration);
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm 2019-04-04 22:07:09 UTC (rev 243911)
@@ -306,14 +306,14 @@
#endif
}
-- (NSUInteger)_cacheStoragePerOriginQuota
+- (NSUInteger)_perOriginStorageQuota
{
- return _websiteDataStore->websiteDataStore().cacheStoragePerOriginQuota();
+ return _websiteDataStore->websiteDataStore().perOriginStorageQuota();
}
-- (void)_setCacheStoragePerOriginQuota:(NSUInteger)size
+- (void)_setPerOriginStorageQuota:(NSUInteger)size
{
- _websiteDataStore->websiteDataStore().setCacheStoragePerOriginQuota(size);
+ _websiteDataStore->websiteDataStore().setPerOriginStorageQuota(size);
}
- (NSString *)_cacheStorageDirectory
Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -48,7 +48,7 @@
@property (nonatomic, setter=_setResourceLoadStatisticsEnabled:) BOOL _resourceLoadStatisticsEnabled WK_API_AVAILABLE(macos(10.12), ios(10.0));
@property (nonatomic, setter=_setResourceLoadStatisticsDebugMode:) BOOL _resourceLoadStatisticsDebugMode WK_API_AVAILABLE(macos(10.14), ios(12.0));
-@property (nonatomic, setter=_setCacheStoragePerOriginQuota:) NSUInteger _cacheStoragePerOriginQuota WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
+@property (nonatomic, setter=_setPerOriginStorageQuota:) NSUInteger _perOriginStorageQuota WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
@property (nonatomic, setter=_setCacheStorageDirectory:) NSString* _cacheStorageDirectory WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
@property (nonatomic, setter=_setServiceWorkerRegistrationDirectory:) NSString* _serviceWorkerRegistrationDirectory WK_API_AVAILABLE(macos(10.13.4), ios(11.3));
Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -1138,8 +1138,7 @@
if (!store) {
RELEASE_LOG_ERROR(CacheStorage, "%p - NetworkProcessProxy is unable to retrieve CacheStorage parameters from the given session ID %" PRIu64, this, sessionID.sessionID());
- auto quota = m_processPool.websiteDataStore() ? m_processPool.websiteDataStore()->websiteDataStore().cacheStoragePerOriginQuota() : WebsiteDataStoreConfiguration::defaultCacheStoragePerOriginQuota;
- send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, quota, { }, { } }, 0);
+ send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, { }, { } }, 0);
return;
}
@@ -1148,7 +1147,7 @@
if (!cacheStorageDirectory.isEmpty())
SandboxExtension::createHandleForReadWriteDirectory(cacheStorageDirectory, cacheStorageDirectoryExtensionHandle);
- send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, store->cacheStoragePerOriginQuota(), cacheStorageDirectory, cacheStorageDirectoryExtensionHandle }, 0);
+ send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, cacheStorageDirectory, cacheStorageDirectoryExtensionHandle }, 0);
}
#if ENABLE(CONTENT_EXTENSIONS)
Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -589,6 +589,9 @@
enableResourceLoadStatisticsDebugMode = networkSessionParameters.enableResourceLoadStatisticsDebugMode;
manualPrevalentResource = networkSessionParameters.resourceLoadStatisticsManualPrevalentResource;
}
+
+ parameters.defaultDataStoreParameters.perOriginStorageQuota = withWebsiteDataStore->perOriginStorageQuota();
+ parameters.defaultDataStoreParameters.perThirdPartyOriginStorageQuota = withWebsiteDataStore->perThirdPartyOriginStorageQuota();
} else if (m_websiteDataStore) {
enableResourceLoadStatistics = m_websiteDataStore->resourceLoadStatisticsEnabled();
if (enableResourceLoadStatistics) {
@@ -597,6 +600,9 @@
enableResourceLoadStatisticsDebugMode = networkSessionParameters.enableResourceLoadStatisticsDebugMode;
manualPrevalentResource = networkSessionParameters.resourceLoadStatisticsManualPrevalentResource;
}
+
+ parameters.defaultDataStoreParameters.perOriginStorageQuota = m_websiteDataStore->websiteDataStore().perOriginStorageQuota();
+ parameters.defaultDataStoreParameters.perThirdPartyOriginStorageQuota = m_websiteDataStore->websiteDataStore().perThirdPartyOriginStorageQuota();
}
parameters.defaultDataStoreParameters.networkSessionParameters.enableResourceLoadStatistics = enableResourceLoadStatistics;
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm 2019-04-04 22:07:09 UTC (rev 243911)
@@ -160,6 +160,9 @@
SandboxExtension::createHandleForReadWriteDirectory(parameters.serviceWorkerRegistrationDirectory, parameters.serviceWorkerRegistrationDirectoryExtensionHandle);
#endif
+ parameters.perOriginStorageQuota = perOriginStorageQuota();
+ parameters.perThirdPartyOriginStorageQuota = perThirdPartyOriginStorageQuota();
+
return parameters;
}
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -50,6 +50,7 @@
#include <WebCore/RegistrableDomain.h>
#include <WebCore/SecurityOrigin.h>
#include <WebCore/SecurityOriginData.h>
+#include <WebCore/StorageQuotaManager.h>
#include <wtf/CallbackAggregator.h>
#include <wtf/CompletionHandler.h>
#include <wtf/CrossThreadCopier.h>
@@ -2102,6 +2103,12 @@
m_pendingCookies.clear();
}
+uint64_t WebsiteDataStore::perThirdPartyOriginStorageQuota() const
+{
+ // FIXME: Consider whether allowing to set a perThirdPartyOriginStorageQuota from a WebsiteDataStore.
+ return WebCore::StorageQuotaManager::defaultThirdPartyQuotaFromPerOriginQuota(perOriginStorageQuota());
+}
+
#if !PLATFORM(COCOA)
WebsiteDataStoreParameters WebsiteDataStore::parameters()
{
@@ -2122,6 +2129,9 @@
SandboxExtension::createHandleForReadWriteDirectory(parameters.serviceWorkerRegistrationDirectory, parameters.serviceWorkerRegistrationDirectoryExtensionHandle);
#endif
+ parameters.perOriginStorageQuota = perOriginStorageQuota();
+ parameters.perThirdPartyOriginStorageQuota = perThirdPartyOriginStorageQuota();
+
platformSetNetworkParameters(parameters);
return parameters;
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -107,8 +107,9 @@
void setResourceLoadStatisticsDebugMode(bool);
void setResourceLoadStatisticsDebugMode(bool, CompletionHandler<void()>&&);
- uint64_t cacheStoragePerOriginQuota() const { return m_resolvedConfiguration->cacheStoragePerOriginQuota(); }
- void setCacheStoragePerOriginQuota(uint64_t quota) { m_resolvedConfiguration->setCacheStoragePerOriginQuota(quota); }
+ uint64_t perOriginStorageQuota() const { return m_resolvedConfiguration->perOriginStorageQuota(); }
+ uint64_t perThirdPartyOriginStorageQuota() const;
+ void setPerOriginStorageQuota(uint64_t quota) { m_resolvedConfiguration->setPerOriginStorageQuota(quota); }
const String& cacheStorageDirectory() const { return m_resolvedConfiguration->cacheStorageDirectory(); }
void setCacheStorageDirectory(String&& directory) { m_resolvedConfiguration->setCacheStorageDirectory(WTFMove(directory)); }
const String& serviceWorkerRegistrationDirectory() const { return m_resolvedConfiguration->serviceWorkerRegistrationDirectory(); }
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -40,7 +40,7 @@
auto copy = WebsiteDataStoreConfiguration::create();
copy->m_cacheStorageDirectory = this->m_cacheStorageDirectory;
- copy->m_cacheStoragePerOriginQuota = this->m_cacheStoragePerOriginQuota;
+ copy->m_perOriginStorageQuota = this->m_perOriginStorageQuota;
copy->m_networkCacheDirectory = this->m_networkCacheDirectory;
copy->m_applicationCacheDirectory = this->m_applicationCacheDirectory;
copy->m_applicationCacheFlatFileSubdirectoryName = this->m_applicationCacheFlatFileSubdirectoryName;
Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h (243910 => 243911)
--- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h 2019-04-04 22:07:09 UTC (rev 243911)
@@ -37,8 +37,8 @@
Ref<WebsiteDataStoreConfiguration> copy();
- uint64_t cacheStoragePerOriginQuota() { return m_cacheStoragePerOriginQuota; }
- void setCacheStoragePerOriginQuota(uint64_t quota) { m_cacheStoragePerOriginQuota = quota; }
+ uint64_t perOriginStorageQuota() { return m_perOriginStorageQuota; }
+ void setPerOriginStorageQuota(uint64_t quota) { m_perOriginStorageQuota = quota; }
const String& applicationCacheDirectory() const { return m_applicationCacheDirectory; }
void setApplicationCacheDirectory(String&& directory) { m_applicationCacheDirectory = WTFMove(directory); }
@@ -97,13 +97,13 @@
const URL& httpsProxy() const { return m_httpsProxy; }
void setHTTPSProxy(URL&& proxy) { m_httpsProxy = WTFMove(proxy); }
- constexpr static uint64_t defaultCacheStoragePerOriginQuota = 50 * 1024 * 1024;
+ constexpr static uint64_t defaultPerOriginStorageQuota = 50 * 1024 * 1024;
private:
WebsiteDataStoreConfiguration();
String m_cacheStorageDirectory;
- uint64_t m_cacheStoragePerOriginQuota { defaultCacheStoragePerOriginQuota };
+ uint64_t m_perOriginStorageQuota { defaultPerOriginStorageQuota };
String m_networkCacheDirectory;
String m_applicationCacheDirectory;
String m_applicationCacheFlatFileSubdirectoryName;
Modified: trunk/Tools/ChangeLog (243910 => 243911)
--- trunk/Tools/ChangeLog 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Tools/ChangeLog 2019-04-04 22:07:09 UTC (rev 243911)
@@ -1,3 +1,13 @@
+2019-04-04 Youenn Fablet <[email protected]>
+
+ Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters
+ https://bugs.webkit.org/show_bug.cgi?id=196543
+
+ Reviewed by Alex Christensen.
+
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::generatePageConfiguration):
+
2019-04-04 Aakash Jain <[email protected]>
[ews-app] Status bubble should not display skipped buildbot steps
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (243910 => 243911)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2019-04-04 21:59:02 UTC (rev 243910)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2019-04-04 22:07:09 UTC (rev 243911)
@@ -523,7 +523,7 @@
WKContextSetCacheModel(m_context.get(), kWKCacheModelDocumentBrowser);
auto* websiteDataStore = WKContextGetWebsiteDataStore(m_context.get());
- WKWebsiteDataStoreSetCacheStoragePerOriginQuota(websiteDataStore, 400 * 1024);
+ WKWebsiteDataStoreSetPerOriginStorageQuota(websiteDataStore, 400 * 1024);
platformInitializeContext();
}