[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