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

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

Issue 6463013: Add support for base::Closure in the MessageLoop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/base
Patch Set: Fix merge error. Created 9 years, 8 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #if defined(OS_MACOSX) 5 #if defined(OS_MACOSX)
6 #include <signal.h> 6 #include <signal.h>
7 #include <unistd.h> 7 #include <unistd.h>
8 #endif // OS_MACOSX 8 #endif // OS_MACOSX
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 *bad_pointer = 0; 171 *bad_pointer = 0;
172 } 172 }
173 173
174 if (command_line.HasSwitch(switches::kRendererStartupDialog)) { 174 if (command_line.HasSwitch(switches::kRendererStartupDialog)) {
175 ChildProcess::WaitForDebugger("Renderer"); 175 ChildProcess::WaitForDebugger("Renderer");
176 } 176 }
177 } 177 }
178 178
179 // This is a simplified version of the browser Jankometer, which measures 179 // This is a simplified version of the browser Jankometer, which measures
180 // the processing time of tasks on the render thread. 180 // the processing time of tasks on the render thread.
181 class RendererMessageLoopObserver : public MessageLoop::TaskObserver { 181 class RendererMessageLoopObserver : public MessageLoop::ClosureObserver {
182 public: 182 public:
183 RendererMessageLoopObserver() 183 RendererMessageLoopObserver()
184 : process_times_(base::Histogram::FactoryGet( 184 : process_times_(base::Histogram::FactoryGet(
185 "Chrome.ProcMsgL RenderThread", 185 "Chrome.ProcMsgL RenderThread",
186 1, 3600000, 50, base::Histogram::kUmaTargetedHistogramFlag)) {} 186 1, 3600000, 50, base::Histogram::kUmaTargetedHistogramFlag)) {}
187 virtual ~RendererMessageLoopObserver() {} 187 virtual ~RendererMessageLoopObserver() {}
188 188
189 virtual void WillProcessTask(const Task* task) { 189 virtual void WillProcessClosure(base::TimeTicks time_posted) {
190 begin_process_message_ = base::TimeTicks::Now(); 190 begin_process_message_ = base::TimeTicks::Now();
191 } 191 }
192 192
193 virtual void DidProcessTask(const Task* task) { 193 virtual void DidProcessClosure(base::TimeTicks time_posted) {
194 if (begin_process_message_ != base::TimeTicks()) 194 if (begin_process_message_ != base::TimeTicks())
195 process_times_->AddTime(base::TimeTicks::Now() - begin_process_message_); 195 process_times_->AddTime(base::TimeTicks::Now() - begin_process_message_);
196 } 196 }
197 197
198 private: 198 private:
199 base::TimeTicks begin_process_message_; 199 base::TimeTicks begin_process_message_;
200 base::Histogram* const process_times_; 200 base::Histogram* const process_times_;
201 DISALLOW_COPY_AND_ASSIGN(RendererMessageLoopObserver); 201 DISALLOW_COPY_AND_ASSIGN(RendererMessageLoopObserver);
202 }; 202 };
203 203
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 // flag allowing us to attach a debugger. 252 // flag allowing us to attach a debugger.
253 // Do not move this function down since that would mean we can't easily debug 253 // Do not move this function down since that would mean we can't easily debug
254 // whatever occurs before it. 254 // whatever occurs before it.
255 HandleRendererErrorTestParameters(parsed_command_line); 255 HandleRendererErrorTestParameters(parsed_command_line);
256 256
257 RendererMainPlatformDelegate platform(parameters); 257 RendererMainPlatformDelegate platform(parameters);
258 258
259 base::StatsScope<base::StatsCounterTimer> 259 base::StatsScope<base::StatsCounterTimer>
260 startup_timer(chrome::Counters::renderer_main()); 260 startup_timer(chrome::Counters::renderer_main());
261 261
262 RendererMessageLoopObserver task_observer; 262 RendererMessageLoopObserver closure_observer;
263 #if defined(OS_MACOSX) 263 #if defined(OS_MACOSX)
264 // As long as we use Cocoa in the renderer (for the forseeable future as of 264 // As long as we use Cocoa in the renderer (for the forseeable future as of
265 // now; see http://crbug.com/13890 for info) we need to have a UI loop. 265 // now; see http://crbug.com/13890 for info) we need to have a UI loop.
266 MessageLoop main_message_loop(MessageLoop::TYPE_UI); 266 MessageLoop main_message_loop(MessageLoop::TYPE_UI);
267 #else 267 #else
268 // The main message loop of the renderer services doesn't have IO or UI tasks, 268 // The main message loop of the renderer services doesn't have IO or UI tasks,
269 // unless in-process-plugins is used. 269 // unless in-process-plugins is used.
270 MessageLoop main_message_loop(RenderProcessImpl::InProcessPlugins() ? 270 MessageLoop main_message_loop(RenderProcessImpl::InProcessPlugins() ?
271 MessageLoop::TYPE_UI : MessageLoop::TYPE_DEFAULT); 271 MessageLoop::TYPE_UI : MessageLoop::TYPE_DEFAULT);
272 #endif 272 #endif
273 main_message_loop.AddTaskObserver(&task_observer); 273 main_message_loop.AddClosureObserver(&closure_observer);
274 274
275 base::PlatformThread::SetName("CrRendererMain"); 275 base::PlatformThread::SetName("CrRendererMain");
276 276
277 ui::SystemMonitor system_monitor; 277 ui::SystemMonitor system_monitor;
278 HighResolutionTimerManager hi_res_timer_manager; 278 HighResolutionTimerManager hi_res_timer_manager;
279 279
280 platform.PlatformInitialize(); 280 platform.PlatformInitialize();
281 281
282 bool no_sandbox = parsed_command_line.HasSwitch(switches::kNoSandbox); 282 bool no_sandbox = parsed_command_line.HasSwitch(switches::kNoSandbox);
283 platform.InitSandboxTests(no_sandbox); 283 platform.InitSandboxTests(no_sandbox);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 pool->Recycle(); 329 pool->Recycle();
330 TRACE_EVENT_BEGIN("RendererMain.START_MSG_LOOP", 0, 0); 330 TRACE_EVENT_BEGIN("RendererMain.START_MSG_LOOP", 0, 0);
331 MessageLoop::current()->Run(); 331 MessageLoop::current()->Run();
332 TRACE_EVENT_END("RendererMain.START_MSG_LOOP", 0, 0); 332 TRACE_EVENT_END("RendererMain.START_MSG_LOOP", 0, 0);
333 } 333 }
334 } 334 }
335 platform.PlatformUninitialize(); 335 platform.PlatformUninitialize();
336 TRACE_EVENT_END("RendererMain", 0, ""); 336 TRACE_EVENT_END("RendererMain", 0, "");
337 return 0; 337 return 0;
338 } 338 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698