[webkit-changes] [WebKit/WebKit] 2ffa7c: Add support for Web Extension cookies API.
Timothy Hatcher
noreply at github.com
Wed Jan 17 18:59:42 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2ffa7c91980ec5d1b448b38896c59dac4b77819c
https://github.com/WebKit/WebKit/commit/2ffa7c91980ec5d1b448b38896c59dac4b77819c
Author: Timothy Hatcher <timothy at apple.com>
Date: 2024-01-17 (Wed, 17 Jan 2024)
Changed paths:
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources.make
M Source/WebKit/Scripts/webkit/messages.py
A Source/WebKit/Shared/Extensions/WebExtensionCookieParameters.h
A Source/WebKit/Shared/Extensions/WebExtensionCookieParameters.serialization.in
M Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm
M Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp
M Source/WebKit/UIProcess/API/APIHTTPCookieStore.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm
A Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfigurationCocoa.mm
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.h
M Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in
M Source/WebKit/UIProcess/Extensions/WebExtensionController.h
M Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.cpp
M Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm
M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPICookies.h
M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h
M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPICookies.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionControllerConfiguration.mm
Log Message:
-----------
Add support for Web Extension cookies API.
https://webkit.org/b/261771
rdar://problem/115743156
Reviewed by Brian Weinstein.
Finish up the support for cookies, which includes support for multiple cookies stores.
This required new _WKWebExtensionControllerConfiguration property to define what the
default WKWebsiteDataStore is, and the other stores are tracked by what tabs are open.
Added a bunch of new tests that cover all the cookies APIs.
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/Scripts/webkit/messages.py:
(class_template_headers):
(headers_for_type):
* Source/WebKit/Shared/Extensions/WebExtensionCookieParameters.h: Added.
* Source/WebKit/Shared/Extensions/WebExtensionCookieParameters.serialization.in: Added.
* Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm:
(WebKit::validateSingleObject):
(WebKit::validateDictionary):
* Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::cookies):
* Source/WebKit/UIProcess/API/APIHTTPCookieStore.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebExtensionControllerConfiguration.mm:
(-[_WKWebExtensionControllerConfiguration encodeWithCoder:]):
(-[_WKWebExtensionControllerConfiguration initWithCoder:]):
(-[_WKWebExtensionControllerConfiguration defaultWebsiteDataStore]):
(-[_WKWebExtensionControllerConfiguration setDefaultWebsiteDataStore:]):
* Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPICookiesCocoa.mm: Added.
(WebKit::domainsMatch):
(WebKit::toURL):
(WebKit::WebExtensionContext::fetchCookies):
(WebKit::WebExtensionContext::cookiesGet):
(WebKit::WebExtensionContext::cookiesGetAll):
(WebKit::WebExtensionContext::cookiesSet):
(WebKit::WebExtensionContext::cookiesRemove):
(WebKit::WebExtensionContext::cookiesGetAllCookieStores):
(WebKit::WebExtensionContext::fireCookiesChangedEventIfNeeded):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::websiteDataStore const):
(WebKit::WebExtensionContext::cookiesDidChange):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerCocoa.mm:
(WebKit::WebExtensionController::addPage):
(WebKit::WebExtensionController::removePage):
(WebKit::WebExtensionController::websiteDataStore const):
(WebKit::WebExtensionController::addWebsiteDataStore):
(WebKit::WebExtensionController::removeWebsiteDataStore):
(WebKit::WebExtensionController::cookiesDidChange):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionControllerConfigurationCocoa.mm:
(WebKit::WebExtensionControllerConfiguration::copy const):
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.h:
* Source/WebKit/UIProcess/Extensions/WebExtensionContext.messages.in:
* Source/WebKit/UIProcess/Extensions/WebExtensionController.h:
(WebKit::WebExtensionController::allPages const):
(WebKit::WebExtensionController::allWebsiteDataStores const):
(WebKit::WebExtensionController::allUserContentControllers const):
(WebKit::WebExtensionController::allNonPrivateUserContentControllers const):
(WebKit::WebExtensionController::allPrivateUserContentControllers const):
(WebKit::WebExtensionController::allProcessPools const):
(WebKit::WebExtensionController::HTTPCookieStoreObserver::HTTPCookieStoreObserver):
* Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.cpp:
(WebKit::WebExtensionControllerConfiguration::operator== const):
(WebKit::WebExtensionControllerConfiguration::defaultWebsiteDataStore const):
* Source/WebKit/UIProcess/Extensions/WebExtensionControllerConfiguration.h:
(WebKit::WebExtensionControllerConfiguration::setDefaultWebsiteDataStore):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::operator== const):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm:
(WebKit::toImpl):
(WebKit::toWebAPI):
(WebKit::WebExtensionAPICookies::parseCookieDetails):
(WebKit::WebExtensionAPICookies::get):
(WebKit::normalizeDomain):
(WebKit::WebExtensionAPICookies::getAll):
(WebKit::WebExtensionAPICookies::set):
(WebKit::WebExtensionAPICookies::remove):
(WebKit::WebExtensionAPICookies::getAllCookieStores):
(WebKit::WebExtensionContextProxy::dispatchCookiesChangedEvent):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPICookies.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPICookies.mm:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionControllerConfiguration.mm:
(TestWebKitAPI::TEST):
Canonical link: https://commits.webkit.org/273160@main
More information about the webkit-changes
mailing list