Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 9e19f52c9a059de81e3d8cdd039e38772f955c8f
https://github.com/WebKit/WebKit/commit/9e19f52c9a059de81e3d8cdd039e38772f955c8f
Author: Brady Eidson <[email protected]>
Date: 2026-06-25 (Thu, 25 Jun 2026)
Changed paths:
M Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in
M Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.h
M Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.mm
M Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.serialization.in
M Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKURLSchemeHandler-1.mm
Log Message:
-----------
App-provided NSURLRequest properties are lost
rdar://180635166
https://bugs.webkit.org/show_bug.cgi?id=317872
Reviewed by Alex Christensen.
In IPC hardening, we prevented app-provided NSURLRequest properties from
serializing.
Setting such properties is well established and supported API, so let's restore
it.
In the spirit of the original hardening, we still prevent app-provided
properties from
overriding keys that are likely to be Apple internally used.
These properties are for setting small bits of metadata, and not moving blobs
around.
So we also restrict the value types to simple ones, as well as the size of the
values
Tests: Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKURLSchemeHandler-1.mm
* Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in:
* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.h:
* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.mm:
(WebKit::isReservedProtocolPropertyKeyPrefix):
(WebKit::isTypedAllowlistKey):
(WebKit::populateAppProperties):
(WebKit::CoreIPCNSURLRequest::CoreIPCNSURLRequest):
(WebKit::CoreIPCNSURLRequest::toID const):
* Source/WebKit/Shared/Cocoa/CoreIPCNSURLRequest.serialization.in:
* Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm:
(TEST(IPCSerialization, NSURLRequestArbitraryAppProperties)):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKURLSchemeHandler-1.mm:
(TEST(URLSchemeHandler, RequestProtocolPropertyPreserved)):
Canonical link: https://commits.webkit.org/315856@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications