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); |
} |