Title: [198470] trunk/Source/WebKit2
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
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to