Title: [241854] trunk/Tools
- Revision
- 241854
- Author
- cdu...@apple.com
- Date
- 2019-02-20 17:09:39 -0800 (Wed, 20 Feb 2019)
Log Message
Add API test for <rdar://problem/47471222>
https://bugs.webkit.org/show_bug.cgi?id=194847
Reviewed by Alex Christensen.
* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (241853 => 241854)
--- trunk/Tools/ChangeLog 2019-02-21 00:51:57 UTC (rev 241853)
+++ trunk/Tools/ChangeLog 2019-02-21 01:09:39 UTC (rev 241854)
@@ -1,5 +1,14 @@
2019-02-20 Chris Dumez <cdu...@apple.com>
+ Add API test for <rdar://problem/47471222>
+ https://bugs.webkit.org/show_bug.cgi?id=194847
+
+ Reviewed by Alex Christensen.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
+
+2019-02-20 Chris Dumez <cdu...@apple.com>
+
Regression(PSON) "Reload without content extensions" does not work when the main resource is blocked
https://bugs.webkit.org/show_bug.cgi?id=194872
<rdar://problem/47924500>
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm (241853 => 241854)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm 2019-02-21 00:51:57 UTC (rev 241853)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm 2019-02-21 01:09:39 UTC (rev 241854)
@@ -4396,6 +4396,73 @@
EXPECT_WK_STREQ(@"foo=bar", receivedMessages.get()[0]);
}
+TEST(ProcessSwap, UseSessionCookiesAfterProcessSwapInNonDefaultPersistentSession)
+{
+ auto processPoolConfiguration = psonProcessPoolConfiguration();
+
+ // Prevent WebProcess reuse.
+ processPoolConfiguration.get().usesWebProcessCache = NO;
+ processPoolConfiguration.get().pageCacheEnabled = NO;
+ processPoolConfiguration.get().prewarmsProcessesAutomatically = NO;
+
+ auto websiteDataStoreConfiguration = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] init]);
+ auto customDataStore = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration:websiteDataStoreConfiguration.get()]);
+
+ auto processPool = adoptNS([[WKProcessPool alloc] _initWithConfiguration:processPoolConfiguration.get()]);
+
+ auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]);
+
+ [webViewConfiguration setProcessPool:processPool.get()];
+ webViewConfiguration.get().websiteDataStore = customDataStore.get();
+
+ auto handler = adoptNS([[PSONScheme alloc] init]);
+ [webViewConfiguration setURLSchemeHandler:handler.get() forURLScheme:@"pson"];
+
+ auto messageHandler = adoptNS([[PSONMessageHandler alloc] init]);
+ [[webViewConfiguration userContentController] addScriptMessageHandler:messageHandler.get() name:@"testHandler"];
+
+ auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:webViewConfiguration.get()]);
+ auto delegate = adoptNS([[PSONNavigationDelegate alloc] init]);
+ [webView setNavigationDelegate:delegate.get()];
+
+ [processPool _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
+
+ NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetSessionCookie" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];
+ [webView loadRequest:request];
+
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+
+ auto pid1 = [webView _webProcessIdentifier];
+
+ // Should process-swap.
+ request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"pson://www.apple.com/main.html"]];
+ [webView loadRequest:request];
+
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+
+ auto pid2 = [webView _webProcessIdentifier];
+ EXPECT_NE(pid1, pid2);
+
+ // Should process-swap.
+ request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"GetSessionCookie" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];
+ [webView loadRequest:request];
+
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+
+ auto pid3 = [webView _webProcessIdentifier];
+ EXPECT_NE(pid2, pid3);
+ EXPECT_NE(pid1, pid3);
+
+ TestWebKitAPI::Util::run(&receivedMessage);
+ receivedMessage = false;
+
+ EXPECT_EQ(1u, [receivedMessages count]);
+ EXPECT_WK_STREQ(@"foo=bar", receivedMessages.get()[0]);
+}
+
#if PLATFORM(MAC)
TEST(ProcessSwap, TerminateProcessAfterProcessSwap)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes