- Revision
- 198470
- Author
- [email protected]
- Date
- 2016-03-19 11:46:50 -0700 (Sat, 19 Mar 2016)
Log Message
Add a setting to let the client toggle support for network cache speculative validation
https://bugs.webkit.org/show_bug.cgi?id=155622
<rdar://problem/25233209>
Reviewed by Darin Adler.
Add SPI to toggle support for network cache speculative validation.
Enable network cache speculative validation by default for now, until
I have a chance to update the clients to use the new SPI.
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextSetDiskCacheSpeculativeValidationEnabled):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration diskCacheSpeculativeValidationEnabled]):
(-[_WKProcessPoolConfiguration setDiskCacheSpeculativeValidationEnabled:]):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (198469 => 198470)
--- trunk/Source/WebKit2/ChangeLog 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/ChangeLog 2016-03-19 18:46:50 UTC (rev 198470)
@@ -1,3 +1,26 @@
+2016-03-19 Chris Dumez <[email protected]>
+
+ Add a setting to let the client toggle support for network cache speculative validation
+ https://bugs.webkit.org/show_bug.cgi?id=155622
+ <rdar://problem/25233209>
+
+ Reviewed by Darin Adler.
+
+ Add SPI to toggle support for network cache speculative validation.
+ Enable network cache speculative validation by default for now, until
+ I have a chance to update the clients to use the new SPI.
+
+ * UIProcess/API/APIProcessPoolConfiguration.h:
+ * UIProcess/API/C/WKContext.cpp:
+ (WKContextSetDiskCacheSpeculativeValidationEnabled):
+ * UIProcess/API/C/WKContextPrivate.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+ * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+ (-[_WKProcessPoolConfiguration diskCacheSpeculativeValidationEnabled]):
+ (-[_WKProcessPoolConfiguration setDiskCacheSpeculativeValidationEnabled:]):
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformInitializeNetworkProcess):
+
2016-03-19 Yongjun Zhang <[email protected]>
https://bugs.webkit.org/show_bug.cgi?id=155664
Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (198469 => 198470)
--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h 2016-03-19 18:46:50 UTC (rev 198470)
@@ -50,6 +50,9 @@
unsigned maximumProcessCount() const { return m_maximumProcessCount; }
void setMaximumProcessCount(unsigned maximumProcessCount) { m_maximumProcessCount = maximumProcessCount; }
+ bool diskCacheSpeculativeValidationEnabled() const { return m_diskCacheSpeculativeValidationEnabled; }
+ void setDiskCacheSpeculativeValidationEnabled(bool enabled) { m_diskCacheSpeculativeValidationEnabled = enabled; }
+
WebKit::CacheModel cacheModel() const { return m_cacheModel; }
void setCacheModel(WebKit::CacheModel cacheModel) { m_cacheModel = cacheModel; }
@@ -93,6 +96,8 @@
bool m_shouldHaveLegacyDataStore { false };
unsigned m_maximumProcessCount { 0 };
+ // FIXME: This should be disabled by default once Safari has been updated to explicitly enable it.
+ bool m_diskCacheSpeculativeValidationEnabled { true };
WebKit::CacheModel m_cacheModel { WebKit::CacheModelPrimaryWebBrowser };
int64_t m_diskCacheSizeOverride { -1 };
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (198469 => 198470)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp 2016-03-19 18:46:50 UTC (rev 198470)
@@ -392,6 +392,11 @@
toImpl(contextRef)->setCanHandleHTTPSServerTrustEvaluation(value);
}
+void WKContextSetDiskCacheSpeculativeValidationEnabled(WKContextRef contextRef, bool value)
+{
+ toImpl(contextRef)->configuration().setDiskCacheSpeculativeValidationEnabled(value);
+}
+
WKCookieManagerRef WKContextGetCookieManager(WKContextRef contextRef)
{
return toAPI(toImpl(contextRef)->supplement<WebCookieManagerProxy>());
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h (198469 => 198470)
--- trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h 2016-03-19 18:46:50 UTC (rev 198470)
@@ -60,6 +60,8 @@
WK_EXPORT void WKContextSetCanHandleHTTPSServerTrustEvaluation(WKContextRef context, bool value);
+WK_EXPORT void WKContextSetDiskCacheSpeculativeValidationEnabled(WKContextRef context, bool value);
+
WK_EXPORT void WKContextSetIconDatabasePath(WKContextRef context, WKStringRef iconDatabasePath);
WK_EXPORT void WKContextAllowSpecificHTTPSCertificateForHost(WKContextRef context, WKCertificateInfoRef certificate, WKStringRef host);
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (198469 => 198470)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h 2016-03-19 18:46:50 UTC (rev 198470)
@@ -36,6 +36,7 @@
@property (nonatomic) NSInteger diskCacheSizeOverride WK_AVAILABLE(10_11, 9_0);
@property (nonatomic, copy) NSArray *cachePartitionedURLSchemes;
@property (nonatomic, copy) WK_ARRAY(NSString *) *alwaysRevalidatedURLSchemes WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+@property (nonatomic) BOOL diskCacheSpeculativeValidationEnabled WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
@end
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (198469 => 198470)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm 2016-03-19 18:46:50 UTC (rev 198470)
@@ -82,6 +82,16 @@
_processPoolConfiguration->setDiskCacheSizeOverride(size);
}
+- (BOOL)diskCacheSpeculativeValidationEnabled
+{
+ return _processPoolConfiguration->diskCacheSpeculativeValidationEnabled();
+}
+
+- (void)setDiskCacheSpeculativeValidationEnabled:(BOOL)enabled
+{
+ _processPoolConfiguration->setDiskCacheSpeculativeValidationEnabled(enabled);
+}
+
- (NSArray *)cachePartitionedURLSchemes
{
auto schemes = _processPoolConfiguration->cachePartitionedURLSchemes();
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (198469 => 198470)
--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2016-03-19 18:13:42 UTC (rev 198469)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2016-03-19 18:46:50 UTC (rev 198470)
@@ -78,10 +78,7 @@
#if ENABLE(NETWORK_CACHE)
static NSString * const WebKitNetworkCacheEnabledDefaultsKey = @"WebKitNetworkCacheEnabled";
static NSString * const WebKitNetworkCacheEfficacyLoggingEnabledDefaultsKey = @"WebKitNetworkCacheEfficacyLoggingEnabled";
-#if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION)
-static NSString * const WebKitNetworkCacheSpeculativeRevalidationEnabledDefaultsKey = @"WebKitNetworkCacheResourceRevalidationEnabled";
#endif
-#endif
static NSString * const WebKitSuppressMemoryPressureHandlerDefaultsKey = @"WebKitSuppressMemoryPressureHandler";
@@ -105,10 +102,7 @@
#if ENABLE(NETWORK_CACHE)
[registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitNetworkCacheEnabledDefaultsKey];
[registrationDictionary setObject:[NSNumber numberWithBool:NO] forKey:WebKitNetworkCacheEfficacyLoggingEnabledDefaultsKey];
-#if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION)
- [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitNetworkCacheSpeculativeRevalidationEnabledDefaultsKey];
#endif
-#endif
[[NSUserDefaults standardUserDefaults] registerDefaults:registrationDictionary];
}
@@ -248,7 +242,7 @@
parameters.shouldEnableNetworkCache = isNetworkCacheEnabled();
parameters.shouldEnableNetworkCacheEfficacyLogging = [defaults boolForKey:WebKitNetworkCacheEfficacyLoggingEnabledDefaultsKey];
#if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION)
- parameters.shouldEnableNetworkCacheSpeculativeRevalidation = [defaults boolForKey:WebKitNetworkCacheSpeculativeRevalidationEnabledDefaultsKey];
+ parameters.shouldEnableNetworkCacheSpeculativeRevalidation = m_configuration->diskCacheSpeculativeValidationEnabled();
#endif
#endif