Chromium Code Reviews| Index: chrome/renderer/render_thread.cc |
| diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc |
| index 54e469421a5861670004136bc79519851bfdbb97..022d88f0a62f65edb5f820cbcda3b88b28df8121 100644 |
| --- a/chrome/renderer/render_thread.cc |
| +++ b/chrome/renderer/render_thread.cc |
| @@ -230,7 +230,12 @@ RenderThread::RenderThread(const std::string& channel_name) |
| } |
| void RenderThread::Init() { |
| - TRACE_EVENT_BEGIN("RenderThread::Init", 0, ""); |
| + // Forward GPU trace data unless we are in single-process mode. |
|
Ken Russell (switch to Gerrit)
2011/02/25 00:56:36
I'd avoid the reference to the GPU here -- the tra
|
| + if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) |
| + base::debug::TraceLog::GetInstance()->SetOutputCallback(NewCallback(this, |
| + &RenderThread::OnTraceDataCollected)); |
| + |
| + TRACE_EVENT_BEGIN_LEGACY("RenderThread::Init", 0, ""); |
| lazy_tls.Pointer()->Set(this); |
| #if defined(OS_WIN) |
| @@ -279,7 +284,7 @@ void RenderThread::Init() { |
| AddFilter(suicide_on_channel_error_filter_.get()); |
| #endif |
| - TRACE_EVENT_END("RenderThread::Init", 0, ""); |
| + TRACE_EVENT_END_LEGACY("RenderThread::Init", 0, ""); |
| } |
| RenderThread::~RenderThread() { |
| @@ -301,6 +306,10 @@ RenderThread::~RenderThread() { |
| lazy_tls.Pointer()->Set(NULL); |
| + // Clean up GPU_TRACE |
|
Ken Russell (switch to Gerrit)
2011/02/25 00:56:36
Remove apparently obsolete comment.
|
| + if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)) |
| + base::debug::TraceLog::GetInstance()->SetOutputCallback(NULL); |
| + |
| // TODO(port) |
| #if defined(OS_WIN) |
| // Clean up plugin channels before this thread goes away. |
| @@ -644,6 +653,7 @@ bool RenderThread::OnControlMessageReceived(const IPC::Message& msg) { |
| IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_EnableAutoSpellCorrect, |
| OnSpellCheckEnableAutoSpellCorrect) |
| IPC_MESSAGE_HANDLER(ViewMsg_GpuChannelEstablished, OnGpuChannelEstablished) |
| + IPC_MESSAGE_HANDLER(ViewMsg_SetTraceEnabled, OnSetTraceEnabled) |
| IPC_MESSAGE_HANDLER(ViewMsg_SetPhishingModel, OnSetPhishingModel) |
| IPC_MESSAGE_HANDLER(ViewMsg_SpeechInput_SetFeatureEnabled, |
| OnSetSpeechInputEnabled) |
| @@ -1097,6 +1107,18 @@ void RenderThread::OnGpuChannelEstablished( |
| } |
| } |
| +void RenderThread::OnTraceDataCollected(const std::string& json_events) { |
| + Send(new ViewHostMsg_TraceDataCollectedRemotely(json_events)); |
| +} |
| + |
| +void RenderThread::OnSetTraceEnabled(bool enabled) { |
| + base::debug::TraceLog::GetInstance()->SetEnabled(enabled); |
| + if (!enabled) { |
| + std::string json_complete("['TRACE_ENDED']"); |
| + Send(new ViewHostMsg_TraceDataCollectedRemotely(json_complete)); |
| + } |
| +} |
| + |
| void RenderThread::OnSetPhishingModel(IPC::PlatformFileForTransit model_file) { |
| safe_browsing::PhishingClassifierDelegate::SetPhishingModel(model_file); |
| } |