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

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: fix compile failure for cros 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..2ecb8d26cb5ee5492504edd7075132995bbaa5f8 100644
--- a/content/browser/tracing/tracing_controller_impl_data_sinks.cc
+++ b/content/browser/tracing/tracing_controller_impl_data_sinks.cc
@@ -131,25 +131,26 @@ 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 (base::DictionaryValue::Iterator it(GetAdditionalTracingAgentTrace());
+ !it.IsAtEnd(); it.Advance()) {
+ std::string trace;
+ DCHECK(it.value().GetAsString(&trace));
+ if (it.key() == base::trace_event::TracingAgent::kCrOSTracingAgentName ||
shatch 2015/11/27 19:29:18 Don't need to do this now but could probably go fu
Zhen Wang 2015/12/01 00:14:32 Done.
+ it.key() == base::trace_event::TracingAgent::kETWTracingAgentName) {
+ AddTraceChunkAndPassToEndpoint(",\"systemTraceEvents\": " + trace);
+ } else if (it.key() ==
+ base::trace_event::TracingAgent::kPowerTracingAgentName) {
+ AddTraceChunkAndPassToEndpoint(",\"powerTraceAsString\": " + trace);
+ }
+ }
+
std::string metadataJSON;
if (base::JSONWriter::Write(GetMetadata(), &metadataJSON) &&
!metadataJSON.empty())
AddTraceChunkAndPassToEndpoint(",\"metadata\": " + metadataJSON);
- if (!power_trace_.empty()) {
- AddTraceChunkAndPassToEndpoint(",\"powerTraceAsString\": " +
- power_trace_);
- }
AddTraceChunkAndPassToEndpoint("}");
@@ -162,8 +163,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 +183,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,
@@ -273,20 +266,28 @@ class CompressedStringTraceDataSink : public TracingController::TraceDataSink {
AddTraceChunkAndCompressOnFileThread("{\"traceEvents\":[", false);
AddTraceChunkAndCompressOnFileThread("]", false);
- if (!system_trace_.empty()) {
- AddTraceChunkAndCompressOnFileThread(
- ",\"systemTraceEvents\": " + system_trace_, false);
+
+ for (base::DictionaryValue::Iterator it(GetAdditionalTracingAgentTrace());
+ !it.IsAtEnd(); it.Advance()) {
+ std::string trace;
+ DCHECK(it.value().GetAsString(&trace));
+ if (it.key() == base::trace_event::TracingAgent::kCrOSTracingAgentName ||
+ it.key() == base::trace_event::TracingAgent::kETWTracingAgentName) {
+ AddTraceChunkAndCompressOnFileThread(
+ ",\"systemTraceEvents\": " + trace, false);
+ } else if (it.key() ==
+ base::trace_event::TracingAgent::kPowerTracingAgentName) {
+ AddTraceChunkAndCompressOnFileThread(
+ ",\"powerTraceAsString\": " + trace, 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);
- }
AddTraceChunkAndCompressOnFileThread("}", true);
deflateEnd(stream_.get());
@@ -301,14 +302,23 @@ 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
+void TracingController::TraceDataSink::AddAdditionalTracingAgentTrace(
+ const std::string& agent_name,
+ const std::string& trace_data) {
+ additional_tracing_agent_trace_.SetString(agent_name, trace_data);
+}
+
+const base::DictionaryValue&
+ 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