Title: [254569] trunk/Source/WebKit
Revision
254569
Author
ddkil...@apple.com
Date
2020-01-15 08:18:17 -0800 (Wed, 15 Jan 2020)

Log Message

[Cocoa] Create a simulated crash log when the UI Process receives an invalid CoreIPC message
<https://webkit.org/b/205368>
<rdar://problem/58024593>

Reviewed by Chris Dumez.

* UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::logInvalidMessage):
- Extract common logging code to new method that calls
  RELEASE_LOG_FAULT().
* UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::logInvalidMessage):
(WebKit::AuxiliaryProcessProxy::processName):
- Add method declarations.

* UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didReceiveInvalidMessage):
- Use new AuxiliaryProcessProxy::logInvalidMessage().
* UIProcess/GPU/GPUProcessProxy.h:
(WebKit::GPUProcessProxy::processName const):
- Add implementation.

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
- Use new AuxiliaryProcessProxy::logInvalidMessage().
* UIProcess/Network/NetworkProcessProxy.h:
(WebKit::NetworkProcessProxy::processName const):
- Add implementation.

* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didReceiveInvalidMessage):
- Use new AuxiliaryProcessProxy::logInvalidMessage().
* UIProcess/Plugins/PluginProcessProxy.h:
(WebKit::PluginProcessProxy::processName const):
- Add implementation.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveInvalidMessage):
- Use new AuxiliaryProcessProxy::logInvalidMessage().
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::processName const):
- Add implementation.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (254568 => 254569)


--- trunk/Source/WebKit/ChangeLog	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/ChangeLog	2020-01-15 16:18:17 UTC (rev 254569)
@@ -1,3 +1,48 @@
+2020-01-15  David Kilzer  <ddkil...@apple.com>
+
+        [Cocoa] Create a simulated crash log when the UI Process receives an invalid CoreIPC message
+        <https://webkit.org/b/205368>
+        <rdar://problem/58024593>
+
+        Reviewed by Chris Dumez.
+
+        * UIProcess/AuxiliaryProcessProxy.cpp:
+        (WebKit::AuxiliaryProcessProxy::logInvalidMessage):
+        - Extract common logging code to new method that calls
+          RELEASE_LOG_FAULT().
+        * UIProcess/AuxiliaryProcessProxy.h:
+        (WebKit::AuxiliaryProcessProxy::logInvalidMessage):
+        (WebKit::AuxiliaryProcessProxy::processName):
+        - Add method declarations.
+
+        * UIProcess/GPU/GPUProcessProxy.cpp:
+        (WebKit::GPUProcessProxy::didReceiveInvalidMessage):
+        - Use new AuxiliaryProcessProxy::logInvalidMessage().
+        * UIProcess/GPU/GPUProcessProxy.h:
+        (WebKit::GPUProcessProxy::processName const):
+        - Add implementation.
+
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
+        - Use new AuxiliaryProcessProxy::logInvalidMessage().
+        * UIProcess/Network/NetworkProcessProxy.h:
+        (WebKit::NetworkProcessProxy::processName const):
+        - Add implementation.
+
+        * UIProcess/Plugins/PluginProcessProxy.cpp:
+        (WebKit::PluginProcessProxy::didReceiveInvalidMessage):
+        - Use new AuxiliaryProcessProxy::logInvalidMessage().
+        * UIProcess/Plugins/PluginProcessProxy.h:
+        (WebKit::PluginProcessProxy::processName const):
+        - Add implementation.
+
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::didReceiveInvalidMessage):
+        - Use new AuxiliaryProcessProxy::logInvalidMessage().
+        * UIProcess/WebProcessProxy.h:
+        (WebKit::WebProcessProxy::processName const):
+        - Add implementation.
+
 2020-01-15  youenn fablet  <you...@apple.com>
 
         Add support for MediaStream audio track rendering in GPUProcess

Modified: trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp	2020-01-15 16:18:17 UTC (rev 254569)
@@ -271,4 +271,9 @@
 {
 }
 
