[webkit-changes] [WebKit/WebKit] dcd399: Add support for extraInfoSpec to webRequest event ...

Timothy Hatcher noreply at github.com
Wed Jan 15 08:39:07 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dcd3996be0e78cf7e553c70b8e83c9f4399602e3
      https://github.com/WebKit/WebKit/commit/dcd3996be0e78cf7e553c70b8e83c9f4399602e3
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2025-01-15 (Wed, 15 Jan 2025)

  Changed paths:
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestEventCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h
    M Source/WebKit/WebProcess/Extensions/Bindings/Cocoa/JSWebExtensionWrapperCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm

  Log Message:
  -----------
  Add support for extraInfoSpec to webRequest event listeners.
https://webkit.org/b/285940
rdar://problem/142907168

Reviewed by Brian Weinstein.

Add support for the extraInfoSpec array on webRequest event listeners for requestBody, requestHeaders
and responseHeaders. This allows us to avoid some extra work per-request if the extension does not
require these extra fields, which can be large and expensive to create.

Also use string constants for the webRequest properties.

Updated tests and added new ones to verify the info is and is not there when expected.

* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestCocoa.mm:
(WebKit::toWebAPI):
(WebKit::webRequestDetailsForResourceLoad):
(WebKit::convertHeaderFieldsToWebExtensionFormat):
(WebKit::headersReceivedDetails):
(WebKit::WebExtensionContextProxy::resourceLoadDidSendRequest):
(WebKit::WebExtensionContextProxy::resourceLoadDidPerformHTTPRedirection):
(WebKit::WebExtensionContextProxy::resourceLoadDidReceiveChallenge):
(WebKit::WebExtensionContextProxy::resourceLoadDidReceiveResponse):
(WebKit::WebExtensionContextProxy::resourceLoadDidCompleteWithError):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestEventCocoa.mm:
(WebKit::WebExtensionAPIWebRequestEvent::enumerateListeners):
(WebKit::WebExtensionAPIWebRequestEvent::invokeListenersWithArgument):
(WebKit::WebExtensionAPIWebRequestEvent::addListener):
(WebKit::WebExtensionAPIWebRequestEvent::removeListener):
(WebKit::WebExtensionAPIWebRequestEvent::hasListener):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h:
* Source/WebKit/WebProcess/Extensions/Bindings/Cocoa/JSWebExtensionWrapperCocoa.mm:
(WebKit::toNSArray): Cast to NSArray, since the result of toNSObject can be any object.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEvent)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEventForSubresource)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEventWithRequestBodyAndFormData)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeSendHeadersEvent)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeSendHeadersEventWithRequestHeaders)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeSendHeadersEventForSubresource)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, SendHeadersEvent)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, SendHeadersEventWithRequestHeaders)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, SendHeadersEventForSubresource)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, HeadersReceivedEvent)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, HeadersReceivedEventWithResponseHeaders)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, HeadersReceivedEventForSubresource)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, ErrorOccurredEvent)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, RedirectOccurredEvent)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, RedirectOccurredEventForSubresource)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, ResponseStartedEvent)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, ResponseStartedEventWithResponseHeaders)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, ResponseStartedEventForSubresource)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, CompletedEvent)):
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, CompletedEventWithResponseHeaders)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, CompletedEventForSubresource)):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list