Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (277532 => 277533)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2021-05-15 04:59:10 UTC (rev 277532)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2021-05-15 05:02:06 UTC (rev 277533)
@@ -468,13 +468,13 @@
nullptr, // renderingProgressDidChange
canAuthenticateAgainstProtectionSpace,
didReceiveAuthenticationChallenge,
- processDidCrash,
+ nullptr, // webProcessDidCrash
copyWebCryptoMasterKey,
didBeginNavigationGesture,
willEndNavigationGesture,
didEndNavigationGesture,
didRemoveNavigationGestureSnapshot,
- nullptr, // webProcessDidTerminate
+ webProcessDidTerminate, // webProcessDidTerminate
nullptr, // contentRuleListNotification
copySignedPublicKeyAndChallengeString,
navigationActionDidBecomeDownload,
@@ -810,13 +810,13 @@
nullptr, // renderingProgressDidChange
canAuthenticateAgainstProtectionSpace,
didReceiveAuthenticationChallenge,
- processDidCrash,
+ nullptr,
copyWebCryptoMasterKey,
didBeginNavigationGesture,
willEndNavigationGesture,
didEndNavigationGesture,
didRemoveNavigationGestureSnapshot,
- nullptr, // webProcessDidTerminate
+ webProcessDidTerminate, // webProcessDidTerminate
nullptr, // contentRuleListNotification
copySignedPublicKeyAndChallengeString,
navigationActionDidBecomeDownload,
@@ -1862,9 +1862,9 @@
static_cast<TestController*>(const_cast<void*>(clientInfo))->didReceiveAuthenticationChallenge(page, /*frame,*/ authenticationChallenge);
}
-void TestController::processDidCrash(WKPageRef page, const void* clientInfo)
+void TestController::webProcessDidTerminate(WKPageRef page, WKProcessTerminationReason reason, const void* clientInfo)
{
- static_cast<TestController*>(const_cast<void*>(clientInfo))->processDidCrash();
+ static_cast<TestController*>(const_cast<void*>(clientInfo))->webProcessDidTerminate(reason);
}
void TestController::didBeginNavigationGesture(WKPageRef page, const void *clientInfo)
@@ -2154,12 +2154,35 @@
static_cast<TestController*>(const_cast<void*>(clientInfo))->didReceiveAuthenticationChallenge(nullptr, authenticationChallenge);
}
-void TestController::processDidCrash()
+void TestController::webProcessDidTerminate(WKProcessTerminationReason reason)
{
// This function can be called multiple times when crash logs are being saved on Windows, so
// ensure we only print the crashed message once.
if (!m_didPrintWebProcessCrashedMessage) {
pid_t pid = WKPageGetProcessIdentifier(m_mainWebView->page());
+ fprintf(stderr, "%s terminated (pid %ld) ", webProcessName(), static_cast<long>(pid));
+ switch (reason) {
+ case kWKProcessTerminationReasonExceededMemoryLimit:
+ fprintf(stderr, "because the memory limit was exceeded\n");
+ break;
+ case kWKProcessTerminationReasonExceededCPULimit:
+ fprintf(stderr, "because the cpu limit was exceeded\n");
+ break;
+ case kWKProcessTerminationReasonRequestedByClient:
+ fprintf(stderr, "because the client requested\n");
+ break;
+ case kWKProcessTerminationReasonCrash:
+ fprintf(stderr, "because the process crashed\n");
+ break;
+ default:
+ fprintf(stderr, "for an unknown reason\n");
+ }
+
+ if (reason == kWKProcessTerminationReasonRequestedByClient) {
+ fflush(stderr);
+ return;
+ }
+
fprintf(stderr, "#CRASHED - %s (pid %ld)\n", webProcessName(), static_cast<long>(pid));
fflush(stderr);
m_didPrintWebProcessCrashedMessage = true;
Modified: trunk/Tools/WebKitTestRunner/TestController.h (277532 => 277533)
--- trunk/Tools/WebKitTestRunner/TestController.h 2021-05-15 04:59:10 UTC (rev 277532)
+++ trunk/Tools/WebKitTestRunner/TestController.h 2021-05-15 05:02:06 UTC (rev 277533)
@@ -469,8 +469,8 @@
bool downloadDidReceiveServerRedirectToURL(WKDownloadRef, WKURLRequestRef);
static void downloadDidReceiveAuthenticationChallenge(WKDownloadRef, WKAuthenticationChallengeRef, const void *clientInfo);
- static void processDidCrash(WKPageRef, const void* clientInfo);
- void processDidCrash();
+ static void webProcessDidTerminate(WKPageRef, WKProcessTerminationReason, const void* clientInfo);
+ void webProcessDidTerminate(WKProcessTerminationReason);
static void didBeginNavigationGesture(WKPageRef, const void*);
static void willEndNavigationGesture(WKPageRef, WKBackForwardListItemRef, const void*);