Changeset 232819 in webkit
- Timestamp:
- Jun 13, 2018 4:46:06 PM (6 years ago)
- Location:
- branches/safari-606.1.20.20-branch
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-606.1.20.20-branch/Source/WebKit/ChangeLog
r232631 r232819 1 2018-06-13 Kocsen Chung <kocsen_chung@apple.com> 2 3 Revert r231850. rdar://problem/39111626 4 1 5 2018-06-08 Kocsen Chung <kocsen_chung@apple.com> 2 6 -
branches/safari-606.1.20.20-branch/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm
r231850 r232819 37 37 #import <WebCore/NetworkStorageSession.h> 38 38 #import <WebCore/ResourceError.h> 39 #import <pal/SessionID.h>40 39 #import <wtf/MainThread.h> 41 40 … … 47 46 { 48 47 auto sessionID = parameters.networkSessionParameters.sessionID; 49 if (auto* session = NetworkStorageSession::storageSession(sessionID)) { 50 ASSERT(parameters.pendingCookies.isEmpty() || sessionID == PAL::SessionID::defaultSessionID()); 51 for (const auto& cookie : parameters.pendingCookies) 52 session->setCookie(cookie); 48 if (NetworkStorageSession::storageSession(sessionID)) 53 49 return; 54 }55 50 56 51 String base; -
branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp
r232522 r232819 55 55 } 56 56 57 void HTTPCookieStore::cookies(Function<void (const Vector<WebCore::Cookie>&)>&& completionHandler)57 void HTTPCookieStore::cookies(Function<void (const Vector<WebCore::Cookie>&)>&& completionHandler) 58 58 { 59 59 auto* pool = m_owningDataStore->processPoolForCookieStorageOperations(); … … 62 62 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID()) 63 63 allCookies = WebCore::NetworkStorageSession::defaultStorageSession().getAllCookies(); 64 allCookies.appendVector(m_owningDataStore->pendingCookies()); 64 else 65 allCookies = m_owningDataStore->pendingCookies(); 65 66 66 67 callOnMainThread([completionHandler = WTFMove(completionHandler), allCookies]() { … … 80 81 auto* pool = m_owningDataStore->processPoolForCookieStorageOperations(); 81 82 if (!pool) { 82 // FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier. 83 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session) 83 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID()) 84 84 WebCore::NetworkStorageSession::defaultStorageSession().setCookie(cookie); 85 85 else … … 102 102 auto* pool = m_owningDataStore->processPoolForCookieStorageOperations(); 103 103 if (!pool) { 104 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)104 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID()) 105 105 WebCore::NetworkStorageSession::defaultStorageSession().deleteCookie(cookie); 106 106 else 107 107 m_owningDataStore->removePendingCookie(cookie); 108 109 108 callOnMainThread([completionHandler = WTFMove(completionHandler)]() { 110 109 completionHandler(); -
branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebProcessPool.cpp
r232535 r232819 448 448 { 449 449 if (m_networkProcess) { 450 if (withWebsiteDataStore) {450 if (withWebsiteDataStore) 451 451 m_networkProcess->send(Messages::NetworkProcess::AddWebsiteDataStore(withWebsiteDataStore->parameters()), 0); 452 withWebsiteDataStore->clearPendingCookies();453 }454 452 return *m_networkProcess; 455 453 } … … 537 535 } 538 536 539 if (m_websiteDataStore) { 540 m_networkProcess->send(Messages::NetworkProcess::AddWebsiteDataStore(m_websiteDataStore->websiteDataStore().parameters()), 0); 541 m_websiteDataStore->websiteDataStore().clearPendingCookies(); 542 } 543 544 if (withWebsiteDataStore) { 537 if (withWebsiteDataStore) 545 538 m_networkProcess->send(Messages::NetworkProcess::AddWebsiteDataStore(withWebsiteDataStore->parameters()), 0); 546 withWebsiteDataStore->clearPendingCookies();547 }548 539 549 540 return *m_networkProcess; … … 1200 1191 sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(page.websiteDataStore().parameters())); 1201 1192 page.process().send(Messages::WebProcess::AddWebsiteDataStore(WebsiteDataStoreParameters::privateSessionParameters(sessionID)), 0); 1202 page.websiteDataStore().clearPendingCookies();1203 1193 } else if (sessionID != PAL::SessionID::defaultSessionID()) { 1204 1194 sendToNetworkingProcess(Messages::NetworkProcess::AddWebsiteDataStore(page.websiteDataStore().parameters())); 1205 1195 page.process().send(Messages::WebProcess::AddWebsiteDataStore(page.websiteDataStore().parameters()), 0); 1206 page.websiteDataStore().clearPendingCookies();1207 1196 1208 1197 #if ENABLE(INDEXED_DATABASE) -
branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
r232423 r232819 1535 1535 m_pendingCookies.remove(cookie); 1536 1536 } 1537 1538 void WebsiteDataStore::clearPendingCookies()1539 {1540 m_pendingCookies.clear();1541 }1542 1537 1543 1538 #if !PLATFORM(COCOA) -
branches/safari-606.1.20.20-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
r232423 r232819 163 163 void addPendingCookie(const WebCore::Cookie&); 164 164 void removePendingCookie(const WebCore::Cookie&); 165 void clearPendingCookies();166 165 167 166 void enableResourceLoadStatisticsAndSetTestingCallback(Function<void (const String&)>&& callback); -
branches/safari-606.1.20.20-branch/Tools/ChangeLog
r232818 r232819 1 2018-06-13 Kocsen Chung <kocsen_chung@apple.com> 2 3 Revert r231850. rdar://problem/39111626 4 1 5 2018-06-06 Kocsen Chung <kocsen_chung@apple.com> 2 6 -
branches/safari-606.1.20.20-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm
r232357 r232819 469 469 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler 470 470 { 471 EXPECT_STREQ(" PersistentCookieName=CookieValue; SessionCookieName=CookieValue", message.UTF8String);471 EXPECT_STREQ("cookie:cookiename=cookievalue", message.UTF8String); 472 472 finished = true; 473 473 completionHandler(); … … 475 475 @end 476 476 477 // FIXME: This should be removed once <rdar://problem/35344202> is resolved and bots are updated. 478 #if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED <= 101301) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MAX_ALLOWED <= 110102) 477 479 TEST(WebKit, WKHTTPCookieStoreWithoutProcessPool) 478 480 { 479 RetainPtr<NSHTTPCookie> sessionCookie = [NSHTTPCookie cookieWithProperties:@{ 480 NSHTTPCookiePath: @"/", 481 NSHTTPCookieName: @"SessionCookieName", 482 NSHTTPCookieValue: @"CookieValue", 483 NSHTTPCookieDomain: @"127.0.0.1", 484 }]; 485 RetainPtr<NSHTTPCookie> persistentCookie = [NSHTTPCookie cookieWithProperties:@{ 486 NSHTTPCookiePath: @"/", 487 NSHTTPCookieName: @"PersistentCookieName", 488 NSHTTPCookieValue: @"CookieValue", 489 NSHTTPCookieDomain: @"127.0.0.1", 490 NSHTTPCookieExpires: [NSDate distantFuture], 491 }]; 492 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>"; 493 494 // NonPersistentDataStore 495 RetainPtr<WKWebsiteDataStore> ephemeralStoreWithCookies = [WKWebsiteDataStore nonPersistentDataStore]; 496 481 NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:@"127.0.0.1", NSHTTPCookieDomain, @"/", NSHTTPCookiePath, @"cookiename", NSHTTPCookieName, @"cookievalue", NSHTTPCookieValue, [NSDate distantFuture], NSHTTPCookieExpires, nil]]; 482 NSString *alertCookieHTML = @"<script>alert('cookie:'+document.cookie);</script>"; 483 497 484 finished = false; 498 [ephemeralStoreWithCookies.get().httpCookieStore setCookie:persistentCookie.get() completionHandler:^{ 485 WKWebsiteDataStore *ephemeralStoreWithCookies = [WKWebsiteDataStore nonPersistentDataStore]; 486 [ephemeralStoreWithCookies.httpCookieStore setCookie:cookie completionHandler:^ { 499 487 WKWebsiteDataStore *ephemeralStoreWithIndependentCookieStorage = [WKWebsiteDataStore nonPersistentDataStore]; 500 488 [ephemeralStoreWithIndependentCookieStorage.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) { 501 ASSERT_EQ(0u, cookies.count); 489 ASSERT_EQ(cookies.count, 0u); 490 491 WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; 492 configuration.websiteDataStore = ephemeralStoreWithCookies; 493 WKWebView *view = [[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration]; 494 view.UIDelegate = [[CookieUIDelegate alloc] init]; 495 496 [view loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1/"]]; 497 }]; 498 }]; 499 TestWebKitAPI::Util::run(&finished); 500 501 // FIXME: Get this to work on iOS. <rdar://problem/32260156> 502 #if !PLATFORM(IOS) 503 finished = false; 504 WKWebsiteDataStore *defaultStore = [WKWebsiteDataStore defaultDataStore]; 505 [defaultStore.httpCookieStore setCookie:cookie completionHandler:^ { 506 [defaultStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) { 507 ASSERT_EQ(cookies.count, 1u); 508 509 WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; 510 configuration.websiteDataStore = defaultStore; 511 WKWebView *view = [[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration]; 512 view.UIDelegate = [[CookieUIDelegate alloc] init]; 513 514 [view loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1/"]]; 515 }]; 516 }]; 517 TestWebKitAPI::Util::run(&finished); 518 519 [defaultStore.httpCookieStore deleteCookie:cookie completionHandler:^ { 520 [defaultStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) { 521 ASSERT_EQ(cookies.count, 0u); 502 522 finished = true; 503 523 }]; 504 524 }]; 505 525 TestWebKitAPI::Util::run(&finished); 506 507 finished = false;508 [ephemeralStoreWithCookies.get().httpCookieStore setCookie:sessionCookie.get() completionHandler:^{509 [ephemeralStoreWithCookies.get().httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {510 ASSERT_EQ(2u, cookies.count);511 finished = true;512 }];513 }];514 TestWebKitAPI::Util::run(&finished);515 516 finished = false;517 auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);518 configuration.get().websiteDataStore = ephemeralStoreWithCookies.get();519 auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);520 auto delegate = adoptNS([[CookieUIDelegate alloc] init]);521 webView.get().UIDelegate = delegate.get();522 [webView loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1"]];523 TestWebKitAPI::Util::run(&finished);524 525 finished = false;526 [ephemeralStoreWithCookies.get().httpCookieStore deleteCookie:sessionCookie.get() completionHandler:^{527 [ephemeralStoreWithCookies.get().httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {528 ASSERT_EQ(1u, cookies.count);529 finished = true;530 }];531 }];532 TestWebKitAPI::Util::run(&finished);533 534 // DefaultDataStore535 auto defaultStore = [WKWebsiteDataStore defaultDataStore];536 finished = false;537 [defaultStore removeDataOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] modifiedSince:[NSDate distantPast] completionHandler:[] {538 finished = true;539 }];540 TestWebKitAPI::Util::run(&finished);541 542 finished = false;543 [defaultStore.httpCookieStore setCookie:persistentCookie.get() completionHandler:^{544 [defaultStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {545 ASSERT_EQ(1u, cookies.count);546 finished = true;547 }];548 }];549 TestWebKitAPI::Util::run(&finished);550 551 finished = false;552 [defaultStore.httpCookieStore setCookie:sessionCookie.get() completionHandler:^{553 [defaultStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *cookies) {554 ASSERT_EQ(2u, cookies.count);555 finished = true;556 }];557 }];558 TestWebKitAPI::Util::run(&finished);559 560 finished = false;561 configuration = adoptNS([[WKWebViewConfiguration alloc] init]);562 configuration.get().websiteDataStore = defaultStore;563 webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);564 webView.get().UIDelegate = delegate.get();565 [webView loadHTMLString:alertCookieHTML baseURL:[NSURL URLWithString:@"http://127.0.0.1"]];566 TestWebKitAPI::Util::run(&finished);567 }568 526 #endif 527 } 528 #endif // (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED <= 101301) || (PLATFORM(IOS) && __IPHONE_OS_VERSION_MAX_ALLOWED <= 110102) 529 #endif
Note: See TracChangeset
for help on using the changeset viewer.