| Index: chrome/renderer/render_thread.cc
|
| diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
|
| index 54e469421a5861670004136bc79519851bfdbb97..2e25b46b1c3b756c450088e3dd04a5f57bc87ba6 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.
|
| + 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
|
| + 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);
|
| }
|
|
|