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

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: remove IssueClockSyncMarker Created 5 years 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..497fc1cad9d119a59131c5888cc8a12bdc170dc7 100644
--- a/content/browser/tracing/tracing_controller_impl_data_sinks.cc
+++ b/content/browser/tracing/tracing_controller_impl_data_sinks.cc
@@ -13,6 +13,9 @@ namespace content {
namespace {
+const char kChromeTraceLabel[] = "traceEvents";
+const char kMetadataTraceLabel[] = "metadata";
+
class StringTraceDataEndpoint : public TracingController::TraceDataEndpoint {
public:
typedef base::Callback<void(scoped_ptr<const base::DictionaryValue>,
@@ -117,7 +120,7 @@ class StringTraceDataSink : public TracingController::TraceDataSink {
void AddTraceChunk(const std::string& chunk) override {
std::string trace_string;
if (trace_.empty())
- trace_string = "{\"traceEvents\":[";
+ trace_string = "{\"" + std::string(kChromeTraceLabel) + "\":[";
else
trace_string = ",";
trace_string += chunk;
@@ -131,24 +134,17 @@ 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(kMetadataTraceLabel) + "\": " + metadataJSON);
}
AddTraceChunkAndPassToEndpoint("}");
@@ -162,8 +158,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 +178,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,
@@ -227,7 +215,7 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
DCHECK_CURRENTLY_ON(BrowserThread::FILE);
std::string trace;
if (compressed_trace_data_.empty())
- trace = "{\"traceEvents\":[";
+ trace = "{\"" + std::string(kChromeTraceLabel) + "\":[";
else
trace = ",";
trace += chunk_ptr->data();
@@ -269,23 +257,23 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
if (!OpenZStreamOnFileThread())
return;
- if (compressed_trace_data_.empty())
- AddTraceChunkAndCompressOnFileThread("{\"traceEvents\":[", false);
-
+ if (compressed_trace_data_.empty()) {
+ AddTraceChunkAndCompressOnFileThread(
+ "{\"" + std::string(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(kMetadataTraceLabel) + "\": " + metadataJSON,
+ false);
}
AddTraceChunkAndCompressOnFileThread("}", true);
@@ -301,14 +289,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