Title: [292912] trunk/Source/WebKit
Revision
292912
Author
[email protected]
Date
2022-04-15 10:23:23 -0700 (Fri, 15 Apr 2022)

Log Message

Use the ProcessTerminationReason enum for all the process types
https://bugs.webkit.org/show_bug.cgi?id=239372

Reviewed by Chris Dumez.

WebProcess, NetworkProcess and GPUProcess all had their own "termination reasons" enums.
Use ProcessTerminationReason for all of them (noting values that only apply to the web process).
Also provide a helper function to turn the reasons into a string.

* Shared/ProcessTerminationReason.cpp: Copied from Source/WebKit/Shared/ProcessTerminationReason.h.
(WebKit::processTerminationReasonToString):
* Shared/ProcessTerminationReason.h:
* Sources.txt:
* UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::wkProcessTerminationReason):
* UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::gpuProcessExited):
(WebKit::GPUProcessProxy::processIsReadyToExit):
(WebKit::GPUProcessProxy::didClose):
(WebKit::GPUProcessProxy::didFinishLaunching):
(WebKit::GPUProcessProxy::didBecomeUnresponsive):
* UIProcess/GPU/GPUProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::terminate):
(WebKit::NetworkProcessProxy::networkProcessDidTerminate):
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::didFinishLaunching):
(WebKit::NetworkProcessProxy::didExceedMemoryLimit):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::shouldReloadAfterProcessTermination):
(WebKit::WebPageProxy::gpuProcessExited):
(WebKit::processTerminationReasonToString): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::networkProcessDidTerminate):
(WebKit::WebProcessPool::gpuProcessExited):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::gpuProcessExited):
* UIProcess/WebProcessProxy.h:
* WebKit.xcodeproj/project.pbxproj:

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (292911 => 292912)


--- trunk/Source/WebKit/ChangeLog	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/ChangeLog	2022-04-15 17:23:23 UTC (rev 292912)
@@ -1,3 +1,50 @@
+2022-04-14  Simon Fraser  <[email protected]>
+
+        Use the ProcessTerminationReason enum for all the process types
+        https://bugs.webkit.org/show_bug.cgi?id=239372
+
+        Reviewed by Chris Dumez.
+
+        WebProcess, NetworkProcess and GPUProcess all had their own "termination reasons" enums.
+        Use ProcessTerminationReason for all of them (noting values that only apply to the web process).
+        Also provide a helper function to turn the reasons into a string.
+
+        * Shared/ProcessTerminationReason.cpp: Copied from Source/WebKit/Shared/ProcessTerminationReason.h.
+        (WebKit::processTerminationReasonToString):
+        * Shared/ProcessTerminationReason.h:
+        * Sources.txt:
+        * UIProcess/API/C/WKAPICast.h:
+        (WebKit::toAPI):
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::wkProcessTerminationReason):
+        * UIProcess/GPU/GPUProcessProxy.cpp:
+        (WebKit::GPUProcessProxy::gpuProcessExited):
+        (WebKit::GPUProcessProxy::processIsReadyToExit):
+        (WebKit::GPUProcessProxy::didClose):
+        (WebKit::GPUProcessProxy::didFinishLaunching):
+        (WebKit::GPUProcessProxy::didBecomeUnresponsive):
+        * UIProcess/GPU/GPUProcessProxy.h:
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::terminate):
+        (WebKit::NetworkProcessProxy::networkProcessDidTerminate):
+        (WebKit::NetworkProcessProxy::didClose):
+        (WebKit::NetworkProcessProxy::didFinishLaunching):
+        (WebKit::NetworkProcessProxy::didExceedMemoryLimit):
+        * UIProcess/Network/NetworkProcessProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::shouldReloadAfterProcessTermination):
+        (WebKit::WebPageProxy::gpuProcessExited):
+        (WebKit::processTerminationReasonToString): Deleted.
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::networkProcessDidTerminate):
+        (WebKit::WebProcessPool::gpuProcessExited):
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::gpuProcessExited):
+        * UIProcess/WebProcessProxy.h:
+        * WebKit.xcodeproj/project.pbxproj:
+
 2022-04-15  Youenn Fablet  <[email protected]>
 
         ServiceWorker.postMessage() doesn't work from inside iframe

