Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dcd3996be0e78cf7e553c70b8e83c9f4399602e3
      
https://github.com/WebKit/WebKit/commit/dcd3996be0e78cf7e553c70b8e83c9f4399602e3
  Author: Timothy Hatcher <[email protected]>
  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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to