Index: services/resource_coordinator/public/interfaces/tracing/tracing.mojom |
diff --git a/services/resource_coordinator/public/interfaces/tracing/tracing.mojom b/services/resource_coordinator/public/interfaces/tracing/tracing.mojom |
index fb8cd3cbac55e130bd256d99acf7e8df6844c50c..29402c9b9d098d3a3454a44904a45af04ea4bf27 100644 |
--- a/services/resource_coordinator/public/interfaces/tracing/tracing.mojom |
+++ b/services/resource_coordinator/public/interfaces/tracing/tracing.mojom |
@@ -20,21 +20,25 @@ enum TraceDataType { |
// Tracing agents, like |chrome|, |etw|, |battor|, and |cros|, use this |
// interface to register themselves to the tracing service. |
-interface Factory { |
- RegisterAgent(Agent agent, string name, string label, TraceDataType type, |
+interface AgentSet { |
+ RegisterAgent(Agent agent, string label, TraceDataType type, |
bool supports_explicit_clock_sync_); |
}; |
-// There should be at most one implementation of this interface per process. |
// When the tracing service calls |StopAndFlush| on an agent, the agent begins |
// serializing data into the recorder that was given in the |StartTracing| call. |
// When finished, the agent should close the recorder connection to signal the |
// tracing service that no more data will be sent. |
interface Agent { |
- StartTracing(string categories, Recorder recorder); |
+ // If |report_categories_only| is true, the agent should not send trace events |
+ // to the recorder; they will be ignored; it should send only the list of |
+ // categories known to the agent. |
+ StartTracing( |
+ string config, Recorder recorder, bool report_categories_only) => (); |
StopAndFlush(); |
- RequestClockSyncMarker() => (mojo.common.mojom.TimeTicks issue_ts, |
- mojo.common.mojom.TimeTicks issue_end_ts); |
+ RequestClockSyncMarker(string sync_id) => ( |
+ mojo.common.mojom.TimeTicks issue_ts, |
+ mojo.common.mojom.TimeTicks issue_end_ts); |
RequestBufferStatus() => (uint32 capacity, uint32 count); |
}; |
@@ -43,6 +47,7 @@ interface Agent { |
// There should be only one agent of type STRING per agent label; otherwise |
// their trace data would be mixed up. |
interface Recorder { |
+ AddCategories(string categories); |
AddChunk(string chunk); |
AddMetadata(mojo.common.mojom.DictionaryValue metadata); |
}; |
@@ -51,8 +56,10 @@ interface Recorder { |
// from all registered agents. At any given time, there should be at most one |
// connected controller. |
interface Coordinator { |
- StartTracing(handle<data_pipe_producer> stream, string categories); |
+ StartTracing(handle<data_pipe_producer> stream, string config); |
StopAndFlush(); |
IsTracing() => (bool is_tracing); |
- RequestBufferUsage() => (float percent_full, uint32 approximate_count); |
+ RequestBufferUsage() => (bool success, float percent_full, |
+ uint32 approximate_count); |
+ GetCategories() => (string categories); |
}; |