Copied: trunk/Source/WebKit/Shared/ProcessTerminationReason.cpp (from rev 292911, trunk/Source/WebKit/Shared/ProcessTerminationReason.h) (0 => 292912)


--- trunk/Source/WebKit/Shared/ProcessTerminationReason.cpp	                        (rev 0)
+++ trunk/Source/WebKit/Shared/ProcessTerminationReason.cpp	2022-04-15 17:23:23 UTC (rev 292912)
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2022 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "ProcessTerminationReason.h"
+
+namespace WebKit {
+
+const char* processTerminationReasonToString(ProcessTerminationReason reason)
+{
+    switch (reason) {
+    case ProcessTerminationReason::ExceededMemoryLimit:
+        return "ExceededMemoryLimit";
+    case ProcessTerminationReason::ExceededCPULimit:
+        return "ExceededCPULimit";
+    case ProcessTerminationReason::RequestedByClient:
+        return "RequestedByClient";
+    case ProcessTerminationReason::IdleExit:
+        return "IdleExit";
+    case ProcessTerminationReason::Unresponsive:
+        return "Unresponsive";
+    case ProcessTerminationReason::Crash:
+        return "Crash";
+    case ProcessTerminationReason::ExceededProcessCountLimit:
+        return "ExceededProcessCountLimit";
+    case ProcessTerminationReason::NavigationSwap:
+        return "NavigationSwap";
+    case ProcessTerminationReason::RequestedByNetworkProcess:
+        return "RequestedByNetworkProcess";
+    case ProcessTerminationReason::RequestedByGPUProcess:
+        return "RequestedByGPUProcess";
+    }
+
+    return "";
+}
+
+}

Modified: trunk/Source/WebKit/Shared/ProcessTerminationReason.h (292911 => 292912)


--- trunk/Source/WebKit/Shared/ProcessTerminationReason.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/Shared/ProcessTerminationReason.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -30,18 +30,17 @@
 enum class ProcessTerminationReason {
     ExceededMemoryLimit,
     ExceededCPULimit,
-    ExceededProcessCountLimit,
     RequestedByClient,
+    IdleExit,
+    Unresponsive,
     Crash,
+    // Those below only relevant for the WebContent process.
+    ExceededProcessCountLimit,
     NavigationSwap,
     RequestedByNetworkProcess,
     RequestedByGPUProcess
 };
 
-enum class GPUProcessTerminationReason {
-    Crash,
-    IdleExit,
-    Unresponsive
-};
+const char* processTerminationReasonToString(ProcessTerminationReason);
 
 }

Modified: trunk/Source/WebKit/Sources.txt (292911 => 292912)


--- trunk/Source/WebKit/Sources.txt	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/Sources.txt	2022-04-15 17:23:23 UTC (rev 292912)
@@ -235,6 +235,7 @@
 Shared/PersistencyUtils.cpp
 Shared/PlatformPopupMenuData.cpp
 Shared/PrintInfo.cpp
+Shared/ProcessTerminationReason.cpp
 Shared/RTCNetwork.cpp
 Shared/RTCPacketOptions.cpp
 Shared/RemoteWorkerInitializationData.cpp

Modified: trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/API/C/WKAPICast.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -238,6 +238,7 @@
         return kWKProcessTerminationReasonExceededMemoryLimit;
     case ProcessTerminationReason::ExceededCPULimit:
         return kWKProcessTerminationReasonExceededCPULimit;
+    case ProcessTerminationReason::IdleExit:
     case ProcessTerminationReason::NavigationSwap:
         // We probably shouldn't bother coming up with a new C-API type for process-swapping.
         // "Requested by client" seems like the best match for existing types.
@@ -245,6 +246,7 @@
     case ProcessTerminationReason::RequestedByClient:
         return kWKProcessTerminationReasonRequestedByClient;
     case ProcessTerminationReason::ExceededProcessCountLimit:
+    case ProcessTerminationReason::Unresponsive:
     case ProcessTerminationReason::RequestedByNetworkProcess:
     case ProcessTerminationReason::RequestedByGPUProcess:
     case ProcessTerminationReason::Crash:

Modified: trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm	2022-04-15 17:23:23 UTC (rev 292912)
@@ -1057,6 +1057,7 @@
     case ProcessTerminationReason::ExceededCPULimit:
         return _WKProcessTerminationReasonExceededCPULimit;
     case ProcessTerminationReason::NavigationSwap:
