Add a command line default to force WebKitTestRunner to turn on process swap on navig...
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Jun 2018 21:29:44 +0000 (21:29 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Jun 2018 21:29:44 +0000 (21:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=186534

Reviewed by Chris Dumez.

Right now Process Swap On Navigation is enabled on a per-test basis.
The future is to enable it by default.

Adding a 'defaults write' helps us get to that future.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::testOptionsForTest const):
(WTR::TestController::platformAddTestOptions const):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformAddTestOptions const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@232732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/WebKitTestRunner/TestController.cpp
Tools/WebKitTestRunner/TestController.h
Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm

index 9e5de99..bf7c96f 100644 (file)
@@ -1,3 +1,22 @@
+2018-06-11  Brady Eidson  <beidson@apple.com>
+
+        Add a command line default to force WebKitTestRunner to turn on process swap on navigation.
+        https://bugs.webkit.org/show_bug.cgi?id=186534
+
+        Reviewed by Chris Dumez.
+
+        Right now Process Swap On Navigation is enabled on a per-test basis.
+        The future is to enable it by default.
+
+        Adding a 'defaults write' helps us get to that future.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::testOptionsForTest const):
+        (WTR::TestController::platformAddTestOptions const):
+        * WebKitTestRunner/TestController.h:
+        * WebKitTestRunner/cocoa/TestControllerCocoa.mm:
+        (WTR::TestController::platformAddTestOptions const):
+
 2018-06-11  Chris Dumez  <cdumez@apple.com>
 
         Allow enabling PSON in layout tests without window.open support
index ee6b085..a11fc00 100644 (file)
@@ -1138,6 +1138,7 @@ TestOptions TestController::testOptionsForTest(const TestCommand& command) const
 
     updatePlatformSpecificTestOptionsForTest(options, command.pathOrURL);
     updateTestOptionsFromTestHeader(options, command.pathOrURL, command.absolutePath);
+    platformAddTestOptions(options);
 
     return options;
 }
@@ -2857,4 +2858,10 @@ void TestController::statisticsResetToConsistentState()
     WKWebsiteDataStoreStatisticsResetToConsistentState(dataStore);
 }
 
+#if !PLATFORM(COCOA)
+void TestController::platformAddTestOptions(TestOptions&) const
+{
+}
+#endif
+
 } // namespace WTR
index 7303209..f337834 100644 (file)
@@ -227,6 +227,7 @@ private:
     void platformDestroy();
     WKContextRef platformAdjustContext(WKContextRef, WKContextConfigurationRef);
     void platformInitializeContext();
+    void platformAddTestOptions(TestOptions&) const;
     void platformCreateWebView(WKPageConfigurationRef, const TestOptions&);
     static PlatformWebView* platformCreateOtherPage(PlatformWebView* parentView, WKPageConfigurationRef, const TestOptions&);
     void platformResetPreferencesToConsistentValues();
index 6bc4687..beb023d 100644 (file)
@@ -46,7 +46,6 @@
 #import <WebKit/WKWebsiteDataStorePrivate.h>
 #import <WebKit/WKWebsiteDataStoreRef.h>
 #import <WebKit/_WKApplicationManifest.h>
-#import <WebKit/_WKProcessPoolConfiguration.h>
 #import <WebKit/_WKUserContentExtensionStore.h>
 #import <WebKit/_WKUserContentExtensionStorePrivate.h>
 #import <wtf/MainThread.h>
@@ -128,6 +127,14 @@ WKPreferencesRef TestController::platformPreferences()
 #endif
 }
 
+void TestController::platformAddTestOptions(TestOptions& options) const
+{
+    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"EnableProcessSwapOnNavigation"])
+        options.enableProcessSwapOnNavigation = true;
+    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"EnableProcessSwapOnWindowOpen"])
+        options.enableProcessSwapOnWindowOpen = true;
+}
+
 void TestController::platformCreateWebView(WKPageConfigurationRef, const TestOptions& options)
 {
 #if WK_API_ENABLED