Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cf54cd7ce1f0251c089ef4c68d2ec14e05c04058
https://github.com/WebKit/WebKit/commit/cf54cd7ce1f0251c089ef4c68d2ec14e05c04058
Author: Sihui Liu <[email protected]>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm
Log Message:
-----------
Ensure third party cookie blocking mode stays unchanged when last page is gone
https://bugs.webkit.org/show_bug.cgi?id=304622
rdar://167053937
Reviewed by Matthew Finkel.
In current implementation, WebsiteDataStore::isOptInCookiePartitioningEnabled()
returns true if any of its pages has
the flag enabled. It means when the last page is gone, the value becomes false
(as no page has the flag). When a new
page is created with default preferences (where the flag is enabled),
isOptInCookiePartitioningEnabled() will become
true again. This causes unnecessary IPC messages to update third party cookie
blocking mode. To fix it, avoid changing
the flag value when there is no active page.
Test:
WKWebsiteDataStorePrivate.ThirdPartyCookieBlockingModeUnchangedBetweenViews
* Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::isOptInCookiePartitioningEnabled const):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _thirdPartyCookieBlockingModeForTesting]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::webProcessDataStoreParameters):
* Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::isOptInCookiePartitioningEnabled const): Deleted.
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setThirdPartyCookieBlockingMode):
(WebKit::WebsiteDataStore::computeIsOptInCookiePartitioningEnabled const):
(WebKit::WebsiteDataStore::propagateSettingUpdates):
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::isOptInCookiePartitioningEnabled const): Deleted.
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::(WKWebsiteDataStorePrivate,
ThirdPartyCookieBlockingModeUnchangedBetweenViews)):
Canonical link: https://commits.webkit.org/305654@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications