Diff
Modified: trunk/Source/WebKit2/ChangeLog (182030 => 182031)
--- trunk/Source/WebKit2/ChangeLog 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/ChangeLog 2015-03-26 22:52:14 UTC (rev 182031)
@@ -1,3 +1,40 @@
+2015-03-26 Chris Dumez <[email protected]>
+
+ [WK2][Cocoa] Add private API to override the network disk cache size
+ https://bugs.webkit.org/show_bug.cgi?id=143113
+ <rdar://problem/20315669>
+
+ Reviewed by Antti Koivisto.
+
+ Add private API to let the client override the network disk cache size.
+ By default, the network disk cache is automatically determined based on
+ the CacheModel and the available disk space. However, for testing
+ purposes, it can be used for the client-side to be able to override
+ the disk cache size.
+
+ * NetworkProcess/NetworkProcess.cpp:
+ (WebKit::NetworkProcess::initializeNetworkProcess):
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/cache/NetworkCache.cpp:
+ (WebKit::NetworkCache::Cache::setMaximumSize):
+ * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+ (WebKit::NetworkProcess::platformSetCacheModel):
+ * Shared/Network/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::encode):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * Shared/Network/NetworkProcessCreationParameters.h:
+ * UIProcess/API/APIProcessPoolConfiguration.cpp:
+ (API::ProcessPoolConfiguration::copy):
+ * UIProcess/API/APIProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+ (-[_WKProcessPoolConfiguration diskCacheSizeOverride]):
+ (-[_WKProcessPoolConfiguration setDiskCacheSizeOverride:]):
+ * UIProcess/WebProcessPool.cpp:
+ (WebKit::WebProcessPool::WebProcessPool):
+ (WebKit::WebProcessPool::ensureNetworkProcess):
+ * UIProcess/WebProcessPool.h:
+
2015-03-26 Andreas Kling <[email protected]>
[Darwin] Boost the web process QoS level while handling a synchronous IPC message.
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp (182030 => 182031)
--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp 2015-03-26 22:52:14 UTC (rev 182031)
@@ -177,6 +177,8 @@
memoryPressureHandler.install();
m_diskCacheIsDisabledForTesting = parameters.shouldUseTestingNetworkSession;
+
+ m_diskCacheSizeOverride = parameters.diskCacheSizeOverride;
setCacheModel(static_cast<uint32_t>(parameters.cacheModel));
setCanHandleHTTPSServerTrustEvaluation(parameters.canHandleHTTPSServerTrustEvaluation);
Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h (182030 => 182031)
--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.h 2015-03-26 22:52:14 UTC (rev 182031)
@@ -153,6 +153,7 @@
String m_diskCacheDirectory;
bool m_hasSetCacheModel;
CacheModel m_cacheModel;
+ int64_t m_diskCacheSizeOverride { -1 };
bool m_diskCacheIsDisabledForTesting;
bool m_canHandleHTTPSServerTrustEvaluation;
Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm (182030 => 182031)
--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2015-03-26 22:52:14 UTC (rev 182031)
@@ -133,6 +133,9 @@
cacheTotalCapacity, cacheMinDeadCapacity, cacheMaxDeadCapacity, deadDecodedDataDeletionInterval,
pageCacheCapacity, urlCacheMemoryCapacity, urlCacheDiskCapacity);
+ if (m_diskCacheSizeOverride >= 0)
+ urlCacheDiskCapacity = m_diskCacheSizeOverride;
+
#if ENABLE(NETWORK_CACHE)
auto& networkCache = NetworkCache::singleton();
if (networkCache.isEnabled()) {
Modified: trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp (182030 => 182031)
--- trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp 2015-03-26 22:52:14 UTC (rev 182031)
@@ -40,6 +40,7 @@
{
encoder << privateBrowsingEnabled;
encoder.encodeEnum(cacheModel);
+ encoder << diskCacheSizeOverride;
encoder << canHandleHTTPSServerTrustEvaluation;
encoder << diskCacheDirectory;
encoder << diskCacheDirectoryExtensionHandle;
@@ -78,6 +79,8 @@
return false;
if (!decoder.decodeEnum(result.cacheModel))
return false;
+ if (!decoder.decode(result.diskCacheSizeOverride))
+ return false;
if (!decoder.decode(result.canHandleHTTPSServerTrustEvaluation))
return false;
if (!decoder.decode(result.diskCacheDirectory))
Modified: trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h (182030 => 182031)
--- trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.h 2015-03-26 22:52:14 UTC (rev 182031)
@@ -52,6 +52,7 @@
bool privateBrowsingEnabled;
CacheModel cacheModel;
+ int64_t diskCacheSizeOverride { -1 };
bool canHandleHTTPSServerTrustEvaluation;
String diskCacheDirectory;
Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp (182030 => 182031)
--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp 2015-03-26 22:52:14 UTC (rev 182031)
@@ -71,6 +71,7 @@
copy->m_useNetworkProcess = this->m_useNetworkProcess;
copy->m_maximumProcessCount = this->m_maximumProcessCount;
copy->m_cacheModel = this->m_cacheModel;
+ copy->m_diskCacheSizeOverride = this->m_diskCacheSizeOverride;
copy->m_indexedDBDatabaseDirectory = this->m_indexedDBDatabaseDirectory;
copy->m_injectedBundlePath = this->m_injectedBundlePath;
copy->m_localStorageDirectory = this->m_localStorageDirectory;
Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (182030 => 182031)
--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h 2015-03-26 22:52:14 UTC (rev 182031)
@@ -55,8 +55,11 @@
void setMaximumProcessCount(unsigned maximumProcessCount) { m_maximumProcessCount = maximumProcessCount; }
WebKit::CacheModel cacheModel() const { return m_cacheModel; }
- void setCacheModel(WebKit::CacheModel cacheModel) { m_cacheModel = cacheModel; }
+ void setCacheModel(WebKit::CacheModel cacheModel) { m_cacheModel = cacheModel; }
+ int64_t diskCacheSizeOverride() const { return m_diskCacheSizeOverride; }
+ void setDiskCacheSizeOverride(int64_t size) { m_diskCacheSizeOverride = size; }
+
WTF::String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
void setIndexedDBDatabaseDirectory(const WTF::String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
@@ -80,6 +83,7 @@
bool m_useNetworkProcess { true };
unsigned m_maximumProcessCount { 0 };
WebKit::CacheModel m_cacheModel { WebKit::CacheModelPrimaryWebBrowser };
+ int64_t m_diskCacheSizeOverride { -1 };
WTF::String m_injectedBundlePath;
WTF::String m_indexedDBDatabaseDirectory;
WTF::String m_localStorageDirectory;
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (182030 => 182031)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2015-03-26 22:52:14 UTC (rev 182031)
@@ -33,6 +33,7 @@
@property (nonatomic, copy) NSURL *injectedBundleURL;
@property (nonatomic) NSUInteger maximumProcessCount;
+@property (nonatomic) NSInteger diskCacheSizeOverride WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@property (nonatomic, copy) NSArray *cachePartitionedURLSchemes;
@end
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (182030 => 182031)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2015-03-26 22:52:14 UTC (rev 182031)
@@ -72,6 +72,16 @@
_processPoolConfiguration->setMaximumProcessCount(maximumProcessCount);
}
+- (NSInteger)diskCacheSizeOverride
+{
+ return _processPoolConfiguration->diskCacheSizeOverride();
+}
+
+- (void)setDiskCacheSizeOverride:(NSInteger)size
+{
+ _processPoolConfiguration->setDiskCacheSizeOverride(size);
+}
+
- (NSArray *)cachePartitionedURLSchemes
{
auto schemes = _processPoolConfiguration->cachePartitionedURLSchemes();
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (182030 => 182031)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp 2015-03-26 22:52:14 UTC (rev 182031)
@@ -155,6 +155,7 @@
, m_alwaysUsesComplexTextCodePath(false)
, m_shouldUseFontSmoothing(true)
, m_cacheModel(m_configuration->cacheModel())
+ , m_diskCacheSizeOverride(m_configuration->diskCacheSizeOverride())
, m_memorySamplerEnabled(false)
, m_memorySamplerInterval(1400.0)
, m_websiteDataStore(API::WebsiteDataStore::create(websiteDataStoreConfiguration(m_configuration.get())))
@@ -403,6 +404,7 @@
parameters.privateBrowsingEnabled = WebPreferences::anyPagesAreUsingPrivateBrowsing();
parameters.cacheModel = m_cacheModel;
+ parameters.diskCacheSizeOverride = m_diskCacheSizeOverride;
parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation;
parameters.diskCacheDirectory = stringByResolvingSymlinksInPath(diskCacheDirectory());
Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (182030 => 182031)
--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2015-03-26 22:35:30 UTC (rev 182030)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h 2015-03-26 22:52:14 UTC (rev 182031)
@@ -475,6 +475,7 @@
Vector<std::pair<String, RefPtr<API::Object>>> m_messagesToInjectedBundlePostedToEmptyContext;
CacheModel m_cacheModel;
+ uint64_t m_diskCacheSizeOverride;
bool m_memorySamplerEnabled;
double m_memorySamplerInterval;