[webkit-changes] [WebKit/WebKit] e06024: Add support for requestBody to webRequest.onBefore...
Timothy Hatcher
noreply at github.com
Mon Jan 13 12:18:36 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e06024877fb21a6b7c7604fedd662d5fe9a249ed
https://github.com/WebKit/WebKit/commit/e06024877fb21a6b7c7604fedd662d5fe9a249ed
Author: Timothy Hatcher <timothy at apple.com>
Date: 2025-01-13 (Mon, 13 Jan 2025)
Changed paths:
M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
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/WebExtensionContextProxy.h
M Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm
Log Message:
-----------
Add support for requestBody to webRequest.onBeforeRequest.
https://webkit.org/b/285796
rdar://140338580
Reviewed by Brian Weinstein.
The `requestBody` property has never been supported correctly (it was missing the `formData` object).
This stopped working altogether when moved to `WebCore::ResourceRequest`, because the HTTP body
is not serialized with the request.
Fix this by sending `IPC::FormDataReference` as well, and parse the data with `URLParser` to build
the `formData` object key-value pairs. Also add support for the `raw` array with `TypedArray` values.
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::resourceLoadDidSendRequest):
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestCocoa.mm:
(WebKit::toWebAPI): Added.
(WebKit::WebExtensionContextProxy::resourceLoadDidSendRequest):
(WebKit::convertRequestBodyToWebExtensionFormat): Deleted.
* Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWebRequestEventCocoa.mm:
(WebKit::WebExtensionAPIWebRequestEvent::enumerateListeners):
(WebKit::WebExtensionAPIWebRequestEvent::invokeListenersWithArgument):
* Source/WebKit/WebProcess/Extensions/API/WebExtensionAPIWebRequestEvent.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.h:
* Source/WebKit/WebProcess/Extensions/WebExtensionContextProxy.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIWebRequest.mm:
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEventWithRequestBodyAndFormData)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEventWithRequestBodyAndBlob)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEventWithRequestBodyAndJSON)): Added.
(TestWebKitAPI::TEST(WKWebExtensionAPIWebRequest, BeforeRequestEventWithRequestBodyAndForm)): Added.
Canonical link: https://commits.webkit.org/288813@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