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

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 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
« no previous file with comments | « content/browser/tracing/tracing_controller_impl.cc ('k') | content/public/browser/tracing_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1f717745c9ef31b062065ca249ef827f952c67a2..e5215ce6d1650d81078496aec12330052b8b9c90 100644
--- a/content/browser/tracing/tracing_controller_impl_data_sinks.cc
+++ b/content/browser/tracing/tracing_controller_impl_data_sinks.cc
@@ -14,6 +14,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>,
@@ -118,7 +121,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;
@@ -132,24 +135,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 : GetAgentTrace())
+ AddTraceChunkAndPassToEndpoint(",\"" + it.first + "\": " + it.second);
+
std::string metadataJSON;
if (base::JSONWriter::Write(*GetMetadataCopy(), &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 : GetAgentTrace()) {
AddTraceChunkAndCompressOnFileThread(
- ",\"systemTraceEvents\": " + system_trace_, false);
+ ",\"" + it.first + "\": " + it.second, false);
}
+
std::string metadataJSON;
if (base::JSONWriter::Write(*GetMetadataCopy(), &metadataJSON) &&
!metadataJSON.empty()) {
- AddTraceChunkAndCompressOnFileThread(",\"metadata\": " + metadataJSON,
- false);
- }
- if (!power_trace_.empty()) {
AddTraceChunkAndCompressOnFileThread(
- ",\"powerTraceAsString\": " + power_trace_, false);
+ ",\"" + std::string(kMetadataTraceLabel) + "\": " + metadataJSON,
+ false);
}
AddTraceChunkAndCompressOnFileThread("}", true);
@@ -300,8 +288,6 @@ 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);
};
@@ -312,6 +298,19 @@ 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::GetAgentTrace() const {
+ return additional_tracing_agent_trace_;
+}
+
void TracingController::TraceDataSink::AddMetadata(
const base::DictionaryValue& data) {
metadata_.MergeDictionary(&data);
« no previous file with comments | « content/browser/tracing/tracing_controller_impl.cc ('k') | content/public/browser/tracing_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698