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

Unified Diff: content/browser/trace_controller_impl.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 side-by-side diff with in-line comments
Download patch
Index: content/browser/trace_controller_impl.cc
===================================================================
--- content/browser/trace_controller_impl.cc (revision 126271)
+++ content/browser/trace_controller_impl.cc (working copy)
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/trace_controller.h"
+#include "content/browser/trace_controller_impl.h"
#include "base/bind.h"
#include "base/command_line.h"
@@ -15,9 +15,9 @@
#include "content/public/common/content_switches.h"
using base::debug::TraceLog;
-using content::BrowserMessageFilter;
-using content::BrowserThread;
+namespace content {
+
namespace {
class AutoStopTraceSubscriberStdio : public content::TraceSubscriberStdio {
@@ -26,7 +26,7 @@
: TraceSubscriberStdio(file_path) {}
static void EndStartupTrace(TraceSubscriberStdio* subscriber) {
- if (!TraceController::GetInstance()->EndTracingAsync(subscriber))
+ if (!TraceControllerImpl::GetInstance()->EndTracingAsync(subscriber))
delete subscriber;
// else, the tracing will end asynchronously in OnEndTracingComplete().
}
@@ -41,14 +41,11 @@
} // namespace
-void TraceSubscriber::OnKnownCategoriesCollected(
- const std::set<std::string>& known_categories) {}
+TraceController* TraceController::GetInstance() {
+ return TraceControllerImpl::GetInstance();
+}
-void TraceSubscriber::OnTraceBufferPercentFullReply(float percent_full) {}
-
-TraceSubscriber::~TraceSubscriber() {}
-
-TraceController::TraceController() :
+TraceControllerImpl::TraceControllerImpl() :
subscriber_(NULL),
pending_end_ack_count_(0),
pending_bpf_ack_count_(0),
@@ -56,20 +53,20 @@
is_tracing_(false),
is_get_categories_(false) {
TraceLog::GetInstance()->SetOutputCallback(
- base::Bind(&TraceController::OnTraceDataCollected,
+ base::Bind(&TraceControllerImpl::OnTraceDataCollected,
base::Unretained(this)));
}
-TraceController::~TraceController() {
+TraceControllerImpl::~TraceControllerImpl() {
if (TraceLog* trace_log = TraceLog::GetInstance())
trace_log->SetOutputCallback(TraceLog::OutputCallback());
}
-TraceController* TraceController::GetInstance() {
- return Singleton<TraceController>::get();
+TraceControllerImpl* TraceControllerImpl::GetInstance() {
+ return Singleton<TraceControllerImpl>::get();
}
-void TraceController::InitStartupTracing(const CommandLine& command_line) {
+void TraceControllerImpl::InitStartupTracing(const CommandLine& command_line) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
FilePath trace_file = command_line.GetSwitchValuePath(
switches::kTraceStartupFile);
@@ -105,7 +102,7 @@
base::TimeDelta::FromSeconds(delay_secs));
}
-bool TraceController::GetKnownCategoriesAsync(TraceSubscriber* subscriber) {
+bool TraceControllerImpl::GetKnownCategoriesAsync(TraceSubscriber* subscriber) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// Known categories come back from child processes with the EndTracingAck
@@ -117,14 +114,14 @@
return success;
}
-bool TraceController::BeginTracing(TraceSubscriber* subscriber) {
+bool TraceControllerImpl::BeginTracing(TraceSubscriber* subscriber) {
std::vector<std::string> include, exclude;
// By default, exclude all categories that begin with test_
exclude.push_back("test_*");
return BeginTracing(subscriber, include, exclude);
}
-bool TraceController::BeginTracing(
+bool TraceControllerImpl::BeginTracing(
TraceSubscriber* subscriber,
const std::vector<std::string>& included_categories,
const std::vector<std::string>& excluded_categories) {
@@ -140,8 +137,8 @@
return true;
}
-bool TraceController::BeginTracing(TraceSubscriber* subscriber,
- const std::string& categories) {
+bool TraceControllerImpl::BeginTracing(TraceSubscriber* subscriber,
+ const std::string& categories) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!can_begin_tracing(subscriber))
@@ -155,7 +152,7 @@
return true;
}
-bool TraceController::EndTracingAsync(TraceSubscriber* subscriber) {
+bool TraceControllerImpl::EndTracingAsync(TraceSubscriber* subscriber) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!can_end_tracing() || subscriber != subscriber_)
@@ -174,8 +171,8 @@
std::vector<std::string> categories;
TraceLog::GetInstance()->GetKnownCategories(&categories);
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnEndTracingAck, base::Unretained(this),
- categories));
+ base::Bind(&TraceControllerImpl::OnEndTracingAck,
+ base::Unretained(this), categories));
}
// Notify all child processes.
@@ -186,7 +183,7 @@
return true;
}
-bool TraceController::GetTraceBufferPercentFullAsync(
+bool TraceControllerImpl::GetTraceBufferPercentFullAsync(
TraceSubscriber* subscriber) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -201,7 +198,7 @@
// Ack asynchronously now, because we don't have any children to wait for.
float bpf = TraceLog::GetInstance()->GetBufferPercentFull();
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnTraceBufferPercentFullReply,
+ base::Bind(&TraceControllerImpl::OnTraceBufferPercentFullReply,
base::Unretained(this), bpf));
}
@@ -213,7 +210,7 @@
return true;
}
-void TraceController::CancelSubscriber(TraceSubscriber* subscriber) {
+void TraceControllerImpl::CancelSubscriber(TraceSubscriber* subscriber) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (subscriber == subscriber_) {
@@ -224,10 +221,10 @@
}
}
-void TraceController::AddFilter(TraceMessageFilter* filter) {
+void TraceControllerImpl::AddFilter(TraceMessageFilter* filter) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::AddFilter, base::Unretained(this),
+ base::Bind(&TraceControllerImpl::AddFilter, base::Unretained(this),
make_scoped_refptr(filter)));
return;
}
@@ -238,10 +235,10 @@
}
}
-void TraceController::RemoveFilter(TraceMessageFilter* filter) {
+void TraceControllerImpl::RemoveFilter(TraceMessageFilter* filter) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::RemoveFilter, base::Unretained(this),
+ base::Bind(&TraceControllerImpl::RemoveFilter, base::Unretained(this),
make_scoped_refptr(filter)));
return;
}
@@ -249,7 +246,7 @@
filters_.erase(filter);
}
-void TraceController::OnTracingBegan(TraceSubscriber* subscriber) {
+void TraceControllerImpl::OnTracingBegan(TraceSubscriber* subscriber) {
is_tracing_ = true;
subscriber_ = subscriber;
@@ -262,12 +259,12 @@
}
}
-void TraceController::OnEndTracingAck(
+void TraceControllerImpl::OnEndTracingAck(
const std::vector<std::string>& known_categories) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnEndTracingAck, base::Unretained(this),
- known_categories));
+ base::Bind(&TraceControllerImpl::OnEndTracingAck,
+ base::Unretained(this), known_categories));
return;
}
@@ -306,18 +303,18 @@
std::vector<std::string> categories;
TraceLog::GetInstance()->GetKnownCategories(&categories);
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnEndTracingAck, base::Unretained(this),
- categories));
+ base::Bind(&TraceControllerImpl::OnEndTracingAck,
+ base::Unretained(this), categories));
}
}
-void TraceController::OnTraceDataCollected(
+void TraceControllerImpl::OnTraceDataCollected(
const scoped_refptr<base::RefCountedString>& events_str_ptr) {
// OnTraceDataCollected may be called from any browser thread, either by the
// local event trace system or from child processes via TraceMessageFilter.
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnTraceDataCollected,
+ base::Bind(&TraceControllerImpl::OnTraceDataCollected,
base::Unretained(this), events_str_ptr));
return;
}
@@ -327,12 +324,12 @@
subscriber_->OnTraceDataCollected(events_str_ptr);
}
-void TraceController::OnTraceBufferFull() {
+void TraceControllerImpl::OnTraceBufferFull() {
// OnTraceBufferFull may be called from any browser thread, either by the
// local event trace system or from child processes via TraceMessageFilter.
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnTraceBufferFull,
+ base::Bind(&TraceControllerImpl::OnTraceBufferFull,
base::Unretained(this)));
return;
}
@@ -342,10 +339,10 @@
EndTracingAsync(subscriber_);
}
-void TraceController::OnTraceBufferPercentFullReply(float percent_full) {
+void TraceControllerImpl::OnTraceBufferPercentFullReply(float percent_full) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnTraceBufferPercentFullReply,
+ base::Bind(&TraceControllerImpl::OnTraceBufferPercentFullReply,
base::Unretained(this), percent_full));
return;
}
@@ -366,8 +363,9 @@
// this code only executes if there were child processes.
float bpf = TraceLog::GetInstance()->GetBufferPercentFull();
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&TraceController::OnTraceBufferPercentFullReply,
+ base::Bind(&TraceControllerImpl::OnTraceBufferPercentFullReply,
base::Unretained(this), bpf));
}
}
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698