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

Side by Side Diff: content/browser/trace_controller.cc

Issue 6862002: Merge gpu_trace_event back into base/debug/trace_event (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: "fix gpu/command_buffer/client/cmd_buffer_helper to new macros" 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 #include "content/browser/trace_controller.h" 5 #include "content/browser/trace_controller.h"
6 6
7 #include "base/debug/trace_event.h"
7 #include "base/task.h" 8 #include "base/task.h"
8 #include "content/browser/browser_message_filter.h" 9 #include "content/browser/browser_message_filter.h"
9 #include "content/browser/trace_message_filter.h" 10 #include "content/browser/trace_message_filter.h"
10 #include "content/common/child_process_messages.h" 11 #include "content/common/child_process_messages.h"
11 #include "gpu/common/gpu_trace_event.h"
12 12
13 13
14 TraceController::TraceController() : 14 TraceController::TraceController() :
15 pending_ack_count_(0), 15 pending_ack_count_(0),
16 is_tracing_(false), 16 is_tracing_(false),
17 subscriber_(NULL) { 17 subscriber_(NULL) {
18 gpu::TraceLog::GetInstance()->SetOutputCallback( 18 base::debug::TraceLog::GetInstance()->SetOutputCallback(
19 NewCallback(this, &TraceController::OnTraceDataCollected)); 19 NewCallback(this, &TraceController::OnTraceDataCollected));
20 } 20 }
21 21
22 TraceController::~TraceController() { 22 TraceController::~TraceController() {
23 gpu::TraceLog::GetInstance()->SetOutputCallback(NULL); 23 base::debug::TraceLog::GetInstance()->SetOutputCallback(NULL);
24 } 24 }
25 25
26 //static 26 //static
27 TraceController* TraceController::GetInstance() { 27 TraceController* TraceController::GetInstance() {
28 return Singleton<TraceController>::get(); 28 return Singleton<TraceController>::get();
29 } 29 }
30 30
31 bool TraceController::BeginTracing(TraceSubscriber* subscriber) { 31 bool TraceController::BeginTracing(TraceSubscriber* subscriber) {
32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 32 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
33 33
34 if (!can_begin_tracing() || 34 if (!can_begin_tracing() ||
35 (subscriber_ != NULL && subscriber != subscriber_)) 35 (subscriber_ != NULL && subscriber != subscriber_))
36 return false; 36 return false;
37 37
38 subscriber_ = subscriber; 38 subscriber_ = subscriber;
39 39
40 // Enable tracing 40 // Enable tracing
41 is_tracing_ = true; 41 is_tracing_ = true;
42 gpu::TraceLog::GetInstance()->SetEnabled(true); 42 base::debug::TraceLog::GetInstance()->SetEnabled(true);
43 43
44 // Notify all child processes. 44 // Notify all child processes.
45 for (FilterMap::iterator it = filters_.begin(); it != filters_.end(); ++it) { 45 for (FilterMap::iterator it = filters_.begin(); it != filters_.end(); ++it) {
46 it->get()->SendBeginTracing(); 46 it->get()->SendBeginTracing();
47 } 47 }
48 48
49 return true; 49 return true;
50 } 50 }
51 51
52 bool TraceController::EndTracingAsync(TraceSubscriber* subscriber) { 52 bool TraceController::EndTracingAsync(TraceSubscriber* subscriber) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 } 121 }
122 122
123 if (--pending_ack_count_ == 0) { 123 if (--pending_ack_count_ == 0) {
124 // All acks have been received. 124 // All acks have been received.
125 is_tracing_ = false; 125 is_tracing_ = false;
126 126
127 // Disable local trace. During this call, our OnTraceDataCollected will be 127 // Disable local trace. During this call, our OnTraceDataCollected will be
128 // called with the last of the local trace data. Since we are on the UI 128 // called with the last of the local trace data. Since we are on the UI
129 // thread, the call to OnTraceDataCollected will be synchronous, so we can 129 // thread, the call to OnTraceDataCollected will be synchronous, so we can
130 // immediately call OnEndTracingComplete below. 130 // immediately call OnEndTracingComplete below.
131 gpu::TraceLog::GetInstance()->SetEnabled(false); 131 base::debug::TraceLog::GetInstance()->SetEnabled(false);
132 132
133 // Trigger callback if one is set. 133 // Trigger callback if one is set.
134 if (subscriber_ != NULL) { 134 if (subscriber_ != NULL) {
135 subscriber_->OnEndTracingComplete(); 135 subscriber_->OnEndTracingComplete();
136 // Clear subscriber so that others can use TraceController. 136 // Clear subscriber so that others can use TraceController.
137 subscriber_ = NULL; 137 subscriber_ = NULL;
138 } 138 }
139 } 139 }
140 140
141 if (pending_ack_count_ == 1) { 141 if (pending_ack_count_ == 1) {
(...skipping 11 matching lines...) Expand all
153 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 153 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
154 NewRunnableMethod(this, &TraceController::OnTraceDataCollected, data)); 154 NewRunnableMethod(this, &TraceController::OnTraceDataCollected, data));
155 return; 155 return;
156 } 156 }
157 157
158 if (subscriber_) { 158 if (subscriber_) {
159 subscriber_->OnTraceDataCollected(data); 159 subscriber_->OnTraceDataCollected(data);
160 } 160 }
161 } 161 }
162 162
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698