+    case ProcessTerminationReason::IdleExit:
         // We probably shouldn't bother coming up with a new API type for process-swapping.
         // "Requested by client" seems like the best match for existing types.
         FALLTHROUGH;
@@ -1063,6 +1064,7 @@
     case ProcessTerminationReason::RequestedByClient:
         return _WKProcessTerminationReasonRequestedByClient;
     case ProcessTerminationReason::ExceededProcessCountLimit:
+    case ProcessTerminationReason::Unresponsive:
     case ProcessTerminationReason::RequestedByNetworkProcess:
     case ProcessTerminationReason::RequestedByGPUProcess:
     case ProcessTerminationReason::Crash:

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2022-04-15 17:23:23 UTC (rev 292912)
@@ -415,20 +415,25 @@
     }, 0, IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
 }
 
-void GPUProcessProxy::gpuProcessExited(GPUProcessTerminationReason reason)
+void GPUProcessProxy::gpuProcessExited(ProcessTerminationReason reason)
 {
     Ref protectedThis { *this };
 
     switch (reason) {
-    case GPUProcessTerminationReason::Crash:
-        RELEASE_LOG_ERROR(Process, "%p - GPUProcessProxy::gpuProcessExited: reason=crash", this);
+    case ProcessTerminationReason::ExceededMemoryLimit:
+    case ProcessTerminationReason::ExceededCPULimit:
+    case ProcessTerminationReason::RequestedByClient:
+    case ProcessTerminationReason::IdleExit:
+    case ProcessTerminationReason::Unresponsive:
+    case ProcessTerminationReason::Crash:
+        RELEASE_LOG_ERROR(Process, "%p - GPUProcessProxy::gpuProcessExited: reason=reason=%{public}s", this, processTerminationReasonToString(reason));
         break;
-    case GPUProcessTerminationReason::IdleExit:
-        RELEASE_LOG(Process, "%p - GPUProcessProxy::gpuProcessExited: reason=idle-exit", this);
+    case ProcessTerminationReason::ExceededProcessCountLimit:
+    case ProcessTerminationReason::NavigationSwap:
+    case ProcessTerminationReason::RequestedByNetworkProcess:
+    case ProcessTerminationReason::RequestedByGPUProcess:
+        ASSERT_NOT_REACHED();
         break;
-    case GPUProcessTerminationReason::Unresponsive:
-        RELEASE_LOG(Process, "%p - GPUProcessProxy::gpuProcessExited: reason=unresponsive", this);
-        break;
     }
 
     if (singleton() == this)
@@ -442,7 +447,7 @@
 {
     RELEASE_LOG(Process, "%p - GPUProcessProxy::processIsReadyToExit:", this);
     terminate();
-    gpuProcessExited(GPUProcessTerminationReason::IdleExit); // May cause |this| to get deleted.
+    gpuProcessExited(ProcessTerminationReason::IdleExit); // May cause |this| to get deleted.
 }
 
 void GPUProcessProxy::terminateForTesting()
@@ -458,7 +463,7 @@
 void GPUProcessProxy::didClose(IPC::Connection&)
 {
     RELEASE_LOG_ERROR(Process, "%p - GPUProcessProxy::didClose:", this);
-    gpuProcessExited(GPUProcessTerminationReason::Crash); // May cause |this| to get deleted.
+    gpuProcessExited(ProcessTerminationReason::Crash); // May cause |this| to get deleted.
 }
 
 void GPUProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::MessageName messageName)
@@ -480,7 +485,7 @@
     AuxiliaryProcessProxy::didFinishLaunching(launcher, connectionIdentifier);
 
     if (!IPC::Connection::identifierIsValid(connectionIdentifier)) {
-        gpuProcessExited(GPUProcessTerminationReason::Crash);
+        gpuProcessExited(ProcessTerminationReason::Crash);
         return;
     }
     
@@ -707,7 +712,7 @@
 {
     RELEASE_LOG_ERROR(Process, "GPUProcessProxy::didBecomeUnresponsive: GPUProcess with PID %d became unresponsive, terminating it", processIdentifier());
     terminate();
-    gpuProcessExited(GPUProcessTerminationReason::Unresponsive);
+    gpuProcessExited(ProcessTerminationReason::Unresponsive);
 }
 
 #if !PLATFORM(COCOA)

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -122,7 +122,7 @@
     void connectionWillOpen(IPC::Connection&) override;
     void processWillShutDown(IPC::Connection&) override;
 
