Changeset 243911 in webkit
- Timestamp:
- Apr 4, 2019, 3:07:09 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 21 edited
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/storage/StorageQuotaManager.h (modified) (1 diff)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkProcess.cpp (modified) (3 diffs)
-
Source/WebKit/NetworkProcess/NetworkProcess.h (modified) (2 diffs)
-
Source/WebKit/NetworkProcess/NetworkProcess.messages.in (modified) (1 diff)
-
Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (modified) (2 diffs)
-
Source/WebKit/Shared/WebsiteDataStoreParameters.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h (modified) (1 diff)
-
Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebProcessPool.cpp (modified) (2 diffs)
-
Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (modified) (3 diffs)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp (modified) (1 diff)
-
Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h (modified) (3 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/WebKitTestRunner/TestController.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r243910 r243911 1 2019-04-04 Youenn Fablet <youenn@apple.com> 2 3 Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters 4 https://bugs.webkit.org/show_bug.cgi?id=196543 5 6 Reviewed by Alex Christensen. 7 8 Add a default routine to compute a third party quota from a per origin quota. 9 No change of behavior. 10 11 * storage/StorageQuotaManager.h: 12 (WebCore::StorageQuotaManager::defaultThirdPartyQuotaFromPerOriginQuota): 13 (WebCore::StorageQuotaManager::defaultThirdPartyQuota): 14 1 15 2019-04-04 Commit Queue <commit-queue@webkit.org> 2 16 -
trunk/Source/WebCore/storage/StorageQuotaManager.h
r243339 r243911 47 47 WEBCORE_EXPORT ~StorageQuotaManager(); 48 48 49 static constexpr uint64_t defaultThirdPartyQuotaFromPerOriginQuota(uint64_t quota) { return quota / 10; } 50 49 51 static constexpr uint64_t defaultQuota() { return 1000 * MB; } 50 static constexpr uint64_t defaultThirdPartyQuota() { return 100 * MB; }52 static constexpr uint64_t defaultThirdPartyQuota() { return defaultThirdPartyQuotaFromPerOriginQuota(defaultQuota()); } 51 53 52 54 WEBCORE_EXPORT void addUser(StorageQuotaUser&); -
trunk/Source/WebKit/ChangeLog
r243909 r243911 1 2019-04-04 Youenn Fablet <youenn@apple.com> 2 3 Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters 4 https://bugs.webkit.org/show_bug.cgi?id=196543 5 6 Reviewed by Alex Christensen. 7 8 Renamed methods used to set cache storage quota to be storage generic 9 since they will apply to all storage. 10 11 Pass quota parameters as part of WebsiteDataStoreParameters from UIProcess 12 to NetworkProcess (start-up time and new WebsiteDataStore time). 13 14 Compute on UIProcess the quota for third party origins using the default rule of dividing by 10. 15 16 * NetworkProcess/NetworkProcess.cpp: 17 (WebKit::NetworkProcess::initializeNetworkProcess): 18 (WebKit::NetworkProcess::addWebsiteDataStore): 19 (WebKit::NetworkProcess::initializeStorageQuota): 20 (WebKit::NetworkProcess::setCacheStorageParameters): 21 * NetworkProcess/NetworkProcess.h: 22 * NetworkProcess/NetworkProcess.messages.in: 23 * Shared/WebsiteDataStoreParameters.cpp: 24 (WebKit::WebsiteDataStoreParameters::encode const): 25 (WebKit::WebsiteDataStoreParameters::decode): 26 * Shared/WebsiteDataStoreParameters.h: 27 * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: 28 (WKWebsiteDataStoreSetPerOriginStorageQuota): 29 (WKWebsiteDataStoreSetCacheStoragePerOriginQuota): Deleted. 30 * UIProcess/API/C/WKWebsiteDataStoreRef.h: 31 * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: 32 (-[WKWebsiteDataStore _perOriginStorageQuota]): 33 (-[WKWebsiteDataStore _setPerOriginStorageQuota:]): 34 (-[WKWebsiteDataStore _cacheStoragePerOriginQuota]): Deleted. 35 (-[WKWebsiteDataStore _setCacheStoragePerOriginQuota:]): Deleted. 36 * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: 37 * UIProcess/Network/NetworkProcessProxy.cpp: 38 (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters): 39 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 40 (WebKit::WebsiteDataStore::parameters): 41 * UIProcess/WebsiteData/WebsiteDataStore.h: 42 (WebKit::WebsiteDataStore::perOriginStorageQuota const): 43 (WebKit::WebsiteDataStore::setPerOriginStorageQuota): 44 (WebKit::WebsiteDataStore::cacheStoragePerOriginQuota const): Deleted. 45 (WebKit::WebsiteDataStore::setCacheStoragePerOriginQuota): Deleted. 46 * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: 47 (WebKit::WebsiteDataStoreConfiguration::copy): 48 * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: 49 (WebKit::WebsiteDataStoreConfiguration::perOriginStorageQuota): 50 (WebKit::WebsiteDataStoreConfiguration::setPerOriginStorageQuota): 51 (WebKit::WebsiteDataStoreConfiguration::cacheStoragePerOriginQuota): Deleted. 52 (WebKit::WebsiteDataStoreConfiguration::setCacheStoragePerOriginQuota): Deleted. 53 1 54 2019-04-04 Wenson Hsieh <wenson_hsieh@apple.com> 2 55 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r243806 r243911 323 323 } 324 324 #endif 325 initializeStorageQuota(parameters.defaultDataStoreParameters); 325 326 326 327 auto* defaultSession = networkSession(PAL::SessionID::defaultSessionID()); … … 456 457 #endif 457 458 459 initializeStorageQuota(parameters); 460 458 461 RemoteNetworkingContext::ensureWebsiteDataStoreSession(*this, WTFMove(parameters)); 462 } 463 464 void NetworkProcess::initializeStorageQuota(const WebsiteDataStoreParameters& parameters) 465 { 466 auto& managers = m_storageQuotaManagers.ensure(parameters.networkSessionParameters.sessionID, [] { 467 return StorageQuotaManagers { }; 468 }).iterator->value; 469 managers.setDefaultQuotas(parameters.perOriginStorageQuota, parameters.perThirdPartyOriginStorageQuota); 459 470 } 460 471 … … 2030 2041 } 2031 2042 2032 void NetworkProcess::setCacheStorageParameters(PAL::SessionID sessionID, uint64_t quota, String&& cacheStorageDirectory, SandboxExtension::Handle&& handle) 2033 { 2034 auto& managers = m_storageQuotaManagers.ensure(sessionID, [] { 2035 return StorageQuotaManagers { }; 2036 }).iterator->value; 2037 managers.setDefaultQuotas(quota, quota / 10); 2038 2043 void NetworkProcess::setCacheStorageParameters(PAL::SessionID sessionID, String&& cacheStorageDirectory, SandboxExtension::Handle&& handle) 2044 { 2039 2045 auto iterator = m_cacheStorageParametersCallbacks.find(sessionID); 2040 2046 if (iterator == m_cacheStorageParametersCallbacks.end()) -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r243806 r243911 381 381 void clearCachedCredentials(); 382 382 383 void setCacheStorageParameters(PAL::SessionID, uint64_t quota,String&& cacheStorageDirectory, SandboxExtension::Handle&&);383 void setCacheStorageParameters(PAL::SessionID, String&& cacheStorageDirectory, SandboxExtension::Handle&&); 384 384 void initializeQuotaUsers(WebCore::StorageQuotaManager&, PAL::SessionID, const WebCore::ClientOrigin&); 385 385 … … 461 461 462 462 void clearStorageQuota(PAL::SessionID); 463 void initializeStorageQuota(const WebsiteDataStoreParameters&); 463 464 464 465 // Connections to WebProcesses. -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
r243345 r243911 152 152 RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(String scheme) 153 153 154 SetCacheStorageParameters(PAL::SessionID sessionID, uint64_t quota,String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle);154 SetCacheStorageParameters(PAL::SessionID sessionID, String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle); 155 155 156 156 #if ENABLE(SERVICE_WORKER) -
trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp
r243163 r243911 53 53 encoder << serviceWorkerRegistrationDirectory << serviceWorkerRegistrationDirectoryExtensionHandle; 54 54 #endif 55 56 encoder << perOriginStorageQuota; 57 encoder << perThirdPartyOriginStorageQuota; 55 58 } 56 59 … … 118 121 parameters.serviceWorkerRegistrationDirectoryExtensionHandle = WTFMove(*serviceWorkerRegistrationDirectoryExtensionHandle); 119 122 #endif 123 124 Optional<uint64_t> perOriginStorageQuota; 125 decoder >> perOriginStorageQuota; 126 if (!perOriginStorageQuota) 127 return WTF::nullopt; 128 parameters.perOriginStorageQuota = *perOriginStorageQuota; 129 130 Optional<uint64_t> perThirdPartyOriginStorageQuota; 131 decoder >> perThirdPartyOriginStorageQuota; 132 if (!perThirdPartyOriginStorageQuota) 133 return WTF::nullopt; 134 parameters.perThirdPartyOriginStorageQuota = *perThirdPartyOriginStorageQuota; 120 135 121 136 return parameters; -
trunk/Source/WebKit/Shared/WebsiteDataStoreParameters.h
r239632 r243911 29 29 #include "SandboxExtension.h" 30 30 #include <WebCore/Cookie.h> 31 #include <WebCore/StorageQuotaManager.h> 31 32 #include <pal/SessionID.h> 32 33 #include <wtf/Vector.h> … … 69 70 SandboxExtension::Handle serviceWorkerRegistrationDirectoryExtensionHandle; 70 71 #endif 72 73 uint64_t perOriginStorageQuota { WebCore::StorageQuotaManager::defaultQuota() }; 74 uint64_t perThirdPartyOriginStorageQuota { WebCore::StorageQuotaManager::defaultThirdPartyQuota() }; 71 75 }; 72 76 -
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
r243632 r243911 574 574 } 575 575 576 void WKWebsiteDataStoreSet CacheStoragePerOriginQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota)577 { 578 WebKit::toImpl(dataStoreRef)->websiteDataStore().set CacheStoragePerOriginQuota(quota);576 void WKWebsiteDataStoreSetPerOriginStorageQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota) 577 { 578 WebKit::toImpl(dataStoreRef)->websiteDataStore().setPerOriginStorageQuota(quota); 579 579 } 580 580 -
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h
r243632 r243911 126 126 WK_EXPORT void WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory(WKWebsiteDataStoreRef dataStoreRef, WKStringRef serviceWorkerRegistrationDirectory); 127 127 128 WK_EXPORT void WKWebsiteDataStoreSet CacheStoragePerOriginQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota);128 WK_EXPORT void WKWebsiteDataStoreSetPerOriginStorageQuota(WKWebsiteDataStoreRef dataStoreRef, uint64_t quota); 129 129 130 130 WK_EXPORT void WKWebsiteDataStoreSetWebAuthenticationMockConfiguration(WKWebsiteDataStoreRef dataStoreRef, WKDictionaryRef configuration); -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
r243829 r243911 307 307 } 308 308 309 - (NSUInteger)_ cacheStoragePerOriginQuota310 { 311 return _websiteDataStore->websiteDataStore(). cacheStoragePerOriginQuota();312 } 313 314 - (void)_set CacheStoragePerOriginQuota:(NSUInteger)size315 { 316 _websiteDataStore->websiteDataStore().set CacheStoragePerOriginQuota(size);309 - (NSUInteger)_perOriginStorageQuota 310 { 311 return _websiteDataStore->websiteDataStore().perOriginStorageQuota(); 312 } 313 314 - (void)_setPerOriginStorageQuota:(NSUInteger)size 315 { 316 _websiteDataStore->websiteDataStore().setPerOriginStorageQuota(size); 317 317 } 318 318 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
r243829 r243911 49 49 @property (nonatomic, setter=_setResourceLoadStatisticsEnabled:) BOOL _resourceLoadStatisticsEnabled WK_API_AVAILABLE(macos(10.12), ios(10.0)); 50 50 @property (nonatomic, setter=_setResourceLoadStatisticsDebugMode:) BOOL _resourceLoadStatisticsDebugMode WK_API_AVAILABLE(macos(10.14), ios(12.0)); 51 @property (nonatomic, setter=_set CacheStoragePerOriginQuota:) NSUInteger _cacheStoragePerOriginQuota WK_API_AVAILABLE(macos(10.13.4), ios(11.3));51 @property (nonatomic, setter=_setPerOriginStorageQuota:) NSUInteger _perOriginStorageQuota WK_API_AVAILABLE(macos(10.13.4), ios(11.3)); 52 52 @property (nonatomic, setter=_setCacheStorageDirectory:) NSString* _cacheStorageDirectory WK_API_AVAILABLE(macos(10.13.4), ios(11.3)); 53 53 @property (nonatomic, setter=_setServiceWorkerRegistrationDirectory:) NSString* _serviceWorkerRegistrationDirectory WK_API_AVAILABLE(macos(10.13.4), ios(11.3)); -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
r243632 r243911 1139 1139 if (!store) { 1140 1140 RELEASE_LOG_ERROR(CacheStorage, "%p - NetworkProcessProxy is unable to retrieve CacheStorage parameters from the given session ID %" PRIu64, this, sessionID.sessionID()); 1141 auto quota = m_processPool.websiteDataStore() ? m_processPool.websiteDataStore()->websiteDataStore().cacheStoragePerOriginQuota() : WebsiteDataStoreConfiguration::defaultCacheStoragePerOriginQuota; 1142 send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, quota, { }, { } }, 0); 1141 send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, { }, { } }, 0); 1143 1142 return; 1144 1143 } … … 1149 1148 SandboxExtension::createHandleForReadWriteDirectory(cacheStorageDirectory, cacheStorageDirectoryExtensionHandle); 1150 1149 1151 send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, store->cacheStoragePerOriginQuota(),cacheStorageDirectory, cacheStorageDirectoryExtensionHandle }, 0);1150 send(Messages::NetworkProcess::SetCacheStorageParameters { sessionID, cacheStorageDirectory, cacheStorageDirectoryExtensionHandle }, 0); 1152 1151 } 1153 1152 -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r243829 r243911 590 590 manualPrevalentResource = networkSessionParameters.resourceLoadStatisticsManualPrevalentResource; 591 591 } 592 593 parameters.defaultDataStoreParameters.perOriginStorageQuota = withWebsiteDataStore->perOriginStorageQuota(); 594 parameters.defaultDataStoreParameters.perThirdPartyOriginStorageQuota = withWebsiteDataStore->perThirdPartyOriginStorageQuota(); 592 595 } else if (m_websiteDataStore) { 593 596 enableResourceLoadStatistics = m_websiteDataStore->resourceLoadStatisticsEnabled(); … … 598 601 manualPrevalentResource = networkSessionParameters.resourceLoadStatisticsManualPrevalentResource; 599 602 } 603 604 parameters.defaultDataStoreParameters.perOriginStorageQuota = m_websiteDataStore->websiteDataStore().perOriginStorageQuota(); 605 parameters.defaultDataStoreParameters.perThirdPartyOriginStorageQuota = m_websiteDataStore->websiteDataStore().perThirdPartyOriginStorageQuota(); 600 606 } 601 607 -
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
r243829 r243911 161 161 #endif 162 162 163 parameters.perOriginStorageQuota = perOriginStorageQuota(); 164 parameters.perThirdPartyOriginStorageQuota = perThirdPartyOriginStorageQuota(); 165 163 166 return parameters; 164 167 } -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
r243829 r243911 51 51 #include <WebCore/SecurityOrigin.h> 52 52 #include <WebCore/SecurityOriginData.h> 53 #include <WebCore/StorageQuotaManager.h> 53 54 #include <wtf/CallbackAggregator.h> 54 55 #include <wtf/CompletionHandler.h> … … 2103 2104 } 2104 2105 2106 uint64_t WebsiteDataStore::perThirdPartyOriginStorageQuota() const 2107 { 2108 // FIXME: Consider whether allowing to set a perThirdPartyOriginStorageQuota from a WebsiteDataStore. 2109 return WebCore::StorageQuotaManager::defaultThirdPartyQuotaFromPerOriginQuota(perOriginStorageQuota()); 2110 } 2111 2105 2112 #if !PLATFORM(COCOA) 2106 2113 WebsiteDataStoreParameters WebsiteDataStore::parameters() … … 2123 2130 #endif 2124 2131 2132 parameters.perOriginStorageQuota = perOriginStorageQuota(); 2133 parameters.perThirdPartyOriginStorageQuota = perThirdPartyOriginStorageQuota(); 2134 2125 2135 platformSetNetworkParameters(parameters); 2126 2136 -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r243829 r243911 108 108 void setResourceLoadStatisticsDebugMode(bool, CompletionHandler<void()>&&); 109 109 110 uint64_t cacheStoragePerOriginQuota() const { return m_resolvedConfiguration->cacheStoragePerOriginQuota(); } 111 void setCacheStoragePerOriginQuota(uint64_t quota) { m_resolvedConfiguration->setCacheStoragePerOriginQuota(quota); } 110 uint64_t perOriginStorageQuota() const { return m_resolvedConfiguration->perOriginStorageQuota(); } 111 uint64_t perThirdPartyOriginStorageQuota() const; 112 void setPerOriginStorageQuota(uint64_t quota) { m_resolvedConfiguration->setPerOriginStorageQuota(quota); } 112 113 const String& cacheStorageDirectory() const { return m_resolvedConfiguration->cacheStorageDirectory(); } 113 114 void setCacheStorageDirectory(String&& directory) { m_resolvedConfiguration->setCacheStorageDirectory(WTFMove(directory)); } -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
r239322 r243911 41 41 42 42 copy->m_cacheStorageDirectory = this->m_cacheStorageDirectory; 43 copy->m_ cacheStoragePerOriginQuota = this->m_cacheStoragePerOriginQuota;43 copy->m_perOriginStorageQuota = this->m_perOriginStorageQuota; 44 44 copy->m_networkCacheDirectory = this->m_networkCacheDirectory; 45 45 copy->m_applicationCacheDirectory = this->m_applicationCacheDirectory; -
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
r239513 r243911 38 38 Ref<WebsiteDataStoreConfiguration> copy(); 39 39 40 uint64_t cacheStoragePerOriginQuota() { return m_cacheStoragePerOriginQuota; }41 void set CacheStoragePerOriginQuota(uint64_t quota) { m_cacheStoragePerOriginQuota = quota; }40 uint64_t perOriginStorageQuota() { return m_perOriginStorageQuota; } 41 void setPerOriginStorageQuota(uint64_t quota) { m_perOriginStorageQuota = quota; } 42 42 43 43 const String& applicationCacheDirectory() const { return m_applicationCacheDirectory; } … … 98 98 void setHTTPSProxy(URL&& proxy) { m_httpsProxy = WTFMove(proxy); } 99 99 100 constexpr static uint64_t default CacheStoragePerOriginQuota = 50 * 1024 * 1024;100 constexpr static uint64_t defaultPerOriginStorageQuota = 50 * 1024 * 1024; 101 101 102 102 private: … … 104 104 105 105 String m_cacheStorageDirectory; 106 uint64_t m_ cacheStoragePerOriginQuota { defaultCacheStoragePerOriginQuota };106 uint64_t m_perOriginStorageQuota { defaultPerOriginStorageQuota }; 107 107 String m_networkCacheDirectory; 108 108 String m_applicationCacheDirectory; -
trunk/Tools/ChangeLog
r243897 r243911 1 2019-04-04 Youenn Fablet <youenn@apple.com> 2 3 Pass storage quota parameters from UIProcess to NetworkProcess as part of WebsiteDataStore parameters 4 https://bugs.webkit.org/show_bug.cgi?id=196543 5 6 Reviewed by Alex Christensen. 7 8 * WebKitTestRunner/TestController.cpp: 9 (WTR::TestController::generatePageConfiguration): 10 1 11 2019-04-04 Aakash Jain <aakash_jain@apple.com> 2 12 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r243783 r243911 524 524 525 525 auto* websiteDataStore = WKContextGetWebsiteDataStore(m_context.get()); 526 WKWebsiteDataStoreSet CacheStoragePerOriginQuota(websiteDataStore, 400 * 1024);526 WKWebsiteDataStoreSetPerOriginStorageQuota(websiteDataStore, 400 * 1024); 527 527 528 528 platformInitializeContext();
Note:
See TracChangeset
for help on using the changeset viewer.