[webkit-changes] [WebKit/WebKit] 498d27: Add plumbing to raise Xcode issues when client-sid...
Wenson Hsieh
noreply at github.com
Tue Jan 3 19:09:03 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 498d27b7264195c8850d344b542b62f95946c211
https://github.com/WebKit/WebKit/commit/498d27b7264195c8850d344b542b62f95946c211
Author: Wenson Hsieh <wenson_hsieh at apple.com>
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
More information about the webkit-changes
mailing list