-    void gpuProcessExited(GPUProcessTerminationReason);
+    void gpuProcessExited(ProcessTerminationReason);
 
     // ProcessThrottlerClient
     ASCIILiteral clientName() const final { return "GPUProcess"_s; }

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2022-04-15 17:23:23 UTC (rev 292912)
@@ -150,7 +150,7 @@
     AuxiliaryProcessProxy::terminate();
     if (auto* connection = this->connection())
         connection->invalidate();
-    networkProcessDidTerminate(TerminationReason::RequestedByClient);
+    networkProcessDidTerminate(ProcessTerminationReason::RequestedByClient);
 }
 
 void NetworkProcessProxy::didBecomeUnresponsive()
@@ -412,7 +412,7 @@
     sendWithAsyncReply(Messages::NetworkProcess::WebsiteDataOriginDirectoryForTesting(sessionID, WTFMove(origin), WTFMove(topOrigin), type), WTFMove(completionHandler));
 }
 
-void NetworkProcessProxy::networkProcessDidTerminate(TerminationReason reason)
+void NetworkProcessProxy::networkProcessDidTerminate(ProcessTerminationReason reason)
 {
     Ref protectedThis { *this };
 
@@ -461,7 +461,7 @@
 #endif
 
     // This will cause us to be deleted.
-    networkProcessDidTerminate(TerminationReason::Crash);
+    networkProcessDidTerminate(ProcessTerminationReason::Crash);
 }
 
 void NetworkProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::MessageName messageName)
@@ -551,7 +551,7 @@
     AuxiliaryProcessProxy::didFinishLaunching(launcher, connectionIdentifier);
 
     if (!IPC::Connection::identifierIsValid(connectionIdentifier)) {
-        networkProcessDidTerminate(TerminationReason::Crash);
+        networkProcessDidTerminate(ProcessTerminationReason::Crash);
         return;
     }
     
@@ -1742,7 +1742,7 @@
     AuxiliaryProcessProxy::terminate();
     if (auto* connection = this->connection())
         connection->invalidate();
-    networkProcessDidTerminate(TerminationReason::ExceededMemoryLimit);
+    networkProcessDidTerminate(ProcessTerminationReason::ExceededMemoryLimit);
 }
 #endif
 

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -91,6 +91,7 @@
 class WebPageProxy;
 class WebUserContentControllerProxy;
 
+enum class ProcessTerminationReason;
 enum class RemoteWorkerType : bool;
 enum class ShouldGrandfatherStatistics : bool;
 enum class StorageAccessStatus : uint8_t;
@@ -248,8 +249,7 @@
     void registerSchemeForLegacyCustomProtocol(const String&);
     void unregisterSchemeForLegacyCustomProtocol(const String&);
 
-    enum class TerminationReason { RequestedByClient, Crash, ExceededMemoryLimit };
-    void networkProcessDidTerminate(TerminationReason);
+    void networkProcessDidTerminate(ProcessTerminationReason);
     
     void resetQuota(PAL::SessionID, CompletionHandler<void()>&&);
     void clearStorage(PAL::SessionID, CompletionHandler<void()>&&);

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp	2022-04-15 17:23:23 UTC (rev 292912)
@@ -7950,9 +7950,11 @@
     case ProcessTerminationReason::RequestedByNetworkProcess:
     case ProcessTerminationReason::RequestedByGPUProcess:
     case ProcessTerminationReason::Crash:
+    case ProcessTerminationReason::Unresponsive:
         return true;
     case ProcessTerminationReason::ExceededProcessCountLimit:
     case ProcessTerminationReason::NavigationSwap:
+    case ProcessTerminationReason::IdleExit:
     case ProcessTerminationReason::RequestedByClient:
         break;
     }
@@ -7959,29 +7961,6 @@
     return false;
 }
 
