diff options
author | rbyers@chromium.org <rbyers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 20:08:09 +0000 |
---|---|---|
committer | rbyers@chromium.org <rbyers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 20:08:09 +0000 |
commit | acd64fe157eba6e1e3aa83902547cf9074ffb58e (patch) | |
tree | 769a30bd9f3a087a1a4a074c0c7694bb8754c4eb /ipc/ipc_channel_proxy.cc | |
parent | bc1b18ecfc890dde4aae0a5a5db27dde2796b25e (diff) | |
download | chromium_src-acd64fe157eba6e1e3aa83902547cf9074ffb58e.zip chromium_src-acd64fe157eba6e1e3aa83902547cf9074ffb58e.tar.gz chromium_src-acd64fe157eba6e1e3aa83902547cf9074ffb58e.tar.bz2 |
Simple trace logging of received IPC messages
Adds an entry to chrome://tracing for processing IPC messages that includes either the IPC message type ID (which can be matched to a name with the ipclist tool), or in DEBUG builds (or other builds where IPC_MESSAGE_LOG_ENABLED has been set), the message name.
Also updates ipclist to not expect to see content shell messages, and clarifies some comments around cases where message classes are used entirely outside of chrome itself.
Identical re-submit of http://codereview.chromium.org/9389020/ which somehow
triggered a Windows linker bug (unexpected error LNK1000).
BUG=79942
TBR=jam@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9360052
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121921 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_channel_proxy.cc')
-rw-r--r-- | ipc/ipc_channel_proxy.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ipc/ipc_channel_proxy.cc b/ipc/ipc_channel_proxy.cc index f542eae..2e8c9b3 100644 --- a/ipc/ipc_channel_proxy.cc +++ b/ipc/ipc_channel_proxy.cc @@ -4,6 +4,7 @@ #include "base/bind.h" #include "base/compiler_specific.h" +#include "base/debug/trace_event.h" #include "base/location.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" @@ -238,13 +239,23 @@ void ChannelProxy::Context::AddFilter(MessageFilter* filter) { // Called on the listener's thread void ChannelProxy::Context::OnDispatchMessage(const Message& message) { +#ifdef IPC_MESSAGE_LOG_ENABLED + Logging* logger = Logging::GetInstance(); + std::string name; + logger->GetMessageText(message.type(), &name, &message, NULL); + TRACE_EVENT1("task", "ChannelProxy::Context::OnDispatchMessage", + "name", name); +#else + TRACE_EVENT1("task", "ChannelProxy::Context::OnDispatchMessage", + "type", message.type()); +#endif + if (!listener_) return; OnDispatchConnected(); #ifdef IPC_MESSAGE_LOG_ENABLED - Logging* logger = Logging::GetInstance(); if (message.type() == IPC_LOGGING_ID) { logger->OnReceivedLoggingMessage(message); return; |