Changeset 266951 in webkit
- Timestamp:
- Sep 11, 2020 3:01:54 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r266936 r266951 1 2020-09-11 Alex Christensen <achristensen@webkit.org> 2 3 Move _setCookieAcceptPolicy to WKHTTPCookieStore 4 https://bugs.webkit.org/show_bug.cgi?id=216375 5 6 Reviewed by Geoffrey Garen. 7 8 * platform/network/cocoa/HTTPCookieAcceptPolicyCocoa.h: 9 1 10 2020-09-11 Myles C. Maxfield <mmaxfield@apple.com> 2 11 -
trunk/Source/WebCore/platform/network/cocoa/HTTPCookieAcceptPolicyCocoa.h
r265953 r266951 27 27 28 28 #include "HTTPCookieAcceptPolicy.h" 29 #include <pal/spi/cf/CFNetworkSPI.h> 29 30 30 31 namespace WebCore { -
trunk/Source/WebKit/ChangeLog
r266932 r266951 1 2020-09-11 Alex Christensen <achristensen@webkit.org> 2 3 Move _setCookieAcceptPolicy to WKHTTPCookieStore 4 https://bugs.webkit.org/show_bug.cgi?id=216375 5 6 Reviewed by Geoffrey Garen. 7 8 It is only used by Safari, which I am changing along with this in rdar://problem/68659937 9 I need it to not be on the process pool for https://bugs.webkit.org/show_bug.cgi?id=216041 10 and because the cookie store's job is to manage cookie storage. The fact that it was on the process pool 11 is just a historical artifact of us trying to make it global. 12 13 WKContextUseTestingNetworkSession has had its important parts replaced by WKWebsiteDataStoreConfigurationSetTestingSessionEnabled 14 but it was still being used to determinte whether the UI process should persist the cookie accept policy. We don't need this 15 any more because we send a message to the network process and let it manage the cookie accept policy. 16 17 * UIProcess/API/C/WKContext.cpp: 18 (WKContextUseTestingNetworkSession): Deleted. 19 * UIProcess/API/C/WKContextPrivate.h: 20 * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: 21 (-[WKHTTPCookieStore _setCookieAcceptPolicy:completionHandler:]): 22 * UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h: 23 * UIProcess/API/Cocoa/WKProcessPool.mm: 24 (-[WKProcessPool _setCookieAcceptPolicy:]): 25 * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: 26 * UIProcess/WebCookieManagerProxy.cpp: 27 (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): 28 * UIProcess/WebProcessPool.cpp: 29 (WebKit::WebProcessPool::useTestingNetworkSession): Deleted. 30 * UIProcess/WebProcessPool.h: 31 1 32 2020-09-11 Ben Nham <nham@apple.com> 2 33 -
trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp
r263060 r266951 544 544 } 545 545 546 void WKContextUseTestingNetworkSession(WKContextRef context)547 {548 WebKit::toImpl(context)->useTestingNetworkSession();549 }550 551 546 void WKContextSetAllowsAnySSLCertificateForWebSocketTesting(WKContextRef context, bool allows) 552 547 { -
trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h
r263060 r266951 90 90 WK_EXPORT void WKContextSetAllowsAnySSLCertificateForServiceWorkerTesting(WKContextRef, bool); 91 91 92 // Test only. Should be called before any secondary processes are started.93 WK_EXPORT void WKContextUseTestingNetworkSession(WKContextRef context);94 95 92 // Test only. Should be called before running a test. 96 93 WK_EXPORT void WKContextClearCachedCredentials(WKContextRef context); -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm
r260485 r266951 29 29 #import <WebCore/Cookie.h> 30 30 #import <WebCore/HTTPCookieAcceptPolicy.h> 31 #import <WebCore/HTTPCookieAcceptPolicyCocoa.h> 31 32 #import <pal/spi/cf/CFNetworkSPI.h> 32 33 #import <wtf/BlockPtr.h> … … 139 140 } 140 141 142 - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy completionHandler:(void (^)())completionHandler 143 { 144 _cookieStore->setHTTPCookieAcceptPolicy(WebCore::toHTTPCookieAcceptPolicy(policy), [completionHandler = makeBlockPtr(completionHandler)] { 145 completionHandler.get()(); 146 }); 147 } 148 141 149 @end -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h
r260334 r266951 28 28 @interface WKHTTPCookieStore (WKPrivate) 29 29 - (void)_getCookiesForURL:(NSURL *)url completionHandler:(void (^)(NSArray<NSHTTPCookie *> *))completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 30 - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy completionHandler:(void (^)())completionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 30 31 @end -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm
r264874 r266951 202 202 - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy 203 203 { 204 _processPool->supplement<WebKit::WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy(PAL::SessionID::defaultSessionID(), WebCore::toHTTPCookieAcceptPolicy(policy), []() { });205 204 } 206 205 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h
r264874 r266951 51 51 - (void)_setAllowsSpecificHTTPSCertificate:(NSArray *)certificateChain forHost:(NSString *)host; 52 52 - (void)_setCanHandleHTTPSServerTrustEvaluation:(BOOL)value WK_API_DEPRECATED_WITH_REPLACEMENT("_WKWebsiteDataStoreConfiguration.fastServerTrustEvaluationEnabled", macos(10.11, WK_MAC_TBA), ios(9.0, WK_IOS_TBA)); 53 - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy ;53 - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy WK_API_DEPRECATED_WITH_REPLACEMENT("WKHTTPCookieStore._setCookieAcceptPolicy:completionHandler:", macos(10.10, WK_MAC_TBA), ios(8.0, WK_IOS_TBA)); 54 54 55 55 - (id)_objectForBundleParameter:(NSString *)parameter; -
trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp
r261288 r266951 212 212 void WebCookieManagerProxy::setHTTPCookieAcceptPolicy(PAL::SessionID, HTTPCookieAcceptPolicy policy, CompletionHandler<void()>&& callbackFunction) 213 213 { 214 #if PLATFORM(COCOA)215 if (!processPool()->isUsingTestingNetworkSession())216 persistHTTPCookieAcceptPolicy(policy);217 #endif218 214 #if USE(SOUP) 219 215 processPool()->setInitialHTTPCookieAcceptPolicy(policy); -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r266829 r266951 1769 1769 } 1770 1770 1771 void WebProcessPool::useTestingNetworkSession()1772 {1773 ASSERT(m_processes.isEmpty());1774 ASSERT(!m_networkProcess);1775 1776 if (m_networkProcess)1777 return;1778 1779 if (!m_processes.isEmpty())1780 return;1781 1782 m_shouldUseTestingNetworkSession = true;1783 }1784 1785 1771 template<typename T, typename U> 1786 1772 void WebProcessPool::sendSyncToNetworkingProcess(T&& message, U&& reply) -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r266214 r266951 319 319 static Statistics& statistics(); 320 320 321 void useTestingNetworkSession();322 bool isUsingTestingNetworkSession() const { return m_shouldUseTestingNetworkSession; }323 324 321 void setAllowsAnySSLCertificateForWebSocket(bool); 325 322 … … 726 723 #endif 727 724 728 bool m_shouldUseTestingNetworkSession { false };729 730 725 bool m_processTerminationEnabled { true }; 731 726 -
trunk/Tools/ChangeLog
r266937 r266951 1 2020-09-11 Alex Christensen <achristensen@webkit.org> 2 3 Move _setCookieAcceptPolicy to WKHTTPCookieStore 4 https://bugs.webkit.org/show_bug.cgi?id=216375 5 6 Reviewed by Geoffrey Garen. 7 8 * TestWebKitAPI/Tests/WebKitCocoa/CookieAcceptPolicy.mm: 9 (TEST): 10 * TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: 11 * WebKitTestRunner/TestController.cpp: 12 (WTR::TestController::generatePageConfiguration): 13 1 14 2020-09-11 Zhifei Fang <zhifei_fang@apple.com> 2 15 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/CookieAcceptPolicy.mm
r260366 r266951 27 27 28 28 #import "PlatformUtilities.h" 29 #import <WebKit/WK ProcessPool.h>29 #import <WebKit/WKHTTPCookieStorePrivate.h> 30 30 #import <WebKit/WKProcessPoolPrivate.h> 31 31 #import <WebKit/WKWebView.h> … … 33 33 #import <pal/spi/cf/CFNetworkSPI.h> 34 34 #import <wtf/RetainPtr.h> 35 36 // FIXME: This test is causing flakiness in API tests. It sets the cookie accept policy to 'Never'37 // and following tests often are unable to set cookies.38 #if !PLATFORM(IOS_FAMILY)39 35 40 36 static bool receivedScriptMessage = false; … … 57 53 { 58 54 auto originalCookieAcceptPolicy = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookieAcceptPolicy]; 59 60 RetainPtr<WKWebViewConfiguration> configuration = adoptNS([[WKWebViewConfiguration alloc] init]); 61 62 RetainPtr<WKProcessPool> processPool = adoptNS([[WKProcessPool alloc] init]); 63 [configuration setProcessPool:processPool.get()]; 64 65 RetainPtr<CookieAcceptPolicyMessageHandler> handler = adoptNS([[CookieAcceptPolicyMessageHandler alloc] init]); 55 56 auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]); 57 58 auto handler = adoptNS([[CookieAcceptPolicyMessageHandler alloc] init]); 66 59 [[configuration userContentController] addScriptMessageHandler:handler.get() name:@"testHandler"]; 67 68 RetainPtr<WKWebView>webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);69 60 61 auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]); 62 70 63 NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"CookieMessage" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]; 71 [processPool _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever]; 64 __block bool setPolicy = false; 65 [configuration.get().websiteDataStore.httpCookieStore _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyNever completionHandler:^{ 66 setPolicy = true; 67 }]; 68 TestWebKitAPI::Util::run(&setPolicy); 72 69 [webView loadRequest:request]; 73 70 TestWebKitAPI::Util::run(&receivedScriptMessage); 74 71 EXPECT_STREQ([(NSString *)[lastScriptMessage body] UTF8String], "COOKIE:"); 75 76 [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:originalCookieAcceptPolicy]; 77 [[NSHTTPCookieStorage sharedHTTPCookieStorage] _saveCookies]; 72 73 setPolicy = false; 74 [configuration.get().websiteDataStore.httpCookieStore _setCookieAcceptPolicy:originalCookieAcceptPolicy completionHandler:^{ 75 setPolicy = true; 76 }]; 77 TestWebKitAPI::Util::run(&setPolicy); 78 78 } 79 80 #endif // !PLATFORM(IOS_FAMILY) -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
r262226 r266951 32 32 #import <WebKit/WKBackForwardListItemPrivate.h> 33 33 #import <WebKit/WKContentRuleListStore.h> 34 #import <WebKit/WKHTTPCookieStorePrivate.h> 34 35 #import <WebKit/WKNavigationDelegatePrivate.h> 35 36 #import <WebKit/WKNavigationPrivate.h> … … 5398 5399 TEST(ProcessSwap, UseSessionCookiesAfterProcessSwapInPrivateBrowsing) 5399 5400 { 5401 auto originalCookieAcceptPolicy = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookieAcceptPolicy]; 5402 5400 5403 auto processPoolConfiguration = psonProcessPoolConfiguration(); 5401 5404 auto processPool = adoptNS([[WKProcessPool alloc] _initWithConfiguration:processPoolConfiguration.get()]); … … 5416 5419 [webView setNavigationDelegate:delegate.get()]; 5417 5420 5418 [processPool _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 5421 __block bool setPolicy = false; 5422 [webView.get().configuration.websiteDataStore.httpCookieStore _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways completionHandler:^{ 5423 setPolicy = true; 5424 }]; 5425 TestWebKitAPI::Util::run(&setPolicy); 5419 5426 5420 5427 NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetSessionCookie" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]; … … 5451 5458 EXPECT_EQ(1u, [receivedMessages count]); 5452 5459 EXPECT_WK_STREQ(@"foo=bar", receivedMessages.get()[0]); 5460 5461 setPolicy = false; 5462 [webView.get().configuration.websiteDataStore.httpCookieStore _setCookieAcceptPolicy:originalCookieAcceptPolicy completionHandler:^{ 5463 setPolicy = true; 5464 }]; 5465 TestWebKitAPI::Util::run(&setPolicy); 5453 5466 } 5454 5467 5455 5468 TEST(ProcessSwap, UseSessionCookiesAfterProcessSwapInNonDefaultPersistentSession) 5456 5469 { 5470 auto originalCookieAcceptPolicy = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookieAcceptPolicy]; 5471 5457 5472 auto processPoolConfiguration = psonProcessPoolConfiguration(); 5458 5473 … … 5482 5497 [webView setNavigationDelegate:delegate.get()]; 5483 5498 5484 [processPool _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; 5499 __block bool setPolicy = false; 5500 [webView.get().configuration.websiteDataStore.httpCookieStore _setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways completionHandler:^{ 5501 setPolicy = true; 5502 }]; 5503 TestWebKitAPI::Util::run(&setPolicy); 5485 5504 5486 5505 NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetSessionCookie" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]; … … 5518 5537 EXPECT_EQ(1u, [receivedMessages count]); 5519 5538 EXPECT_WK_STREQ(@"foo=bar", receivedMessages.get()[0]); 5539 5540 setPolicy = false; 5541 [webView.get().configuration.websiteDataStore.httpCookieStore _setCookieAcceptPolicy:originalCookieAcceptPolicy completionHandler:^{ 5542 setPolicy = true; 5543 }]; 5544 TestWebKitAPI::Util::run(&setPolicy); 5520 5545 } 5521 5546 -
trunk/Tools/WebKitTestRunner/TestController.cpp
r266743 r266951 580 580 } 581 581 582 WKContextUseTestingNetworkSession(m_context.get());583 582 WKContextSetCacheModel(m_context.get(), kWKCacheModelDocumentBrowser); 584 583
Note: See TracChangeset
for help on using the changeset viewer.