Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: chrome/renderer/render_thread.cc

Issue 6551019: Trace_event upgrades (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More gooder js thanks to arv. Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/render_thread.h" 5 #include "chrome/renderer/render_thread.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 RenderThread::RenderThread() { 223 RenderThread::RenderThread() {
224 Init(); 224 Init();
225 } 225 }
226 226
227 RenderThread::RenderThread(const std::string& channel_name) 227 RenderThread::RenderThread(const std::string& channel_name)
228 : ChildThread(channel_name) { 228 : ChildThread(channel_name) {
229 Init(); 229 Init();
230 } 230 }
231 231
232 void RenderThread::Init() { 232 void RenderThread::Init() {
233 TRACE_EVENT_BEGIN("RenderThread::Init", 0, ""); 233 // 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
234 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess))
235 base::debug::TraceLog::GetInstance()->SetOutputCallback(NewCallback(this,
236 &RenderThread::OnTraceDataCollected));
237
238 TRACE_EVENT_BEGIN_LEGACY("RenderThread::Init", 0, "");
234 239
235 lazy_tls.Pointer()->Set(this); 240 lazy_tls.Pointer()->Set(this);
236 #if defined(OS_WIN) 241 #if defined(OS_WIN)
237 // If you are running plugins in this thread you need COM active but in 242 // If you are running plugins in this thread you need COM active but in
238 // the normal case you don't. 243 // the normal case you don't.
239 if (RenderProcessImpl::InProcessPlugins()) 244 if (RenderProcessImpl::InProcessPlugins())
240 CoInitialize(0); 245 CoInitialize(0);
241 #endif 246 #endif
242 247
243 std::string type_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 248 std::string type_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
(...skipping 28 matching lines...) Expand all
272 AddFilter(db_message_filter_.get()); 277 AddFilter(db_message_filter_.get());
273 278
274 cookie_message_filter_ = new CookieMessageFilter(); 279 cookie_message_filter_ = new CookieMessageFilter();
275 AddFilter(cookie_message_filter_.get()); 280 AddFilter(cookie_message_filter_.get());
276 281
277 #if defined(OS_POSIX) 282 #if defined(OS_POSIX)
278 suicide_on_channel_error_filter_ = new SuicideOnChannelErrorFilter; 283 suicide_on_channel_error_filter_ = new SuicideOnChannelErrorFilter;
279 AddFilter(suicide_on_channel_error_filter_.get()); 284 AddFilter(suicide_on_channel_error_filter_.get());
280 #endif 285 #endif
281 286
282 TRACE_EVENT_END("RenderThread::Init", 0, ""); 287 TRACE_EVENT_END_LEGACY("RenderThread::Init", 0, "");
283 } 288 }
284 289
285 RenderThread::~RenderThread() { 290 RenderThread::~RenderThread() {
286 // Wait for all databases to be closed. 291 // Wait for all databases to be closed.
287 if (web_database_observer_impl_.get()) 292 if (web_database_observer_impl_.get())
288 web_database_observer_impl_->WaitForAllDatabasesToClose(); 293 web_database_observer_impl_->WaitForAllDatabasesToClose();
289 294
290 // Shutdown in reverse of the initialization order. 295 // Shutdown in reverse of the initialization order.
291 RemoveFilter(db_message_filter_.get()); 296 RemoveFilter(db_message_filter_.get());
292 db_message_filter_ = NULL; 297 db_message_filter_ = NULL;
293 RemoveFilter(devtools_agent_filter_.get()); 298 RemoveFilter(devtools_agent_filter_.get());
294 299
295 // Shutdown the file thread if it's running. 300 // Shutdown the file thread if it's running.
296 if (file_thread_.get()) 301 if (file_thread_.get())
297 file_thread_->Stop(); 302 file_thread_->Stop();
298 303
299 if (webkit_client_.get()) 304 if (webkit_client_.get())
300 WebKit::shutdown(); 305 WebKit::shutdown();
301 306
302 lazy_tls.Pointer()->Set(NULL); 307 lazy_tls.Pointer()->Set(NULL);
303 308
309 // Clean up GPU_TRACE
Ken Russell (switch to Gerrit) 2011/02/25 00:56:36 Remove apparently obsolete comment.
310 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess))
311 base::debug::TraceLog::GetInstance()->SetOutputCallback(NULL);
312
304 // TODO(port) 313 // TODO(port)
305 #if defined(OS_WIN) 314 #if defined(OS_WIN)
306 // Clean up plugin channels before this thread goes away. 315 // Clean up plugin channels before this thread goes away.
307 PluginChannelBase::CleanupChannels(); 316 PluginChannelBase::CleanupChannels();
308 // Don't call COM if the renderer is in the sandbox. 317 // Don't call COM if the renderer is in the sandbox.
309 if (RenderProcessImpl::InProcessPlugins()) 318 if (RenderProcessImpl::InProcessPlugins())
310 CoUninitialize(); 319 CoUninitialize();
311 #endif 320 #endif
312 } 321 }
313 322
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 IPC_MESSAGE_HANDLER(ViewMsg_SetIPCLoggingEnabled, 646 IPC_MESSAGE_HANDLER(ViewMsg_SetIPCLoggingEnabled,
638 OnSetIPCLoggingEnabled) 647 OnSetIPCLoggingEnabled)
639 #endif 648 #endif
640 IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_Init, 649 IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_Init,
641 OnInitSpellChecker) 650 OnInitSpellChecker)
642 IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_WordAdded, 651 IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_WordAdded,
643 OnSpellCheckWordAdded) 652 OnSpellCheckWordAdded)
644 IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_EnableAutoSpellCorrect, 653 IPC_MESSAGE_HANDLER(ViewMsg_SpellChecker_EnableAutoSpellCorrect,
645 OnSpellCheckEnableAutoSpellCorrect) 654 OnSpellCheckEnableAutoSpellCorrect)
646 IPC_MESSAGE_HANDLER(ViewMsg_GpuChannelEstablished, OnGpuChannelEstablished) 655 IPC_MESSAGE_HANDLER(ViewMsg_GpuChannelEstablished, OnGpuChannelEstablished)
656 IPC_MESSAGE_HANDLER(ViewMsg_SetTraceEnabled, OnSetTraceEnabled)
647 IPC_MESSAGE_HANDLER(ViewMsg_SetPhishingModel, OnSetPhishingModel) 657 IPC_MESSAGE_HANDLER(ViewMsg_SetPhishingModel, OnSetPhishingModel)
648 IPC_MESSAGE_HANDLER(ViewMsg_SpeechInput_SetFeatureEnabled, 658 IPC_MESSAGE_HANDLER(ViewMsg_SpeechInput_SetFeatureEnabled,
649 OnSetSpeechInputEnabled) 659 OnSetSpeechInputEnabled)
650 IPC_MESSAGE_UNHANDLED(handled = false) 660 IPC_MESSAGE_UNHANDLED(handled = false)
651 IPC_END_MESSAGE_MAP() 661 IPC_END_MESSAGE_MAP()
652 return handled; 662 return handled;
653 } 663 }
654 664
655 void RenderThread::OnSetSpeechInputEnabled(bool enabled) { 665 void RenderThread::OnSetSpeechInputEnabled(bool enabled) {
656 DCHECK(!webkit_client_.get()); 666 DCHECK(!webkit_client_.get());
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1090 1100
1091 if (channel_handle.name.size() != 0) { 1101 if (channel_handle.name.size() != 0) {
1092 // Connect to the GPU process if a channel name was received. 1102 // Connect to the GPU process if a channel name was received.
1093 gpu_channel_->Connect(channel_handle); 1103 gpu_channel_->Connect(channel_handle);
1094 } else { 1104 } else {
1095 // Otherwise cancel the connection. 1105 // Otherwise cancel the connection.
1096 gpu_channel_ = NULL; 1106 gpu_channel_ = NULL;
1097 } 1107 }
1098 } 1108 }
1099 1109
1110 void RenderThread::OnTraceDataCollected(const std::string& json_events) {
1111 Send(new ViewHostMsg_TraceDataCollectedRemotely(json_events));
1112 }
1113
1114 void RenderThread::OnSetTraceEnabled(bool enabled) {
1115 base::debug::TraceLog::GetInstance()->SetEnabled(enabled);
1116 if (!enabled) {
1117 std::string json_complete("['TRACE_ENDED']");
1118 Send(new ViewHostMsg_TraceDataCollectedRemotely(json_complete));
1119 }
1120 }
1121
1100 void RenderThread::OnSetPhishingModel(IPC::PlatformFileForTransit model_file) { 1122 void RenderThread::OnSetPhishingModel(IPC::PlatformFileForTransit model_file) {
1101 safe_browsing::PhishingClassifierDelegate::SetPhishingModel(model_file); 1123 safe_browsing::PhishingClassifierDelegate::SetPhishingModel(model_file);
1102 } 1124 }
1103 1125
1104 scoped_refptr<base::MessageLoopProxy> 1126 scoped_refptr<base::MessageLoopProxy>
1105 RenderThread::GetFileThreadMessageLoopProxy() { 1127 RenderThread::GetFileThreadMessageLoopProxy() {
1106 DCHECK(message_loop() == MessageLoop::current()); 1128 DCHECK(message_loop() == MessageLoop::current());
1107 if (!file_thread_.get()) { 1129 if (!file_thread_.get()) {
1108 file_thread_.reset(new base::Thread("Renderer::FILE")); 1130 file_thread_.reset(new base::Thread("Renderer::FILE"));
1109 file_thread_->Start(); 1131 file_thread_->Start();
(...skipping 21 matching lines...) Expand all
1131 } 1153 }
1132 1154
1133 return false; 1155 return false;
1134 } 1156 }
1135 1157
1136 void RenderThread::RegisterExtension(v8::Extension* extension, 1158 void RenderThread::RegisterExtension(v8::Extension* extension,
1137 bool restrict_to_extensions) { 1159 bool restrict_to_extensions) {
1138 WebScriptController::registerExtension(extension); 1160 WebScriptController::registerExtension(extension);
1139 v8_extensions_[extension->name()] = restrict_to_extensions; 1161 v8_extensions_[extension->name()] = restrict_to_extensions;
1140 } 1162 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698