Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: db0157e0a926e23c71e70d75e105255bb29e523d
      
https://github.com/WebKit/WebKit/commit/db0157e0a926e23c71e70d75e105255bb29e523d
  Author: Sihui Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M Source/WebCore/loader/FrameLoader.h
    M Source/WebCore/platform/network/NetworkStorageSession.cpp
    M Source/WebCore/platform/network/NetworkStorageSession.h
    M Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp
    M Source/WebKit/NetworkProcess/Cookies/WebCookieManager.h
    M Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in
    M Source/WebKit/NetworkProcess/NetworkLoadParameters.h
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M 
Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in
    M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
    M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
    M Source/WebKit/Shared/LoadParameters.h
    M Source/WebKit/Shared/LoadParameters.serialization.in
    M Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp
    M Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm
    M Tools/TestWebKitAPI/cocoa/HTTPServer.h
    M Tools/TestWebKitAPI/cocoa/HTTPServer.mm

  Log Message:
  -----------
  [Cocoa] Ensure network load happens after setCookies requests are handled
https://bugs.webkit.org/show_bug.cgi?id=290158

Reviewed by Chris Dumez.

If loadRequest is invoked after setCookie, client may expect the cookies to be 
used for requests. This patch implements
that by introducing cookies version. When setCookie is invoked, cookies version 
will be incremented. When a load request
is created in UI process, it will record the current cookies version as 
"required cookies version", meaning the related
network tasks should be started in network process after network process has 
handled setCookies requests with lower
cookies version.

API test: WKHTTPCookieStore.CookiesSetBeforeLoad

* Source/WebCore/loader/FrameLoader.h:
* Source/WebCore/platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::setCookiesVersion):
(WebCore::NetworkStorageSession::addCookiesVersionChangeCallback):
* Source/WebCore/platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::cookiesVersion const):
* Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::setCookie):
* Source/WebKit/NetworkProcess/Cookies/WebCookieManager.h:
* Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in:
* Source/WebKit/NetworkProcess/NetworkLoadParameters.h:
(WebKit::NetworkLoadParameters::NetworkLoadParameters):
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::resume):
* Source/WebKit/Shared/LoadParameters.h:
* Source/WebKit/Shared/LoadParameters.serialization.in:
* Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::setCookies):
* Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
(makeVectorElement):
(-[WKHTTPCookieStore _setCookies:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::preconnectTo):
(WebKit::NetworkProcessProxy::setCookies):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(TEST(WKHTTPCookieStore, CookiesSetBeforeLoad)):
* Tools/TestWebKitAPI/cocoa/HTTPServer.h:
* Tools/TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::lastRequestCookies const):
(TestWebKitAPI::HTTPServer::parseCookies):
(TestWebKitAPI::HTTPServer::respondToRequests):

Canonical link: https://commits.webkit.org/292525@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to