Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 498d27b7264195c8850d344b542b62f95946c211
      
https://github.com/WebKit/WebKit/commit/498d27b7264195c8850d344b542b62f95946c211
  Author: Wenson Hsieh <[email protected]>
  Date:   2023-01-03 (Tue, 03 Jan 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h
    M Source/WebKit/NetworkProcess/NetworkSession.cpp
    M Source/WebKit/NetworkProcess/NetworkSession.h
    M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
    M Source/WebKit/Platform/SourcesCocoa.txt
    A Source/WebKit/Platform/cocoa/NetworkIssueReporter.h
    A Source/WebKit/Platform/cocoa/NetworkIssueReporter.mm
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Add plumbing to raise Xcode issues when client-side network issues are 
detected
https://bugs.webkit.org/show_bug.cgi?id=249897
rdar://102778314

Reviewed by Tim Horton.

Raise an Xcode issue when certain network activity is observed 
(`NetworkIssueReporter::shouldReport`
returns `true`).

* Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::reportNetworkIssue):

If `NetworkIssueReporter::shouldReport` returned `true`, send an IPC message to 
the UI process, with
the request URL.

* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):

Consult `NetworkIssueReporter::shouldReport` upon receiving a request response.

* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::configurationForSessionID):

Unconditionally set `_skipsStackTraceCapture` to `YES`, for WebKit. Regardless 
of whether or not
we're actively running in Xcode (and network issue reporting is 
runtime-enabled), it's never
necessary to surface stack traces in the WebKit network process to developers.

* Source/WebKit/Platform/SourcesCocoa.txt:
* Source/WebKit/Platform/cocoa/NetworkIssueReporter.h: Added.
* Source/WebKit/Platform/cocoa/NetworkIssueReporter.mm: Added.
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::reportNetworkIssue):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::prepareToLoadWebPage):

Add a new helper method that adds platform data to a given load parameters, and 
also creates a new
network issue reporter if needed. See below for call sites.

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadSimulatedRequest):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):

Change several call sites of `addPlatformLoadParameters` to use 
`prepareToLoadWebPage` instead,
which additionally creates a new network issue reporter if needed when 
triggwering navigation via
API.

(WebKit::WebPageProxy::reportNetworkIssue):

Report the incoming issue if the page's `NetworkIssueReporter` has been created.

* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:%

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to