| 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
|
|
|