[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