+void AuxiliaryProcessProxy::logInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
+{
+    RELEASE_LOG_FAULT(IPC, "Received an invalid message '%{public}s::%{public}s' from the %{public}s process.", messageReceiverName.toString().data(), messageName.toString().data(), processName().characters());
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h	2020-01-15 16:18:17 UTC (rev 254569)
@@ -118,7 +118,10 @@
 
     bool dispatchMessage(IPC::Connection&, IPC::Decoder&);
     bool dispatchSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
-    
+
+    void logInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName);
+    virtual ASCIILiteral processName() const = 0;
+
     virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&);
     virtual void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&) { };
 

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp	2020-01-15 16:18:17 UTC (rev 254569)
@@ -165,7 +165,7 @@
 
 void GPUProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
 {
-    WTFLogAlways("Received an invalid message \"%s.%s\" from the GPU process.\n", messageReceiverName.toString().data(), messageName.toString().data());
+    logInvalidMessage(connection, messageReceiverName, messageName);
 
     WebProcessPool::didReceiveInvalidMessage(messageReceiverName, messageName);
 

Modified: trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h	2020-01-15 16:18:17 UTC (rev 254569)
@@ -65,6 +65,8 @@
     ~GPUProcessProxy();
 
     // AuxiliaryProcessProxy
+    ASCIILiteral processName() const final { return "GPU"_s; }
+
     void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
     void connectionWillOpen(IPC::Connection&) override;
     void processWillShutDown(IPC::Connection&) override;

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2020-01-15 16:18:17 UTC (rev 254569)
@@ -311,8 +311,9 @@
     networkProcessCrashed();
 }
 
-void NetworkProcessProxy::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference)
+void NetworkProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
 {
+    logInvalidMessage(connection, messageReceiverName, messageName);
 }
 
 void NetworkProcessProxy::processAuthenticationChallenge(PAL::SessionID sessionID, Ref<AuthenticationChallengeProxy>&& authenticationChallenge)

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h	2020-01-15 16:18:17 UTC (rev 254569)
@@ -212,6 +212,8 @@
 
 private:
     // AuxiliaryProcessProxy
+    ASCIILiteral processName() const final { return "Networking"_s; }
+
     void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
     void connectionWillOpen(IPC::Connection&) override;
     void processWillShutDown(IPC::Connection&) override;

Modified: trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp	2020-01-15 16:18:17 UTC (rev 254569)
@@ -214,8 +214,9 @@
     pluginProcessCrashedOrFailedToLaunch();
 }
 
-void PluginProcessProxy::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference)
+void PluginProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
 {
+    logInvalidMessage(connection, messageReceiverName, messageName);
 }
 
 void PluginProcessProxy::didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier connectionIdentifier)

Modified: trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.h (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.h	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.h	2020-01-15 16:18:17 UTC (rev 254569)
@@ -90,6 +90,9 @@
 private:
     PluginProcessProxy(PluginProcessManager*, const PluginProcessAttributes&, uint64_t pluginProcessToken);
 
+    // AuxiliaryProcessProxy
+    ASCIILiteral processName() const final { return "Plugin"_s; }
+
     void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
     void platformGetLaunchOptionsWithAttributes(ProcessLauncher::LaunchOptions&, const PluginProcessAttributes&);
     void processWillShutDown(IPC::Connection&) override;

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2020-01-15 16:18:17 UTC (rev 254569)
@@ -806,11 +806,11 @@
 
 void WebProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
 {
-    WTFLogAlways("Received an invalid message \"%s.%s\" from the web process.\n", messageReceiverName.toString().data(), messageName.toString().data());
+    logInvalidMessage(connection, messageReceiverName, messageName);
 
     WebProcessPool::didReceiveInvalidMessage(messageReceiverName, messageName);
 
-    // Terminate the WebProcess.
+    // Terminate the WebContent process.
     terminate();
 
     // Since we've invalidated the connection we'll never get a IPC::Connection::Client::didClose

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (254568 => 254569)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2020-01-15 15:46:09 UTC (rev 254568)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2020-01-15 16:18:17 UTC (rev 254569)
@@ -354,6 +354,8 @@
     WebProcessProxy(WebProcessPool&, WebsiteDataStore*, IsPrewarmed);
 
     // AuxiliaryProcessProxy
+    ASCIILiteral processName() const final { return "WebContent"_s; }
+
     void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
     void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&) override;
     void connectionWillOpen(IPC::Connection&) override;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to