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

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

Issue 1468173003: [Tracing Clock Sync] Add TracingAgent interface in Chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review fix Created 5 years, 1 month 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/tracing_controller_impl_data_sinks.cc
diff --git a/content/browser/tracing/tracing_controller_impl_data_sinks.cc b/content/browser/tracing/tracing_controller_impl_data_sinks.cc
index 0f67ac357bd057f29787a08de0355df40d8493f0..396847a5edce6fa3328f93d2638670892c379d45 100644
--- a/content/browser/tracing/tracing_controller_impl_data_sinks.cc
+++ b/content/browser/tracing/tracing_controller_impl_data_sinks.cc
@@ -116,10 +116,13 @@ class StringTraceDataSink : public TracingController::TraceDataSink {
void AddTraceChunk(const std::string& chunk) override {
std::string trace_string;
- if (trace_.empty())
- trace_string = "{\"traceEvents\":[";
- else
+ if (trace_.empty()) {
+ trace_string = "{\"" +
+ std::string(base::trace_event::TracingAgent::kChromeTraceLabel) +
+ "\":[";
+ } else {
trace_string = ",";
+ }
trace_string += chunk;
AddTraceChunkAndPassToEndpoint(trace_string);
@@ -131,24 +134,18 @@ class StringTraceDataSink : public TracingController::TraceDataSink {
endpoint_->ReceiveTraceChunk(chunk);
}
- void SetSystemTrace(const std::string& data) override {
- system_trace_ = data;
- }
-
- void SetPowerTrace(const std::string& data) override { power_trace_ = data; }
-
void Close() override {
AddTraceChunkAndPassToEndpoint("]");
- if (!system_trace_.empty())
- AddTraceChunkAndPassToEndpoint(",\"systemTraceEvents\": " +
- system_trace_);
+
+ for (auto const &it : GetAdditionalTracingAgentTrace())
+ AddTraceChunkAndPassToEndpoint(",\"" + it.first + "\": " + it.second);
+
std::string metadataJSON;
if (base::JSONWriter::Write(GetMetadata(), &metadataJSON) &&
- !metadataJSON.empty())
- AddTraceChunkAndPassToEndpoint(",\"metadata\": " + metadataJSON);
- if (!power_trace_.empty()) {
- AddTraceChunkAndPassToEndpoint(",\"powerTraceAsString\": " +
- power_trace_);
+ !metadataJSON.empty()) {
+ AddTraceChunkAndPassToEndpoint(",\"" +
+ std::string(base::trace_event::TracingAgent::kMetadataTraceLabel) +
+ "\": " + metadataJSON);
}
AddTraceChunkAndPassToEndpoint("}");
@@ -162,8 +159,6 @@ class StringTraceDataSink : public TracingController::TraceDataSink {
scoped_refptr<TracingController::TraceDataEndpoint> endpoint_;
std::string trace_;
- std::string system_trace_;
- std::string power_trace_;
DISALLOW_COPY_AND_ASSIGN(StringTraceDataSink);
};
@@ -184,12 +179,6 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
this, chunk_ptr));
}
- void SetSystemTrace(const std::string& data) override {
- system_trace_ = data;
- }
-
- void SetPowerTrace(const std::string& data) override { power_trace_ = data; }
-
void Close() override {
BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
@@ -226,10 +215,13 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
const scoped_refptr<base::RefCountedString> chunk_ptr) {
DCHECK_CURRENTLY_ON(BrowserThread::FILE);
std::string trace;
- if (compressed_trace_data_.empty())
- trace = "{\"traceEvents\":[";
- else
+ if (compressed_trace_data_.empty()) {
+ trace = "{\"" +
+ std::string(base::trace_event::TracingAgent::kChromeTraceLabel) +
+ "\":[";
+ } else {
trace = ",";
+ }
trace += chunk_ptr->data();
AddTraceChunkAndCompressOnFileThread(trace, false);
}
@@ -269,23 +261,28 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
if (!OpenZStreamOnFileThread())
return;
- if (compressed_trace_data_.empty())
- AddTraceChunkAndCompressOnFileThread("{\"traceEvents\":[", false);
-
+ if (compressed_trace_data_.empty()) {
+ AddTraceChunkAndCompressOnFileThread(
+ "{\"" +
+ std::string(base::trace_event::TracingAgent::kChromeTraceLabel) +
+ "\":[",
+ false);
+ }
AddTraceChunkAndCompressOnFileThread("]", false);
- if (!system_trace_.empty()) {
+
+ for (auto const &it : GetAdditionalTracingAgentTrace()) {
AddTraceChunkAndCompressOnFileThread(
- ",\"systemTraceEvents\": " + system_trace_, false);
+ ",\"" + it.first + "\": " + it.second, false);
}
+
std::string metadataJSON;
if (base::JSONWriter::Write(GetMetadata(), &metadataJSON) &&
!metadataJSON.empty()) {
- AddTraceChunkAndCompressOnFileThread(",\"metadata\": " + metadataJSON,
- false);
- }
- if (!power_trace_.empty()) {
AddTraceChunkAndCompressOnFileThread(
- ",\"powerTraceAsString\": " + power_trace_, false);
+ ",\"" +
+ std::string(base::trace_event::TracingAgent::kMetadataTraceLabel) +
+ "\": " + metadataJSON,
+ false);
}
AddTraceChunkAndCompressOnFileThread("}", true);
@@ -301,14 +298,29 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
scoped_ptr<z_stream> stream_;
bool already_tried_open_;
std::string compressed_trace_data_;
- std::string system_trace_;
- std::string power_trace_;
DISALLOW_COPY_AND_ASSIGN(CompressedStringTraceDataSink);
};
} // namespace
+TracingController::TraceDataSink::TraceDataSink() {}
+
+TracingController::TraceDataSink::~TraceDataSink() {}
+
+void TracingController::TraceDataSink::AddAgentTrace(
+ const std::string& trace_label,
+ const std::string& trace_data) {
+ DCHECK(additional_tracing_agent_trace_.find(trace_label) ==
+ additional_tracing_agent_trace_.end());
+ additional_tracing_agent_trace_[trace_label] = trace_data;
+}
+
+const std::map<std::string, std::string>&
+ TracingController::TraceDataSink::GetAdditionalTracingAgentTrace() const {
+ return additional_tracing_agent_trace_;
+}
+
void TracingController::TraceDataSink::AddMetadata(
const base::DictionaryValue& data) {
metadata_.MergeDictionary(&data);

Powered by Google App Engine
This is Rietveld 408576698