- Revision
- 232083
- Author
- [email protected]
- Date
- 2018-05-22 16:20:50 -0700 (Tue, 22 May 2018)
Log Message
Source/WebKit:
[iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool fails because cookies use different files with/without processpool
https://bugs.webkit.org/show_bug.cgi?id=185831
Reviewed by Chris Dumez.
Started to use uiProcessCookieStorageIdentifier for iOS: make sure cookies handled without
processpool would use the same storage file as when processpool exists.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Tools:
[iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool is crashing with reason: 'Completion handler passed to -[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:] was not called'
https://bugs.webkit.org/show_bug.cgi?id=185831
Reviewed by Chris Dumez.
Updated the test to prevent crash after assertion fails.
* TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (232082 => 232083)
--- trunk/Source/WebKit/ChangeLog 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/ChangeLog 2018-05-22 23:20:50 UTC (rev 232083)
@@ -1,3 +1,28 @@
+2018-05-22 Sihui Liu <[email protected]>
+
+ [iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool fails because cookies use different files with/without processpool
+ https://bugs.webkit.org/show_bug.cgi?id=185831
+
+ Reviewed by Chris Dumez.
+
+ Started to use uiProcessCookieStorageIdentifier for iOS: make sure cookies handled without
+ processpool would use the same storage file as when processpool exists.
+
+ * NetworkProcess/NetworkProcess.h:
+ * NetworkProcess/NetworkProcessCreationParameters.cpp:
+ (WebKit::NetworkProcessCreationParameters::encode const):
+ (WebKit::NetworkProcessCreationParameters::decode):
+ * NetworkProcess/NetworkProcessCreationParameters.h:
+ * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+ (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
+ * Shared/WebProcessCreationParameters.cpp:
+ (WebKit::WebProcessCreationParameters::encode const):
+ (WebKit::WebProcessCreationParameters::decode):
+ * Shared/WebProcessCreationParameters.h:
+ * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+ (WebKit::WebProcessPool::platformInitializeWebProcess):
+ (WebKit::WebProcessPool::platformInitializeNetworkProcess):
+
2018-05-22 Chris Dumez <[email protected]>
Regression(AsyncPolicyDelegates): Box.app login Window is blank
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (232082 => 232083)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h 2018-05-22 23:20:50 UTC (rev 232083)
@@ -246,7 +246,7 @@
// Platform Helpers
void platformSetURLCacheSize(unsigned urlCacheMemoryCapacity, uint64_t urlCacheDiskCapacity);
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
static void setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier);
#endif
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp (232082 => 232083)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp 2018-05-22 23:20:50 UTC (rev 232083)
@@ -56,7 +56,7 @@
#if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION)
encoder << shouldEnableNetworkCacheSpeculativeRevalidation;
#endif
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
encoder << uiProcessCookieStorageIdentifier;
#endif
#if PLATFORM(IOS)
@@ -167,7 +167,7 @@
if (!decoder.decode(result.shouldEnableNetworkCacheSpeculativeRevalidation))
return false;
#endif
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
if (!decoder.decode(result.uiProcessCookieStorageIdentifier))
return false;
#endif
Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h (232082 => 232083)
--- trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h 2018-05-22 23:20:50 UTC (rev 232083)
@@ -67,7 +67,7 @@
#if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION)
bool shouldEnableNetworkCacheSpeculativeRevalidation { false };
#endif
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
Vector<uint8_t> uiProcessCookieStorageIdentifier;
#endif
#if PLATFORM(IOS)
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm (232082 => 232083)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkProcessCocoa.mm 2018-05-22 23:20:50 UTC (rev 232083)
@@ -95,7 +95,7 @@
initializeNetworkSettings();
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
setSharedHTTPCookieStorage(parameters.uiProcessCookieStorageIdentifier);
#endif
@@ -215,7 +215,7 @@
clearNSURLCache(m_clearCacheDispatchGroup, modifiedSince, WTFMove(completionHandler));
}
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
void NetworkProcess::setSharedHTTPCookieStorage(const Vector<uint8_t>& identifier)
{
ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp (232082 => 232083)
--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp 2018-05-22 23:20:50 UTC (rev 232083)
@@ -57,7 +57,7 @@
encoder << mediaCacheDirectoryExtensionHandle;
encoder << _javascript_ConfigurationDirectory;
encoder << _javascript_ConfigurationDirectoryExtensionHandle;
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
encoder << uiProcessCookieStorageIdentifier;
#endif
#if PLATFORM(IOS)
@@ -209,7 +209,7 @@
return false;
parameters._javascript_ConfigurationDirectoryExtensionHandle = WTFMove(*_javascript_ConfigurationDirectoryExtensionHandle);
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
if (!decoder.decode(parameters.uiProcessCookieStorageIdentifier))
return false;
#endif
Modified: trunk/Source/WebKit/Shared/WebProcessCreationParameters.h (232082 => 232083)
--- trunk/Source/WebKit/Shared/WebProcessCreationParameters.h 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/Shared/WebProcessCreationParameters.h 2018-05-22 23:20:50 UTC (rev 232083)
@@ -79,7 +79,7 @@
SandboxExtension::Handle mediaCacheDirectoryExtensionHandle;
String _javascript_ConfigurationDirectory;
SandboxExtension::Handle _javascript_ConfigurationDirectoryExtensionHandle;
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
Vector<uint8_t> uiProcessCookieStorageIdentifier;
#endif
#if PLATFORM(IOS)
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (232082 => 232083)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm 2018-05-22 23:20:50 UTC (rev 232083)
@@ -246,7 +246,7 @@
}
parameters.networkATSContext = adoptCF(_CFNetworkCopyATSContext());
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
ASSERT(parameters.uiProcessCookieStorageIdentifier.isEmpty());
ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
parameters.uiProcessCookieStorageIdentifier = identifyingDataFromCookieStorage([[NSHTTPCookieStorage sharedHTTPCookieStorage] _cookieStorage]);
@@ -309,7 +309,7 @@
parameters.shouldSuppressMemoryPressureHandler = [defaults boolForKey:WebKitSuppressMemoryPressureHandlerDefaultsKey];
parameters.loadThrottleLatency = Seconds { [defaults integerForKey:WebKitNetworkLoadThrottleLatencyMillisecondsDefaultsKey] / 1000. };
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
ASSERT(parameters.uiProcessCookieStorageIdentifier.isEmpty());
ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
parameters.uiProcessCookieStorageIdentifier = identifyingDataFromCookieStorage([[NSHTTPCookieStorage sharedHTTPCookieStorage] _cookieStorage]);
Modified: trunk/Tools/ChangeLog (232082 => 232083)
--- trunk/Tools/ChangeLog 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Tools/ChangeLog 2018-05-22 23:20:50 UTC (rev 232083)
@@ -1,3 +1,15 @@
+2018-05-22 Sihui Liu <[email protected]>
+
+ [iOS] TestWebKitAPI.WebKit.WKHTTPCookieStoreWithoutProcessPool is crashing with reason: 'Completion handler passed to -[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:] was not called'
+ https://bugs.webkit.org/show_bug.cgi?id=185831
+
+ Reviewed by Chris Dumez.
+
+ Updated the test to prevent crash after assertion fails.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
+ (-[CookieUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
+
2018-05-22 Chris Dumez <[email protected]>
Regression(AsyncPolicyDelegates): Box.app login Window is blank
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm (232082 => 232083)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm 2018-05-22 22:41:06 UTC (rev 232082)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm 2018-05-22 23:20:50 UTC (rev 232083)
@@ -378,7 +378,7 @@
- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler
{
auto cookies = String(message.UTF8String);
- ASSERT_TRUE(cookies == "PersistentCookieName=CookieValue; SessionCookieName=CookieValue" || cookies == "SessionCookieName=CookieValue; PersistentCookieName=CookieValue");
+ EXPECT_TRUE(cookies == "PersistentCookieName=CookieValue; SessionCookieName=CookieValue" || cookies == "SessionCookieName=CookieValue; PersistentCookieName=CookieValue");
finished = true;
completionHandler();
}