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

Side by Side Diff: chrome/test/base/tracing.cc

Issue 9694028: Add a Content API around TracingController. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix linux Created 8 years, 9 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/test/base/tracing.h" 5 #include "chrome/test/base/tracing.h"
6 6
7 #include "base/debug/trace_event.h"
7 #include "base/memory/singleton.h" 8 #include "base/memory/singleton.h"
8 #include "base/message_loop.h" 9 #include "base/message_loop.h"
9 #include "chrome/test/base/ui_test_utils.h" 10 #include "chrome/test/base/ui_test_utils.h"
10 #include "content/browser/trace_controller.h" 11 #include "content/public/browser/trace_controller.h"
12 #include "content/public/browser/trace_subscriber.h"
11 13
12 namespace { 14 namespace {
13 15
14 class InProcessTraceController : public TraceSubscriber { 16 class InProcessTraceController : public content::TraceSubscriber {
15 public: 17 public:
16 static InProcessTraceController* GetInstance() { 18 static InProcessTraceController* GetInstance() {
17 return Singleton<InProcessTraceController>::get(); 19 return Singleton<InProcessTraceController>::get();
18 } 20 }
19 21
20 InProcessTraceController() {} 22 InProcessTraceController() {}
21 virtual ~InProcessTraceController() {} 23 virtual ~InProcessTraceController() {}
22 24
23 bool BeginTracing(const std::string& categories) { 25 bool BeginTracing(const std::string& categories) {
24 return TraceController::GetInstance()->BeginTracing(this, categories); 26 return content::TraceController::GetInstance()->BeginTracing(
27 this, categories);
25 } 28 }
26 29
27 bool EndTracing(std::string* json_trace_output) { 30 bool EndTracing(std::string* json_trace_output) {
28 using namespace base::debug; 31 using namespace base::debug;
29 32
30 TraceResultBuffer::SimpleOutput output; 33 TraceResultBuffer::SimpleOutput output;
31 trace_buffer_.SetOutputCallback(output.GetCallback()); 34 trace_buffer_.SetOutputCallback(output.GetCallback());
32 35
33 trace_buffer_.Start(); 36 trace_buffer_.Start();
34 if (!TraceController::GetInstance()->EndTracingAsync(this)) 37 if (!content::TraceController::GetInstance()->EndTracingAsync(this))
35 return false; 38 return false;
36 // Wait for OnEndTracingComplete() to quit the message loop. 39 // Wait for OnEndTracingComplete() to quit the message loop.
37 // OnTraceDataCollected may be called multiple times while blocking here. 40 // OnTraceDataCollected may be called multiple times while blocking here.
38 ui_test_utils::RunMessageLoop(); 41 ui_test_utils::RunMessageLoop();
39 trace_buffer_.Finish(); 42 trace_buffer_.Finish();
40 trace_buffer_.SetOutputCallback(TraceResultBuffer::OutputCallback()); 43 trace_buffer_.SetOutputCallback(TraceResultBuffer::OutputCallback());
41 44
42 *json_trace_output = output.json_output; 45 *json_trace_output = output.json_output;
43 return true; 46 return true;
44 } 47 }
(...skipping 25 matching lines...) Expand all
70 bool BeginTracing(const std::string& categories) { 73 bool BeginTracing(const std::string& categories) {
71 return InProcessTraceController::GetInstance()->BeginTracing(categories); 74 return InProcessTraceController::GetInstance()->BeginTracing(categories);
72 } 75 }
73 76
74 bool EndTracing(std::string* json_trace_output) { 77 bool EndTracing(std::string* json_trace_output) {
75 return InProcessTraceController::GetInstance()->EndTracing(json_trace_output); 78 return InProcessTraceController::GetInstance()->EndTracing(json_trace_output);
76 } 79 }
77 80
78 } // namespace tracing 81 } // namespace tracing
79 82
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698