browser_protocol/tracing/
mod.rs1use serde::{Serialize, Deserialize};
2use serde_json::Value as JsonValue;
3
4pub type MemoryDumpConfig = serde_json::Map<String, JsonValue>;
7
8
9#[derive(Debug, Clone, Serialize, Deserialize, Default)]
10#[serde(rename_all = "camelCase")]
11pub struct TraceConfig {
12 #[serde(skip_serializing_if = "Option::is_none")]
15 pub recordMode: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
20 pub traceBufferSizeInKb: Option<f64>,
21 #[serde(skip_serializing_if = "Option::is_none")]
24 pub enableSampling: Option<bool>,
25 #[serde(skip_serializing_if = "Option::is_none")]
28 pub enableSystrace: Option<bool>,
29 #[serde(skip_serializing_if = "Option::is_none")]
32 pub enableArgumentFilter: Option<bool>,
33 #[serde(skip_serializing_if = "Option::is_none")]
36 pub includedCategories: Option<Vec<String>>,
37 #[serde(skip_serializing_if = "Option::is_none")]
40 pub excludedCategories: Option<Vec<String>>,
41 #[serde(skip_serializing_if = "Option::is_none")]
44 pub syntheticDelays: Option<Vec<String>>,
45 #[serde(skip_serializing_if = "Option::is_none")]
48 pub memoryDumpConfig: Option<MemoryDumpConfig>,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
55pub enum StreamFormat {
56 #[default]
57 Json,
58 Proto,
59}
60
61#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
64pub enum StreamCompression {
65 #[default]
66 None,
67 Gzip,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
75pub enum MemoryDumpLevelOfDetail {
76 #[default]
77 Background,
78 Light,
79 Detailed,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
89pub enum TracingBackend {
90 #[default]
91 Auto,
92 Chrome,
93 System,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize, Default)]
97pub struct EndParams {}
98
99impl EndParams { pub const METHOD: &'static str = "Tracing.end"; }
100
101impl crate::CdpCommand for EndParams {
102 const METHOD: &'static str = "Tracing.end";
103 type Response = crate::EmptyReturns;
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize, Default)]
109#[serde(rename_all = "camelCase")]
110pub struct GetCategoriesReturns {
111 pub categories: Vec<String>,
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize, Default)]
117pub struct GetCategoriesParams {}
118
119impl GetCategoriesParams { pub const METHOD: &'static str = "Tracing.getCategories"; }
120
121impl crate::CdpCommand for GetCategoriesParams {
122 const METHOD: &'static str = "Tracing.getCategories";
123 type Response = GetCategoriesReturns;
124}
125
126#[derive(Debug, Clone, Serialize, Deserialize, Default)]
129#[serde(rename_all = "camelCase")]
130pub struct GetTrackEventDescriptorReturns {
131 pub descriptor: String,
134}
135
136#[derive(Debug, Clone, Serialize, Deserialize, Default)]
137pub struct GetTrackEventDescriptorParams {}
138
139impl GetTrackEventDescriptorParams { pub const METHOD: &'static str = "Tracing.getTrackEventDescriptor"; }
140
141impl crate::CdpCommand for GetTrackEventDescriptorParams {
142 const METHOD: &'static str = "Tracing.getTrackEventDescriptor";
143 type Response = GetTrackEventDescriptorReturns;
144}
145
146#[derive(Debug, Clone, Serialize, Deserialize, Default)]
149#[serde(rename_all = "camelCase")]
150pub struct RecordClockSyncMarkerParams {
151 pub syncId: String,
154}
155
156impl RecordClockSyncMarkerParams { pub const METHOD: &'static str = "Tracing.recordClockSyncMarker"; }
157
158impl crate::CdpCommand for RecordClockSyncMarkerParams {
159 const METHOD: &'static str = "Tracing.recordClockSyncMarker";
160 type Response = crate::EmptyReturns;
161}
162
163#[derive(Debug, Clone, Serialize, Deserialize, Default)]
166#[serde(rename_all = "camelCase")]
167pub struct RequestMemoryDumpParams {
168 #[serde(skip_serializing_if = "Option::is_none")]
171 pub deterministic: Option<bool>,
172 #[serde(skip_serializing_if = "Option::is_none")]
175 pub levelOfDetail: Option<MemoryDumpLevelOfDetail>,
176}
177
178#[derive(Debug, Clone, Serialize, Deserialize, Default)]
181#[serde(rename_all = "camelCase")]
182pub struct RequestMemoryDumpReturns {
183 pub dumpGuid: String,
186 pub success: bool,
189}
190
191impl RequestMemoryDumpParams { pub const METHOD: &'static str = "Tracing.requestMemoryDump"; }
192
193impl crate::CdpCommand for RequestMemoryDumpParams {
194 const METHOD: &'static str = "Tracing.requestMemoryDump";
195 type Response = RequestMemoryDumpReturns;
196}
197
198#[derive(Debug, Clone, Serialize, Deserialize, Default)]
201#[serde(rename_all = "camelCase")]
202pub struct StartParams {
203 #[serde(skip_serializing_if = "Option::is_none")]
206 pub categories: Option<String>,
207 #[serde(skip_serializing_if = "Option::is_none")]
210 pub options: Option<String>,
211 #[serde(skip_serializing_if = "Option::is_none")]
214 pub bufferUsageReportingInterval: Option<f64>,
215 #[serde(skip_serializing_if = "Option::is_none")]
219 pub transferMode: Option<String>,
220 #[serde(skip_serializing_if = "Option::is_none")]
224 pub streamFormat: Option<StreamFormat>,
225 #[serde(skip_serializing_if = "Option::is_none")]
229 pub streamCompression: Option<StreamCompression>,
230
231 #[serde(skip_serializing_if = "Option::is_none")]
232 pub traceConfig: Option<TraceConfig>,
233 #[serde(skip_serializing_if = "Option::is_none")]
238 pub perfettoConfig: Option<String>,
239 #[serde(skip_serializing_if = "Option::is_none")]
242 pub tracingBackend: Option<TracingBackend>,
243}
244
245impl StartParams { pub const METHOD: &'static str = "Tracing.start"; }
246
247impl crate::CdpCommand for StartParams {
248 const METHOD: &'static str = "Tracing.start";
249 type Response = crate::EmptyReturns;
250}