Index: chrome/browser/ui/webui/tracing_ui.cc |
diff --git a/chrome/browser/ui/webui/tracing_ui.cc b/chrome/browser/ui/webui/tracing_ui.cc |
index f13f15e3780c5aec12cf6afc5df99857b87335b6..efd15625114410e5086ba2c3932b782072c08a88 100644 |
--- a/chrome/browser/ui/webui/tracing_ui.cc |
+++ b/chrome/browser/ui/webui/tracing_ui.cc |
@@ -63,7 +63,7 @@ class TracingMessageHandler |
// TraceSubscriber implementation. |
virtual void OnEndTracingComplete(); |
- virtual void OnTraceDataCollected(const std::string& json_events); |
+ virtual void OnTraceDataCollected(const std::string& trace_fragment); |
virtual void OnTraceBufferPercentFullReply(float percent_full); |
// Messages. |
@@ -419,13 +419,20 @@ void TracingMessageHandler::OnEndTracingComplete() { |
} |
void TracingMessageHandler::OnTraceDataCollected( |
- const std::string& json_events) { |
+ const std::string& trace_fragment) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- std::string javascript = "tracingController.onTraceDataCollected(" |
- + json_events + ");"; |
+ |
+ base::debug::TraceResultBuffer::SimpleOutput output; |
+ base::debug::TraceResultBuffer trace_buffer; |
+ trace_buffer.SetOutputCallback(output.GetCallback()); |
+ output.Append("tracingController.onTraceDataCollected("); |
+ trace_buffer.Start(); |
+ trace_buffer.AddFragment(trace_fragment); |
+ trace_buffer.Finish(); |
+ output.Append(");"); |
web_ui_->tab_contents()->render_view_host()-> |
- ExecuteJavascriptInWebFrame(string16(), UTF8ToUTF16(javascript)); |
+ ExecuteJavascriptInWebFrame(string16(), UTF8ToUTF16(output.json_output)); |
} |
void TracingMessageHandler::OnTraceBufferPercentFullReply(float percent_full) { |