-static const char* processTerminationReasonToString(ProcessTerminationReason reason)
-{
-    switch (reason) {
-    case ProcessTerminationReason::ExceededMemoryLimit:
-        return "ExceededMemoryLimit";
-    case ProcessTerminationReason::ExceededCPULimit:
-        return "ExceededCPULimit";
-    case ProcessTerminationReason::RequestedByNetworkProcess:
-        return "RequestedByNetworkProcess";
-    case ProcessTerminationReason::RequestedByGPUProcess:
-        return "RequestedByGPUProcess";
-    case ProcessTerminationReason::ExceededProcessCountLimit:
-        return "ExceededProcessCountLimit";
-    case ProcessTerminationReason::NavigationSwap:
-        return "NavigationSwap";
-    case ProcessTerminationReason::RequestedByClient:
-        return "RequestedByClient";
-    case ProcessTerminationReason::Crash:
-        break;
-    }
-    return "Crash";
-}
-
 void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason)
 {
     WEBPAGEPROXY_RELEASE_LOG_ERROR(Loading, "dispatchProcessDidTerminate: reason=%{public}s", processTerminationReasonToString(reason));
@@ -11020,7 +10999,7 @@
     pageClient().gpuProcessDidFinishLaunching();
 }
 
-void WebPageProxy::gpuProcessExited(GPUProcessTerminationReason)
+void WebPageProxy::gpuProcessExited(ProcessTerminationReason)
 {
 #if HAVE(VISIBILITY_PROPAGATION_VIEW)
     m_contextIDForVisibilityPropagationInGPUProcess = 0;

Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/WebPageProxy.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -1333,7 +1333,7 @@
 
 #if ENABLE(GPU_PROCESS)
     void gpuProcessDidFinishLaunching();
-    void gpuProcessExited(GPUProcessTerminationReason);
+    void gpuProcessExited(ProcessTerminationReason);
 #endif
 
     virtual void enterAcceleratedCompositingMode(const LayerTreeContext&);

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2022-04-15 17:23:23 UTC (rev 292912)
@@ -428,9 +428,9 @@
 #endif
 }
 
-void WebProcessPool::networkProcessDidTerminate(NetworkProcessProxy& networkProcessProxy, NetworkProcessProxy::TerminationReason reason)
+void WebProcessPool::networkProcessDidTerminate(NetworkProcessProxy& networkProcessProxy, ProcessTerminationReason reason)
 {
-    if (reason == NetworkProcessProxy::TerminationReason::Crash)
+    if (reason == ProcessTerminationReason::Crash)
         m_client.networkProcessDidCrash(this);
 
     if (m_automationSession)
@@ -466,12 +466,12 @@
         process->gpuProcessDidFinishLaunching();
 }
 
