[webkit-changes] [WebKit/WebKit] 63c543: Notify WKNavigationDelegate when GPU process crash...
Ryosuke Niwa
noreply at github.com
Fri Aug 2 10:41:19 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 63c54304c7eab3891a8c2bb4c13a4d2d2dcd4db0
https://github.com/WebKit/WebKit/commit/63c54304c7eab3891a8c2bb4c13a4d2d2dcd4db0
Author: Ryosuke Niwa <rniwa at webkit.org>
Date: 2024-08-02 (Fri, 02 Aug 2024)
Changed paths:
M Source/WebKit/Shared/ProcessTerminationReason.cpp
M Source/WebKit/Shared/ProcessTerminationReason.h
M Source/WebKit/UIProcess/API/C/WKAPICast.h
M Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h
M Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm
M Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp
M Source/WebKit/UIProcess/Cocoa/NavigationState.mm
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M Tools/TestWebKitAPI/Tests/WebKit/NetworkProcessCrashWithPendingConnection.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WritingTools.mm
M Tools/TestWebKitAPI/Tests/ios/ActionSheetTests.mm
M Tools/TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm
M Tools/TestWebKitAPI/cocoa/TestNavigationDelegate.h
M Tools/TestWebKitAPI/cocoa/TestNavigationDelegate.mm
Log Message:
-----------
Notify WKNavigationDelegate when GPU process crashed too frequently
https://bugs.webkit.org/show_bug.cgi?id=277531
Reviewed by Wenson Hsieh.
Add _WKProcessTerminationReasonExceededSharedProcessCrashLimit as a process termination reason and use it when
GPU or model processes crashed too frequently and resulted in the termination of all web content processes.
* Source/WebKit/Shared/ProcessTerminationReason.cpp:
(WebKit::processTerminationReasonToString):
* Source/WebKit/Shared/ProcessTerminationReason.h:
* Source/WebKit/UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
* Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _terminateAllWebContentProcesses]):
* Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp:
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::wkProcessTerminationReason):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::gpuProcessExited):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::shouldReloadAfterProcessTermination):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::shouldReportAuxiliaryProcessCrash):
(WebKit::WebProcessPool::gpuProcessExited):
(WebKit::WebProcessPool::modelProcessExited):
(WebKit::WebProcessPool::terminateAllWebContentProcesses):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Tools/TestWebKitAPI/Tests/WebKit/NetworkProcessCrashWithPendingConnection.mm:
(TestWebKitAPI::TEST(WebKit, NetworkProcessCrashWithPendingConnection)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TestWebKitAPI::TEST(GPUProcess, WebProcessTerminationAfterTooManyGPUProcessCrashes)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:
(TEST(WebKit, LoadHTMLStringWithInvalidBaseURL)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:
(TestWebKitAPI::TEST(WebKit, LoadInvalidURLRequestNonASCII)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm:
(TEST(WebKit, TryUsingPrewarmedProcessThatJustCrashed)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
((ProcessSwap, UseWebProcessCacheAfterTermination)):
((ProcessSwap, ReloadRelatedWebViewAfterCrash)):
((ProcessSwap, TerminateProcessAfterProcessSwap)):
((ProcessSwap, CrashWithGestureController)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST(WKAttachmentTests, InvalidateAttachmentsAfterWebProcessTermination)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(TEST(WKNavigation, WebViewURLInProcessDidTerminate)):
(TEST(WKNavigation, WebProcessLimit)):
(TEST(WKNavigation, MultipleProcessCrashesRelatedWebViews)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WritingTools.mm:
(TEST(WritingTools, NoCrashWhenWebProcessTerminates)):
* Tools/TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
(TestWebKitAPI::TEST(ActionSheetTests, DISABLED_DismissingActionSheetShouldNotDismissPresentingViewController)):
* Tools/TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:
(TestWebKitAPI::TEST(ScrollViewInsetTests, RestoreInitialContentOffsetAfterCrash)):
* Tools/TestWebKitAPI/cocoa/TestNavigationDelegate.h:
* Tools/TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
(-[TestNavigationDelegate _webView:webContentProcessDidTerminateWithReason:]):
(-[TestNavigationDelegate waitForWebContentProcessDidTerminate]):
(-[WKWebView _test_waitForWebContentProcessDidTerminate]):
(-[TestNavigationDelegate webViewWebContentProcessDidTerminate:]): Deleted.
Canonical link: https://commits.webkit.org/281765@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