Index: content/browser/tracing/tracing_controller_impl.cc |
diff --git a/content/browser/tracing/tracing_controller_impl.cc b/content/browser/tracing/tracing_controller_impl.cc |
index 7115cc578e1130f71c30a7a5b346694f6d1031f7..12271b938835f0f8bae528b6d1c521845e40121c 100644 |
--- a/content/browser/tracing/tracing_controller_impl.cc |
+++ b/content/browser/tracing/tracing_controller_impl.cc |
@@ -684,16 +684,20 @@ void TracingControllerImpl::OnEndAgentTracingAcked( |
if (trace_data_sink_.get() && events_str_ptr && |
!events_str_ptr->data().empty()) { |
- if (agent_name == kETWTracingAgentName) { |
- // The Windows kernel events are kept into a JSON format stored as string |
- // and must not be escaped. |
- trace_data_sink_->AddAgentTrace(events_label, events_str_ptr->data()); |
- } else if (agent_name != kArcTracingAgentName) { |
- // ARC trace data is obtained via systrace. Ignore the empty data. |
- // Quote other trace data as JSON strings and merge them into |
- // |trace_data_sink_|. |
- trace_data_sink_->AddAgentTrace( |
- events_label, base::GetQuotedJSONString(events_str_ptr->data())); |
+ std::string json_string; |
+ if (agent_name == kETWTracingAgentName || |
+ agent_name == kArcTracingAgentName) { |
+ // The Windows kernel events and ARC Android tracing event are kept |
+ // into a JSON format stored as string and must not be escaped. |
+ json_string = events_str_ptr->data(); |
+ } else { |
+ json_string = base::GetQuotedJSONString(events_str_ptr->data()); |
+ } |
+ |
+ if (agent_name == kArcTracingAgentName) { |
+ trace_data_sink_->AddTraceChunk(json_string); |
+ } else { |
+ trace_data_sink_->AddAgentTrace(events_label, json_string); |
} |
} |
std::vector<std::string> category_groups; |