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;