browser_protocol/layertree/
mod.rs1use serde::{Serialize, Deserialize};
2use serde_json::Value as JsonValue;
3
4pub type LayerId = String;
7
8pub type SnapshotId = String;
11
12#[derive(Debug, Clone, Serialize, Deserialize, Default)]
15#[serde(rename_all = "camelCase")]
16pub struct ScrollRect {
17 pub rect: crate::dom::Rect,
20 #[serde(rename = "type")]
23 pub type_: String,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize, Default)]
29#[serde(rename_all = "camelCase")]
30pub struct StickyPositionConstraint {
31 pub stickyBoxRect: crate::dom::Rect,
34 pub containingBlockRect: crate::dom::Rect,
37 #[serde(skip_serializing_if = "Option::is_none")]
40 pub nearestLayerShiftingStickyBox: Option<LayerId>,
41 #[serde(skip_serializing_if = "Option::is_none")]
44 pub nearestLayerShiftingContainingBlock: Option<LayerId>,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize, Default)]
50#[serde(rename_all = "camelCase")]
51pub struct PictureTile {
52 pub x: f64,
55 pub y: f64,
58 pub picture: String,
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize, Default)]
66#[serde(rename_all = "camelCase")]
67pub struct Layer {
68 pub layerId: LayerId,
71 #[serde(skip_serializing_if = "Option::is_none")]
74 pub parentLayerId: Option<LayerId>,
75 #[serde(skip_serializing_if = "Option::is_none")]
78 pub backendNodeId: Option<crate::dom::BackendNodeId>,
79 pub offsetX: f64,
82 pub offsetY: f64,
85 pub width: f64,
88 pub height: f64,
91 #[serde(skip_serializing_if = "Option::is_none")]
94 pub transform: Option<Vec<f64>>,
95 #[serde(skip_serializing_if = "Option::is_none")]
98 pub anchorX: Option<f64>,
99 #[serde(skip_serializing_if = "Option::is_none")]
102 pub anchorY: Option<f64>,
103 #[serde(skip_serializing_if = "Option::is_none")]
106 pub anchorZ: Option<f64>,
107 pub paintCount: u64,
110 pub drawsContent: bool,
114 #[serde(skip_serializing_if = "Option::is_none")]
117 pub invisible: Option<bool>,
118 #[serde(skip_serializing_if = "Option::is_none")]
121 pub scrollRects: Option<Vec<ScrollRect>>,
122 #[serde(skip_serializing_if = "Option::is_none")]
125 pub stickyPositionConstraint: Option<StickyPositionConstraint>,
126}
127
128pub type PaintProfile = Vec<f64>;
131
132#[derive(Debug, Clone, Serialize, Deserialize, Default)]
135#[serde(rename_all = "camelCase")]
136pub struct CompositingReasonsParams {
137 pub layerId: LayerId,
140}
141
142#[derive(Debug, Clone, Serialize, Deserialize, Default)]
145#[serde(rename_all = "camelCase")]
146pub struct CompositingReasonsReturns {
147 pub compositingReasons: Vec<String>,
150 pub compositingReasonIds: Vec<String>,
153}
154
155#[derive(Debug, Clone, Serialize, Deserialize, Default)]
158#[serde(rename_all = "camelCase")]
159pub struct LoadSnapshotParams {
160 pub tiles: Vec<PictureTile>,
163}
164
165#[derive(Debug, Clone, Serialize, Deserialize, Default)]
168#[serde(rename_all = "camelCase")]
169pub struct LoadSnapshotReturns {
170 pub snapshotId: SnapshotId,
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize, Default)]
178#[serde(rename_all = "camelCase")]
179pub struct MakeSnapshotParams {
180 pub layerId: LayerId,
183}
184
185#[derive(Debug, Clone, Serialize, Deserialize, Default)]
188#[serde(rename_all = "camelCase")]
189pub struct MakeSnapshotReturns {
190 pub snapshotId: SnapshotId,
193}
194
195
196#[derive(Debug, Clone, Serialize, Deserialize, Default)]
197#[serde(rename_all = "camelCase")]
198pub struct ProfileSnapshotParams {
199 pub snapshotId: SnapshotId,
202 #[serde(skip_serializing_if = "Option::is_none")]
205 pub minRepeatCount: Option<u64>,
206 #[serde(skip_serializing_if = "Option::is_none")]
209 pub minDuration: Option<f64>,
210 #[serde(skip_serializing_if = "Option::is_none")]
213 pub clipRect: Option<crate::dom::Rect>,
214}
215
216
217#[derive(Debug, Clone, Serialize, Deserialize, Default)]
218#[serde(rename_all = "camelCase")]
219pub struct ProfileSnapshotReturns {
220 pub timings: Vec<PaintProfile>,
223}
224
225#[derive(Debug, Clone, Serialize, Deserialize, Default)]
228#[serde(rename_all = "camelCase")]
229pub struct ReleaseSnapshotParams {
230 pub snapshotId: SnapshotId,
233}
234
235#[derive(Debug, Clone, Serialize, Deserialize, Default)]
238#[serde(rename_all = "camelCase")]
239pub struct ReplaySnapshotParams {
240 pub snapshotId: SnapshotId,
243 #[serde(skip_serializing_if = "Option::is_none")]
246 pub fromStep: Option<i64>,
247 #[serde(skip_serializing_if = "Option::is_none")]
250 pub toStep: Option<i64>,
251 #[serde(skip_serializing_if = "Option::is_none")]
254 pub scale: Option<f64>,
255}
256
257#[derive(Debug, Clone, Serialize, Deserialize, Default)]
260#[serde(rename_all = "camelCase")]
261pub struct ReplaySnapshotReturns {
262 pub dataURL: String,
265}
266
267#[derive(Debug, Clone, Serialize, Deserialize, Default)]
270#[serde(rename_all = "camelCase")]
271pub struct SnapshotCommandLogParams {
272 pub snapshotId: SnapshotId,
275}
276
277#[derive(Debug, Clone, Serialize, Deserialize, Default)]
280#[serde(rename_all = "camelCase")]
281pub struct SnapshotCommandLogReturns {
282 pub commandLog: Vec<serde_json::Map<String, JsonValue>>,
285}