Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 74c69a414754f0f9341f472fefcb5ad3c95ba1eb
      
https://github.com/WebKit/WebKit/commit/74c69a414754f0f9341f472fefcb5ad3c95ba1eb
  Author: Simon Lewis <[email protected]>
  Date:   2026-09-30 (Wed, 30 Sep 2026)

  Changed paths:
    M 
LayoutTests/http/tests/ipc/webpageproxy-didfailload-failingurl-message-check.html
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCError.h
    M Source/WebKit/Shared/Cocoa/CoreIPCError.mm
    M Source/WebKit/Shared/Cocoa/CoreIPCError.serialization.in
    M Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/NetworkProcess.mm

  Log Message:
  -----------
  Update Serialization for CoreIPCError to have additional members
<https://bugs.webkit.org/show_bug.cgi?id=312235>
<rdar://164660765>

Reviewed by Abrar Rahman Protyasha.

Serialize `networkResolutionReport` in `CoreIPCError` so Safari can
show the blocked/censored/filtered DNS error page.  302861@main moved
`CoreIPCError` to an explicit allowlist of userInfo keys and dropped
this key, so the UI process always fell back to the generic "can't find
the server" page.  The report is decomposed into typed fields rather
than sent as an opaque dictionary, and rebuilt as the same dictionary
shape in `toID()` so the existing consumer is unaffected.

Also stop `extractResolutionReport()` from discarding the report when
`_NSURLErrorNWPathKey` does not hold an `nw_path_t`.  Network can hand
back a Swift `NWPath` for that key, which fails the `nw_path_t` cast,
so the report was never attached even before it reached IPC.  The path
only supplies the interface list, which is optional for the consumer.

Tests: Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm
       Tools/TestWebKitAPI/Tests/WebKit/WKWebView/NetworkProcess.mm

* 
LayoutTests/http/tests/ipc/webpageproxy-didfailload-failingurl-message-check.html:
- Encode the new `CoreIPCError` member in the hand-built message.
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(extractResolutionReport):
* Source/WebKit/Shared/Cocoa/CoreIPCError.h:
(WebKit::CoreIPCError::CoreIPCError):
* Source/WebKit/Shared/Cocoa/CoreIPCError.mm:
(WebKit::CoreIPCError::toID const):
(WebKit::CoreIPCError::CoreIPCError):
* Source/WebKit/Shared/Cocoa/CoreIPCError.serialization.in:
* Tools/TestWebKitAPI/Tests/IPC/IPCSerialization.mm:
(TestWebKitAPI::TEST(IPCSerialization, NSErrorNetworkResolutionReport)):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/NetworkProcess.mm:
(TEST(NetworkProcess, NavigationErrorIncludesNetworkResolutionReport)): Add.
- Load a `.invalid` host end to end and check the navigation error
  still carries the report after crossing IPC.

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



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

Reply via email to