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

Unified Diff: content/browser/tracing/trace_controller_impl.cc

Issue 12150004: Category group support/Renamings. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: More renamings and category filter cleanups. Created 7 years, 10 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/tracing/trace_controller_impl.cc
diff --git a/content/browser/tracing/trace_controller_impl.cc b/content/browser/tracing/trace_controller_impl.cc
index e0aed6edcd7969acd9f874f2fd7ed73f414a3f87..62cace8742335cd06b686d52cb80af6a1e271f5e 100644
--- a/content/browser/tracing/trace_controller_impl.cc
+++ b/content/browser/tracing/trace_controller_impl.cc
@@ -54,7 +54,7 @@ TraceControllerImpl::TraceControllerImpl() :
pending_bpf_ack_count_(0),
maximum_bpf_(0.0f),
is_tracing_(false),
- is_get_categories_(false) {
+ is_get_category_groups_(false) {
TraceLog::GetInstance()->SetNotificationCallback(
base::Bind(&TraceControllerImpl::OnTraceNotification,
base::Unretained(this)));
@@ -106,44 +106,30 @@ void TraceControllerImpl::InitStartupTracing(const CommandLine& command_line) {
base::TimeDelta::FromSeconds(delay_secs));
}
-bool TraceControllerImpl::GetKnownCategoriesAsync(TraceSubscriber* subscriber) {
+bool TraceControllerImpl::GetKnownCategoryGroupsAsync(
+ TraceSubscriber* subscriber) {
dsinclair 2013/02/22 21:13:44 nit: indenting.
rterrazas 2013/02/25 05:55:02 Done.
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// Known categories come back from child processes with the EndTracingAck
// message. So to get known categories, just begin and end tracing immediately
// afterwards. This will ping all the child processes for categories.
- is_get_categories_ = true;
+ is_get_category_groups_ = true;
bool success = BeginTracing(subscriber, "*") &&
EndTracingAsync(subscriber);
- is_get_categories_ = success;
+ is_get_category_groups_ = success;
return success;
}
-bool TraceControllerImpl::BeginTracing(
- TraceSubscriber* subscriber,
- const std::vector<std::string>& included_categories,
- const std::vector<std::string>& excluded_categories) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-
- if (!can_begin_tracing(subscriber))
- return false;
-
- // Enable tracing
- TraceLog::GetInstance()->SetEnabled(included_categories, excluded_categories);
- OnTracingBegan(subscriber);
-
- return true;
-}
-
bool TraceControllerImpl::BeginTracing(TraceSubscriber* subscriber,
- const std::string& categories) {
+ const std::string& category_patterns) {
dsinclair 2013/02/22 21:13:44 nit: indenting.
rterrazas 2013/02/25 05:55:02 Done.
rterrazas 2013/02/25 05:55:02 Done.
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (!can_begin_tracing(subscriber))
return false;
// Enable tracing
- TraceLog::GetInstance()->SetEnabled(categories);
+ base::debug::CategoryFilter category_filter(category_patterns);
+ TraceLog::GetInstance()->SetEnabled(category_filter);
OnTracingBegan(subscriber);
@@ -166,11 +152,11 @@ bool TraceControllerImpl::EndTracingAsync(TraceSubscriber* subscriber) {
// Handle special case of zero child processes.
if (pending_end_ack_count_ == 1) {
// Ack asynchronously now, because we don't have any children to wait for.
- std::vector<std::string> categories;
- TraceLog::GetInstance()->GetKnownCategories(&categories);
+ std::vector<std::string> category_groups;
+ TraceLog::GetInstance()->GetKnownCategoryGroups(&category_groups);
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(&TraceControllerImpl::OnEndTracingAck,
- base::Unretained(this), categories));
+ base::Unretained(this), category_groups));
}
// Notify all child processes.
@@ -261,7 +247,10 @@ void TraceControllerImpl::AddFilter(TraceMessageFilter* filter) {
filters_.insert(filter);
if (is_tracing_enabled()) {
- filter->SendBeginTracing(included_categories_, excluded_categories_);
+ scoped_refptr<base::RefCountedString> category_filter_str_ptr =
+ new base::RefCountedString();
+ category_filter_.ToString(&(category_filter_str_ptr->data()));
+ filter->SendBeginTracing(category_filter_str_ptr->data());
if (!watch_category_.empty())
filter->SendSetWatchEvent(watch_category_, watch_name_);
}
@@ -283,25 +272,28 @@ void TraceControllerImpl::OnTracingBegan(TraceSubscriber* subscriber) {
subscriber_ = subscriber;
- TraceLog::GetInstance()->GetEnabledTraceCategories(&included_categories_,
- &excluded_categories_);
+ category_filter_ = TraceLog::GetInstance()->GetCurrentCategoryFilter();
+ scoped_refptr<base::RefCountedString> category_filter_str_ptr =
+ new base::RefCountedString();
dsinclair 2013/02/22 21:13:44 nit: indenting.
+ category_filter_.ToString(&(category_filter_str_ptr->data()));
// Notify all child processes.
for (FilterMap::iterator it = filters_.begin(); it != filters_.end(); ++it) {
- it->get()->SendBeginTracing(included_categories_, excluded_categories_);
+ it->get()->SendBeginTracing(category_filter_str_ptr->data());
}
}
void TraceControllerImpl::OnEndTracingAck(
- const std::vector<std::string>& known_categories) {
+ const std::vector<std::string>& known_category_groups) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(&TraceControllerImpl::OnEndTracingAck,
- base::Unretained(this), known_categories));
+ base::Unretained(this), known_category_groups));
return;
}
- // Merge known_categories with known_categories_
- known_categories_.insert(known_categories.begin(), known_categories.end());
+ // Merge known_category_groups with known_category_groups_
+ known_category_groups_.insert(known_category_groups.begin(),
+ known_category_groups.end());
dsinclair 2013/02/22 21:13:44 nit: indenting.
rterrazas 2013/02/25 05:55:02 Done.
if (pending_end_ack_count_ == 0)
return;
@@ -323,25 +315,25 @@ void TraceControllerImpl::OnEndTracingAck(
// Trigger callback if one is set.
if (subscriber_) {
- if (is_get_categories_)
- subscriber_->OnKnownCategoriesCollected(known_categories_);
+ if (is_get_category_groups_)
+ subscriber_->OnKnownCategoriesCollected(known_category_groups_);
else
subscriber_->OnEndTracingComplete();
// Clear subscriber so that others can use TraceController.
subscriber_ = NULL;
}
- is_get_categories_ = false;
+ is_get_category_groups_ = false;
}
if (pending_end_ack_count_ == 1) {
// The last ack represents local trace, so we need to ack it now. Note that
// this code only executes if there were child processes.
- std::vector<std::string> categories;
- TraceLog::GetInstance()->GetKnownCategories(&categories);
+ std::vector<std::string> category_groups;
+ TraceLog::GetInstance()->GetKnownCategoryGroups(&category_groups);
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(&TraceControllerImpl::OnEndTracingAck,
- base::Unretained(this), categories));
+ base::Unretained(this), category_groups));
}
}
@@ -357,7 +349,7 @@ void TraceControllerImpl::OnTraceDataCollected(
}
// Drop trace events if we are just getting categories.
- if (subscriber_ && !is_get_categories_)
+ if (subscriber_ && !is_get_category_groups_)
subscriber_->OnTraceDataCollected(events_str_ptr);
}

Powered by Google App Engine
This is Rietveld 408576698