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..b551268def3c31af4ed14bd8760453df518faacc 100644 |
--- a/content/browser/tracing/trace_controller_impl.cc |
+++ b/content/browser/tracing/trace_controller_impl.cc |
@@ -109,11 +109,14 @@ void TraceControllerImpl::InitStartupTracing(const CommandLine& command_line) { |
bool TraceControllerImpl::GetKnownCategoriesAsync(TraceSubscriber* subscriber) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ base::debug::TraceLog::TraceMode mode = |
+ TraceLog::GetInstance()->GetTraceMode(); |
+ |
// 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; |
- bool success = BeginTracing(subscriber, "*") && |
+ bool success = BeginTracing(subscriber, "*", mode) && |
EndTracingAsync(subscriber); |
is_get_categories_ = success; |
return success; |
@@ -122,28 +125,31 @@ bool TraceControllerImpl::GetKnownCategoriesAsync(TraceSubscriber* subscriber) { |
bool TraceControllerImpl::BeginTracing( |
TraceSubscriber* subscriber, |
const std::vector<std::string>& included_categories, |
- const std::vector<std::string>& excluded_categories) { |
+ const std::vector<std::string>& excluded_categories, |
+ base::debug::TraceLog::TraceMode mode) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
if (!can_begin_tracing(subscriber)) |
return false; |
// Enable tracing |
- TraceLog::GetInstance()->SetEnabled(included_categories, excluded_categories); |
+ TraceLog::GetInstance()->SetEnabled(included_categories, excluded_categories, |
+ mode); |
OnTracingBegan(subscriber); |
return true; |
} |
bool TraceControllerImpl::BeginTracing(TraceSubscriber* subscriber, |
- const std::string& categories) { |
+ const std::string& categories, |
+ base::debug::TraceLog::TraceMode mode) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
if (!can_begin_tracing(subscriber)) |
return false; |
// Enable tracing |
- TraceLog::GetInstance()->SetEnabled(categories); |
+ TraceLog::GetInstance()->SetEnabled(categories, mode); |
OnTracingBegan(subscriber); |
@@ -261,7 +267,8 @@ void TraceControllerImpl::AddFilter(TraceMessageFilter* filter) { |
filters_.insert(filter); |
if (is_tracing_enabled()) { |
- filter->SendBeginTracing(included_categories_, excluded_categories_); |
+ filter->SendBeginTracing(included_categories_, excluded_categories_, |
+ trace_mode_); |
if (!watch_category_.empty()) |
filter->SendSetWatchEvent(watch_category_, watch_name_); |
} |
@@ -285,9 +292,12 @@ void TraceControllerImpl::OnTracingBegan(TraceSubscriber* subscriber) { |
TraceLog::GetInstance()->GetEnabledTraceCategories(&included_categories_, |
&excluded_categories_); |
+ trace_mode_ = TraceLog::GetInstance()->GetTraceMode(); |
+ |
// Notify all child processes. |
for (FilterMap::iterator it = filters_.begin(); it != filters_.end(); ++it) { |
- it->get()->SendBeginTracing(included_categories_, excluded_categories_); |
+ it->get()->SendBeginTracing(included_categories_, excluded_categories_, |
+ trace_mode_); |
} |
} |