| Index: content/browser/content_ipc_logging.cc
|
| ===================================================================
|
| --- content/browser/content_ipc_logging.cc (revision 0)
|
| +++ content/browser/content_ipc_logging.cc (revision 0)
|
| @@ -0,0 +1,51 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "content/public/browser/content_ipc_logging.h"
|
| +
|
| +#include "base/bind.h"
|
| +#include "content/browser/browser_child_process_host.h"
|
| +#include "content/common/child_process_messages.h"
|
| +#include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/render_process_host.h"
|
| +#include "ipc/ipc_logging.h"
|
| +
|
| +namespace content {
|
| +
|
| +#if defined(IPC_MESSAGE_LOG_ENABLED)
|
| +
|
| +void EnableIPCLoggingForChildProcesses(bool enabled) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| +
|
| + BrowserChildProcessHost::Iterator i; // default constr references a singleton
|
| + while (!i.Done()) {
|
| + i->Send(new ChildProcessMsg_SetIPCLoggingEnabled(enabled));
|
| + ++i;
|
| + }
|
| +}
|
| +
|
| +void EnableIPCLogging(bool enable) {
|
| + // First enable myself.
|
| + if (enable)
|
| + IPC::Logging::GetInstance()->Enable();
|
| + else
|
| + IPC::Logging::GetInstance()->Disable();
|
| +
|
| + // Now tell subprocesses. Messages to ChildProcess-derived
|
| + // processes must be done on the IO thread.
|
| + BrowserThread::PostTask(
|
| + BrowserThread::IO,
|
| + FROM_HERE,
|
| + base::Bind(EnableIPCLoggingForChildProcesses, enable));
|
| +
|
| + // Finally, tell the renderers which don't derive from ChildProcess.
|
| + // Messages to the renderers must be done on the UI (main) thread.
|
| + for (RenderProcessHost::iterator i(RenderProcessHost::AllHostsIterator());
|
| + !i.IsAtEnd(); i.Advance())
|
| + i.GetCurrentValue()->Send(new ChildProcessMsg_SetIPCLoggingEnabled(enable));
|
| +}
|
| +
|
| +#endif // IPC_MESSAGE_LOG_ENABLED
|
| +
|
| +} // namespace content
|
|
|
| Property changes on: content\browser\content_ipc_logging.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|