⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 254569 in webkit


Ignore:
Timestamp:
Jan 15, 2020, 8:18:17 AM (7 years ago)
Author:
ddkilzer@apple.com
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.
Location:
trunk/Source/WebKit
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r254562 r254569  
     12020-01-15  David Kilzer  <ddkilzer@apple.com>
     2
     3        [Cocoa] Create a simulated crash log when the UI Process receives an invalid CoreIPC message
     4        <https://webkit.org/b/205368>
     5        <rdar://problem/58024593>
     6
     7        Reviewed by Chris Dumez.
     8
     9        * UIProcess/AuxiliaryProcessProxy.cpp:
     10        (WebKit::AuxiliaryProcessProxy::logInvalidMessage):
     11        - Extract common logging code to new method that calls
     12          RELEASE_LOG_FAULT().
     13        * UIProcess/AuxiliaryProcessProxy.h:
     14        (WebKit::AuxiliaryProcessProxy::logInvalidMessage):
     15        (WebKit::AuxiliaryProcessProxy::processName):
     16        - Add method declarations.
     17
     18        * UIProcess/GPU/GPUProcessProxy.cpp:
     19        (WebKit::GPUProcessProxy::didReceiveInvalidMessage):
     20        - Use new AuxiliaryProcessProxy::logInvalidMessage().
     21        * UIProcess/GPU/GPUProcessProxy.h:
     22        (WebKit::GPUProcessProxy::processName const):
     23        - Add implementation.
     24
     25        * UIProcess/Network/NetworkProcessProxy.cpp:
     26        (WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
     27        - Use new AuxiliaryProcessProxy::logInvalidMessage().
     28        * UIProcess/Network/NetworkProcessProxy.h:
     29        (WebKit::NetworkProcessProxy::processName const):
     30        - Add implementation.
     31
     32        * UIProcess/Plugins/PluginProcessProxy.cpp:
     33        (WebKit::PluginProcessProxy::didReceiveInvalidMessage):
     34        - Use new AuxiliaryProcessProxy::logInvalidMessage().
     35        * UIProcess/Plugins/PluginProcessProxy.h:
     36        (WebKit::PluginProcessProxy::processName const):
     37        - Add implementation.
     38
     39        * UIProcess/WebProcessProxy.cpp:
     40        (WebKit::WebProcessProxy::didReceiveInvalidMessage):
     41        - Use new AuxiliaryProcessProxy::logInvalidMessage().
     42        * UIProcess/WebProcessProxy.h:
     43        (WebKit::WebProcessProxy::processName const):
     44        - Add implementation.
     45
    1462020-01-15  youenn fablet  <youenn@apple.com>
    247
  • trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp

    r253098 r254569  
    272272}
    273273
     274void AuxiliaryProcessProxy::logInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
     275{
     276    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());
     277}
     278
    274279} // namespace WebKit
  • trunk/Source/WebKit/UIProcess/AuxiliaryProcessProxy.h

    r251011 r254569  
    119119    bool dispatchMessage(IPC::Connection&, IPC::Decoder&);
    120120    bool dispatchSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
    121    
     121
     122    void logInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName);
     123    virtual ASCIILiteral processName() const = 0;
     124
    122125    virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&);
    123126    virtual void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&) { };
  • trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp

    r254392 r254569  
    166166void GPUProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
    167167{
    168     WTFLogAlways("Received an invalid message \"%s.%s\" from the GPU process.\n", messageReceiverName.toString().data(), messageName.toString().data());
     168    logInvalidMessage(connection, messageReceiverName, messageName);
    169169
    170170    WebProcessPool::didReceiveInvalidMessage(messageReceiverName, messageName);
  • trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.h

    r254392 r254569  
    6666
    6767    // AuxiliaryProcessProxy
     68    ASCIILiteral processName() const final { return "GPU"_s; }
     69
    6870    void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
    6971    void connectionWillOpen(IPC::Connection&) override;
  • trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp

    r254556 r254569  
    312312}
    313313
    314 void NetworkProcessProxy::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference)
    315 {
     314void NetworkProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
     315{
     316    logInvalidMessage(connection, messageReceiverName, messageName);
    316317}
    317318
  • trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h

    r254345 r254569  
    213213private:
    214214    // AuxiliaryProcessProxy
     215    ASCIILiteral processName() const final { return "Networking"_s; }
     216
    215217    void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
    216218    void connectionWillOpen(IPC::Connection&) override;
  • trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.cpp

    r251690 r254569  
    215215}
    216216
    217 void PluginProcessProxy::didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference, IPC::StringReference)
    218 {
     217void PluginProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
     218{
     219    logInvalidMessage(connection, messageReceiverName, messageName);
    219220}
    220221
  • trunk/Source/WebKit/UIProcess/Plugins/PluginProcessProxy.h

    r251445 r254569  
    9191    PluginProcessProxy(PluginProcessManager*, const PluginProcessAttributes&, uint64_t pluginProcessToken);
    9292
     93    // AuxiliaryProcessProxy
     94    ASCIILiteral processName() const final { return "Plugin"_s; }
     95
    9396    void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
    9497    void platformGetLaunchOptionsWithAttributes(ProcessLauncher::LaunchOptions&, const PluginProcessAttributes&);
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r254556 r254569  
    807807void WebProcessProxy::didReceiveInvalidMessage(IPC::Connection& connection, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
    808808{
    809     WTFLogAlways("Received an invalid message \"%s.%s\" from the web process.\n", messageReceiverName.toString().data(), messageName.toString().data());
     809    logInvalidMessage(connection, messageReceiverName, messageName);
    810810
    811811    WebProcessPool::didReceiveInvalidMessage(messageReceiverName, messageName);
    812812
    813     // Terminate the WebProcess.
     813    // Terminate the WebContent process.
    814814    terminate();
    815815
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.h

    r254556 r254569  
    355355
    356356    // AuxiliaryProcessProxy
     357    ASCIILiteral processName() const final { return "WebContent"_s; }
     358
    357359    void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
    358360    void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&) override;
Note: See TracChangeset for help on using the changeset viewer.