-void WebProcessPool::gpuProcessExited(ProcessID identifier, GPUProcessTerminationReason reason)
+void WebProcessPool::gpuProcessExited(ProcessID identifier, ProcessTerminationReason reason)
 {
-    WEBPROCESSPOOL_RELEASE_LOG(Process, "gpuProcessDidExit: PID=%d, reason=%u", identifier, static_cast<unsigned>(reason));
+    WEBPROCESSPOOL_RELEASE_LOG(Process, "gpuProcessDidExit: PID=%d, reason=reason=%{public}s", identifier, processTerminationReasonToString(reason));
     m_gpuProcess = nullptr;
 
-    if (reason == GPUProcessTerminationReason::Crash || reason == GPUProcessTerminationReason::Unresponsive)
+    if (reason == ProcessTerminationReason::Crash || reason == ProcessTerminationReason::Unresponsive)
         m_client.gpuProcessDidCrash(this, identifier);
 
     Vector<Ref<WebProcessProxy>> processes = m_processes;
@@ -478,7 +478,7 @@
     for (auto& process : processes)
         process->gpuProcessExited(reason);
 
-    if (reason == GPUProcessTerminationReason::Crash || reason == GPUProcessTerminationReason::Unresponsive) {
+    if (reason == ProcessTerminationReason::Crash || reason == ProcessTerminationReason::Unresponsive) {
         if (++m_recentGPUProcessCrashCount > maximumGPUProcessRelaunchAttemptsBeforeKillingWebProcesses) {
             WEBPROCESSPOOL_RELEASE_LOG_ERROR(Process, "gpuProcessDidExit: GPU Process has crashed more than %u times in the last %g seconds, terminating all WebProcesses", maximumGPUProcessRelaunchAttemptsBeforeKillingWebProcesses, resetGPUProcessCrashCountDelay.seconds());
             m_resetGPUProcessCrashCountTimer.stop();

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -361,7 +361,7 @@
 
 #if ENABLE(GPU_PROCESS)
     void gpuProcessDidFinishLaunching(ProcessID);
-    void gpuProcessExited(ProcessID, GPUProcessTerminationReason);
+    void gpuProcessExited(ProcessID, ProcessTerminationReason);
 
     void getGPUProcessConnection(WebProcessProxy&, GPUProcessConnectionParameters&&, Messages::WebProcessProxy::GetGPUProcessConnectionDelayedReply&&);
 
@@ -369,7 +369,7 @@
     GPUProcessProxy* gpuProcess() const { return m_gpuProcess.get(); }
 #endif
     // Network Process Management
-    void networkProcessDidTerminate(NetworkProcessProxy&, NetworkProcessProxy::TerminationReason);
+    void networkProcessDidTerminate(NetworkProcessProxy&, ProcessTerminationReason);
 
     bool isServiceWorkerPageID(WebPageProxyIdentifier) const;
     void removeFromRemoteWorkerProcesses(WebProcessProxy&);

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2022-04-15 17:23:23 UTC (rev 292912)
@@ -830,9 +830,9 @@
         page->gpuProcessDidFinishLaunching();
 }
 
-void WebProcessProxy::gpuProcessExited(GPUProcessTerminationReason reason)
+void WebProcessProxy::gpuProcessExited(ProcessTerminationReason reason)
 {
-    if (reason == GPUProcessTerminationReason::IdleExit)
+    if (reason == ProcessTerminationReason::IdleExit)
         WEBPROCESSPROXY_RELEASE_LOG(Process, "gpuProcessExited: reason=idle-exit");
     else
         WEBPROCESSPROXY_RELEASE_LOG_ERROR(Process, "gpuProcessExited: reason=%u", static_cast<unsigned>(reason));

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (292911 => 292912)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2022-04-15 17:23:23 UTC (rev 292912)
@@ -383,7 +383,7 @@
 
 #if ENABLE(GPU_PROCESS)
     void gpuProcessDidFinishLaunching();
-    void gpuProcessExited(GPUProcessTerminationReason);
+    void gpuProcessExited(ProcessTerminationReason);
 #endif
 
     bool hasSleepDisabler() const;

Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (292911 => 292912)


--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2022-04-15 17:11:58 UTC (rev 292911)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj	2022-04-15 17:23:23 UTC (rev 292912)
@@ -2936,6 +2936,7 @@
 		0FDCD7F61D47E92A009F08BC /* LogInitialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogInitialization.h; sourceTree = "<group>"; };
 		0FE27FAE2714FC150003AAAE /* TiledCoreAnimationScrollingCoordinator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TiledCoreAnimationScrollingCoordinator.h; sourceTree = "<group>"; };
 		0FE27FAF2714FC150003AAAE /* TiledCoreAnimationScrollingCoordinator.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = TiledCoreAnimationScrollingCoordinator.mm; sourceTree = "<group>"; };
+		0FEC6E05280915CF008082AC /* ProcessTerminationReason.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ProcessTerminationReason.cpp; sourceTree = "<group>"; };
 		0FF24A2B1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp; path = DerivedSources/WebKit/RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
 		0FF24A2B1879E4BC003ABF0D /* RemoteCaptureSampleManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteCaptureSampleManagerMessageReceiver.cpp; path = DerivedSources/WebKit/RemoteCaptureSampleManagerMessageReceiver.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
 		0FF24A2C1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteLayerTreeDrawingAreaProxyMessages.h; path = DerivedSources/WebKit/RemoteLayerTreeDrawingAreaProxyMessages.h; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -7893,6 +7894,7 @@
 				E18C92F312DB9E7100CF2AEB /* PrintInfo.cpp */,
 				E1CC1B8E12D7EADF00625838 /* PrintInfo.h */,
 				5C05FDF227AB4FA5003A2487 /* PrivateRelayed.h */,
+				0FEC6E05280915CF008082AC /* ProcessTerminationReason.cpp */,
 				463FD4811EB94EAD00A2982C /* ProcessTerminationReason.h */,
 				517B5F94275EBA62002DC22D /* PushMessageForTesting.h */,
 				9B1229D023FF2A5E008CA751 /* RemoteAudioDestinationIdentifier.h */,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to