Diff
Modified: branches/safari-606.1.20.20-branch/Source/WebKit/ChangeLog (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Source/WebKit/ChangeLog 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Source/WebKit/ChangeLog 2018-06-13 23:46:06 UTC (rev 232819)
@@ -1,3 +1,7 @@
+2018-06-13 Kocsen Chung <kocsen_ch...@apple.com>
+
+ Revert r231850. rdar://problem/39111626
+
2018-06-08 Kocsen Chung <kocsen_ch...@apple.com>
Cherry-pick r232585. rdar://problem/39117121
Modified: branches/safari-606.1.20.20-branch/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm 2018-06-13 23:46:06 UTC (rev 232819)
@@ -36,7 +36,6 @@
#import "WebsiteDataStoreParameters.h"
#import <WebCore/NetworkStorageSession.h>
#import <WebCore/ResourceError.h>
-#import <pal/SessionID.h>
#import <wtf/MainThread.h>
using namespace WebCore;
@@ -46,12 +45,8 @@
void RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebsiteDataStoreParameters&& parameters)
{
auto sessionID = parameters.networkSessionParameters.sessionID;
- if (auto* session = NetworkStorageSession::storageSession(sessionID)) {
- ASSERT(parameters.pendingCookies.isEmpty() || sessionID == PAL::SessionID::defaultSessionID());
- for (const auto& cookie : parameters.pendingCookies)
- session->setCookie(cookie);
+ if (NetworkStorageSession::storageSession(sessionID))
return;
- }
String base;
if (SessionTracker::getIdentifierBase().isNull())
Modified: branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp 2018-06-13 23:46:06 UTC (rev 232819)
@@ -54,7 +54,7 @@
unregisterForNewProcessPoolNotifications();
}
-void HTTPCookieStore::cookies(Function<void(const Vector<WebCore::Cookie>&)>&& completionHandler)
+void HTTPCookieStore::cookies(Function<void (const Vector<WebCore::Cookie>&)>&& completionHandler)
{
auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
if (!pool) {
@@ -61,7 +61,8 @@
Vector<WebCore::Cookie> allCookies;
if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID())
allCookies = WebCore::NetworkStorageSession::defaultStorageSession().getAllCookies();
- allCookies.appendVector(m_owningDataStore->pendingCookies());
+ else
+ allCookies = m_owningDataStore->pendingCookies();
callOnMainThread([completionHandler = WTFMove(completionHandler), allCookies]() {
completionHandler(allCookies);
@@ -79,8 +80,7 @@
{
auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
if (!pool) {
- // FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier.
- if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)
+ if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID())
WebCore::NetworkStorageSession::defaultStorageSession().setCookie(cookie);
else
m_owningDataStore->addPendingCookie(cookie);
@@ -101,11 +101,10 @@
{
auto* pool = m_owningDataStore->processPoolForCookieStorageOperations();
if (!pool) {
- if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)
+ if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID())
WebCore::NetworkStorageSession::defaultStorageSession().deleteCookie(cookie);
else
m_owningDataStore->removePendingCookie(cookie);
-
callOnMainThread([completionHandler = WTFMove(completionHandler)]() {
completionHandler();
});
Modified: branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebProcessPool.cpp (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebProcessPool.cpp 2018-06-13 23:46:06 UTC (rev 232819)
@@ -447,10 +447,8 @@
NetworkProcessProxy& WebProcessPool::ensureNetworkProcess(WebsiteDataStore* withWebsiteDataStore)
{
if (m_networkProcess) {
- if (withWebsiteDataStore) {
+ if (withWebsiteDataStore)
m_networkProcess->send(Messages::NetworkProcess::AddWebsiteDataStore(withWebsiteDataStore->parameters()), 0);
- withWebsiteDataStore->clearPendingCookies();
- }
return *m_networkProcess;
}
@@ -536,15 +534,8 @@
m_websiteDataStore->websiteDataStore().networkProcessDidCrash();
}
- if (m_websiteDataStore) {
- m_networkProcess->send(Messages::NetworkProcess::AddWebsiteDataStore(m_websiteDataStore->websiteDataStore().parameters()), 0);
- m_websiteDataStore->websiteDataStore().clearPendingCookies();
- }
-
- if (withWebsiteDataStore) {
+ if (withWebsiteDataStore)
m_networkProcess->send(Messages::NetworkProcess::AddWebsiteDataStore(withWebsiteDataStore->parameters()), 0);
- withWebsiteDataStore->clearPendingCookies();
- }
return *m_networkProcess;
}
@@ -1199,11 +1190,9 @@
ASSERT(page.websiteDataStore().parameters().networkSessionParameters.sessionID == sessionID);
sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()));
page.process().send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID)), 0);
- page.websiteDataStore().clearPendingCookies();
} else if (sessionID != PAL::SessionID::defaultSessionID()) {
sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()));
page.process().send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0);
- page.websiteDataStore().clearPendingCookies();
#if ENABLE(INDEXED_DATABASE)
if (!page.websiteDataStore().resolvedIndexedDatabaseDirectory().isEmpty())
Modified: branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2018-06-13 23:46:06 UTC (rev 232819)
@@ -1534,11 +1534,6 @@
{
m_pendingCookies.remove(cookie);
}
-
-void WebsiteDataStore::clearPendingCookies()
-{
- m_pendingCookies.clear();
-}
#if !PLATFORM(COCOA)
WebsiteDataStoreParameters WebsiteDataStore::parameters()
Modified: branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h 2018-06-13 23:46:06 UTC (rev 232819)
@@ -162,7 +162,6 @@
Vector<WebCore::Cookie> pendingCookies() const;
void addPendingCookie(const WebCore::Cookie&);
void removePendingCookie(const WebCore::Cookie&);
- void clearPendingCookies();
void enableResourceLoadStatisticsAndSetTestingCallback(Function<void (const String&)>&& callback);
Modified: branches/safari-606.1.20.20-branch/Tools/ChangeLog (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Tools/ChangeLog 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Tools/ChangeLog 2018-06-13 23:46:06 UTC (rev 232819)
@@ -1,3 +1,7 @@
+2018-06-13 Kocsen Chung <kocsen_ch...@apple.com>
+
+ Revert r231850. rdar://problem/39111626
+
2018-06-06 Kocsen Chung <kocsen_ch...@apple.com>
Cherry-pick r232559. rdar://problem/39874167
Modified: branches/safari-606.1.20.20-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm (232818 => 232819)
--- branches/safari-606.1.20.20-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm 2018-06-13 23:46:02 UTC (rev 232818)
+++ branches/safari-606.1.20.20-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm 2018-06-13 23:46:06 UTC (rev 232819)
@@ -468,101 +468,62 @@
@implementation CookieUIDelegate
- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler
{
- EXPECT_STREQ("PersistentCookieName=CookieValue; SessionCookieName=CookieValue", message.UTF8String);
+ EXPECT_STREQ("cookie:cookiename=cookievalue", message.UTF8String);
finished = true;
completionHandler();
}
@end
+// FIXME: This should be removed once <rdar://problem/35344202> is resolved and bots are updated.
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED <= 101301) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MAX_ALLOWED <= 110102)
TEST(WebKit, WKHTTPCookieStoreWithoutProcessPool)
{
- RetainPtr<NSHTTPCookie> sessionCookie = [NSHTTPCookie cookieWithProperties:@{
- NSHTTPCookiePath: @"/",
- NSHTTPCookieName: @"SessionCookieName",
- NSHTTPCookieValue: @"CookieValue",
- NSHTTPCookieDomain: @"127.0.0.1",
- }];
- RetainPtr<NSHTTPCookie> persistentCookie = [NSHTTPCookie cookieWithProperties:@{
- NSHTTPCookiePath: @"/",
- NSHTTPCookieName: @"PersistentCookieName",
- NSHTTPCookieValue: @"CookieValue",
- NSHTTPCookieDomain: @"127.0.0.1",
- NSHTTPCookieExpires: [NSDate distantFuture],
- }];
- NSString *alertCookieHTML = @"<script>var cookies = document.cookie.split(';'); for (let i = 0; i < cookies.length; i ++) { cookies[i] = cookies[i].trim(); } cookies.sort(); alert(cookies.join('; '));</script>";
-
- // NonPersistentDataStore
- RetainPtr<WKWebsiteDataStore> ephemeralStoreWithCookies = [WKWebsiteDataStore nonPersistentDataStore];
-
+ NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:@"127.0.0.1", NSHTTPCookieDomain, @"/", NSHTTPCookiePath, @"cookiename", NSHTTPCookieName, @"cookievalue", NSHTTPCookieValue, [NSDate distantFuture], NSHTTPCookieExpires, nil]];
+ NSString *alertCookieHTML = @"<script>alert('cookie:'+document.cookie);</script>";
+
finished = false;
- [ephemeralStoreWithCookies.get().httpCookieStore setCookie:persistentCookie.get() completionHandler:^{
+ WKWebsiteDataStore *ephemeralStoreWithCookies = [WKWebsiteDataStore nonPersistentDataStore];
+ [ephemeralStoreWithCookies.httpCookieStore setCookie:cookie completionHandler:^ {
WKWebsiteDataStore *ephemeralStoreWithIndependentCookieStorage = [WKWebsiteDataStore nonPersistentDataStore];
[ephemeralStoreWithIndependentCookieStorage.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {
- ASSERT_EQ(0u, cookies.count);
- finished = true;
- }];
- }];
- TestWebKitAPI::Util::run(&finished);
+ ASSERT_EQ(cookies.count, 0u);
+
+ WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
+ configuration.websiteDataStore = ephemeralStoreWithCookies;
+ WKWebView *view = [[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration];
+ view.UIDelegate = [[CookieUIDelegate alloc] init];
- finished = false;
- [ephemeralStoreWithCookies.get().httpCookieStore setCookie:sessionCookie.get() completionHandler:^{
- [ephemeralStoreWithCookies.get().httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {
- ASSERT_EQ(2u, cookies.count);
- finished = true;
+ [view loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1/"]];
}];
}];
TestWebKitAPI::Util::run(&finished);
-
- finished = false;
- auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
- configuration.get().websiteDataStore = ephemeralStoreWithCookies.get();
- auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
- auto delegate = adoptNS([[CookieUIDelegate alloc] init]);
- webView.get().UIDelegate = delegate.get();
- [webView loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1"]];
- TestWebKitAPI::Util::run(&finished);
-
- finished = false;
- [ephemeralStoreWithCookies.get().httpCookieStore deleteCookie:sessionCookie.get() completionHandler:^{
- [ephemeralStoreWithCookies.get().httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {
- ASSERT_EQ(1u, cookies.count);
- finished = true;
- }];
- }];
- TestWebKitAPI::Util::run(&finished);
- // DefaultDataStore
- auto defaultStore = [WKWebsiteDataStore defaultDataStore];
+ // FIXME: Get this to work on iOS. <rdar://problem/32260156>
+#if !PLATFORM(IOS)
finished = false;
- [defaultStore removeDataOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] modifiedSince:[NSDate distantPast] completionHandler:[] {
- finished = true;
- }];
- TestWebKitAPI::Util::run(&finished);
-
- finished = false;
- [defaultStore.httpCookieStore setCookie:persistentCookie.get() completionHandler:^{
+ WKWebsiteDataStore *defaultStore = [WKWebsiteDataStore defaultDataStore];
+ [defaultStore.httpCookieStore setCookie:cookie completionHandler:^ {
[defaultStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {
- ASSERT_EQ(1u, cookies.count);
- finished = true;
+ ASSERT_EQ(cookies.count, 1u);
+
+ WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
+ configuration.websiteDataStore = defaultStore;
+ WKWebView *view = [[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration];
+ view.UIDelegate = [[CookieUIDelegate alloc] init];
+
+ [view loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1/"]];
}];
}];
TestWebKitAPI::Util::run(&finished);
-
- finished = false;
- [defaultStore.httpCookieStore setCookie:sessionCookie.get() completionHandler:^{
+
+ [defaultStore.httpCookieStore deleteCookie:cookie completionHandler:^ {
[defaultStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {
- ASSERT_EQ(2u, cookies.count);
+ ASSERT_EQ(cookies.count, 0u);
finished = true;
}];
}];
TestWebKitAPI::Util::run(&finished);
-
- finished = false;
- configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
- configuration.get().websiteDataStore = defaultStore;
- webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
- webView.get().UIDelegate = delegate.get();
- [webView loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1"]];
- TestWebKitAPI::Util::run(&finished);
+#endif
}
+#endif // (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED <= 101301) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MAX_ALLOWED <= 110102)
#endif