1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct Frame {
11 pub id: String,
13 pub parent_id: Option<String>,
15 pub loader_id: String,
17 pub name: Option<String>,
19 pub url: String,
21 pub security_origin: Option<String>,
23 pub mime_type: Option<String>,
25}
26
27#[derive(Debug, Clone, Serialize)]
29#[serde(rename_all = "camelCase")]
30pub struct NavigateParams {
31 pub url: String,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub referrer: Option<String>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub transition_type: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub frame_id: Option<String>,
42}
43
44#[derive(Debug, Clone, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct NavigateResult {
48 pub frame_id: String,
50 pub loader_id: Option<String>,
52 pub error_text: Option<String>,
54}
55
56#[derive(Debug, Clone, Serialize, Default)]
58#[serde(rename_all = "camelCase")]
59pub struct ReloadParams {
60 #[serde(skip_serializing_if = "Option::is_none")]
62 pub ignore_cache: Option<bool>,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub script_to_evaluate_on_load: Option<String>,
66}
67
68#[derive(Debug, Clone, Deserialize)]
70#[serde(rename_all = "camelCase")]
71pub struct GetFrameTreeResult {
72 pub frame_tree: FrameTree,
74}
75
76#[derive(Debug, Clone, Deserialize)]
78#[serde(rename_all = "camelCase")]
79pub struct FrameTree {
80 pub frame: Frame,
82 pub child_frames: Option<Vec<FrameTree>>,
84}
85
86#[derive(Debug, Clone, Deserialize)]
88pub struct LoadEventFiredEvent {
89 pub timestamp: f64,
91}
92
93#[derive(Debug, Clone, Deserialize)]
95pub struct DomContentEventFiredEvent {
96 pub timestamp: f64,
98}
99
100#[derive(Debug, Clone, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct FrameNavigatedEvent {
104 pub frame: Frame,
106 #[serde(rename = "type")]
108 pub navigation_type: Option<String>,
109}
110
111#[derive(Debug, Clone, Deserialize)]
113#[serde(rename_all = "camelCase")]
114pub struct FrameStartedLoadingEvent {
115 pub frame_id: String,
117}
118
119#[derive(Debug, Clone, Deserialize)]
121#[serde(rename_all = "camelCase")]
122pub struct FrameStoppedLoadingEvent {
123 pub frame_id: String,
125}
126
127#[derive(Debug, Clone, Deserialize)]
129#[serde(rename_all = "camelCase")]
130pub struct LifecycleEvent {
131 pub frame_id: String,
133 pub loader_id: String,
135 pub name: String,
137 pub timestamp: f64,
139}
140
141#[derive(Debug, Clone, Serialize)]
143pub struct SetLifecycleEventsEnabledParams {
144 pub enabled: bool,
146}
147
148#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Default)]
154#[serde(rename_all = "lowercase")]
155pub enum ScreenshotFormat {
156 #[default]
158 Png,
159 Jpeg,
161 Webp,
163}
164
165#[derive(Debug, Clone, Serialize)]
167#[serde(rename_all = "camelCase")]
168pub struct Viewport {
169 pub x: f64,
171 pub y: f64,
173 pub width: f64,
175 pub height: f64,
177 pub scale: f64,
179}
180
181#[derive(Debug, Clone, Serialize, Default)]
183#[serde(rename_all = "camelCase")]
184pub struct CaptureScreenshotParams {
185 #[serde(skip_serializing_if = "Option::is_none")]
187 pub format: Option<ScreenshotFormat>,
188 #[serde(skip_serializing_if = "Option::is_none")]
190 pub quality: Option<u8>,
191 #[serde(skip_serializing_if = "Option::is_none")]
193 pub clip: Option<Viewport>,
194 #[serde(skip_serializing_if = "Option::is_none")]
196 pub from_surface: Option<bool>,
197 #[serde(skip_serializing_if = "Option::is_none")]
199 pub capture_beyond_viewport: Option<bool>,
200 #[serde(skip_serializing_if = "Option::is_none")]
202 pub optimize_for_speed: Option<bool>,
203}
204
205#[derive(Debug, Clone, Deserialize)]
207pub struct CaptureScreenshotResult {
208 pub data: String,
210}
211
212#[derive(Debug, Clone, Serialize, Default)]
218#[serde(rename_all = "camelCase")]
219pub struct PrintToPdfParams {
220 #[serde(skip_serializing_if = "Option::is_none")]
222 pub landscape: Option<bool>,
223 #[serde(skip_serializing_if = "Option::is_none")]
225 pub display_header_footer: Option<bool>,
226 #[serde(skip_serializing_if = "Option::is_none")]
228 pub print_background: Option<bool>,
229 #[serde(skip_serializing_if = "Option::is_none")]
231 pub scale: Option<f64>,
232 #[serde(skip_serializing_if = "Option::is_none")]
234 pub paper_width: Option<f64>,
235 #[serde(skip_serializing_if = "Option::is_none")]
237 pub paper_height: Option<f64>,
238 #[serde(skip_serializing_if = "Option::is_none")]
240 pub margin_top: Option<f64>,
241 #[serde(skip_serializing_if = "Option::is_none")]
243 pub margin_bottom: Option<f64>,
244 #[serde(skip_serializing_if = "Option::is_none")]
246 pub margin_left: Option<f64>,
247 #[serde(skip_serializing_if = "Option::is_none")]
249 pub margin_right: Option<f64>,
250 #[serde(skip_serializing_if = "Option::is_none")]
252 pub page_ranges: Option<String>,
253 #[serde(skip_serializing_if = "Option::is_none")]
255 pub header_template: Option<String>,
256 #[serde(skip_serializing_if = "Option::is_none")]
258 pub footer_template: Option<String>,
259 #[serde(skip_serializing_if = "Option::is_none")]
261 pub prefer_css_page_size: Option<bool>,
262 #[serde(skip_serializing_if = "Option::is_none")]
264 pub transfer_mode: Option<String>,
265 #[serde(skip_serializing_if = "Option::is_none")]
267 pub generate_tagged_pdf: Option<bool>,
268 #[serde(skip_serializing_if = "Option::is_none")]
270 pub generate_document_outline: Option<bool>,
271}
272
273#[derive(Debug, Clone, Deserialize)]
275pub struct PrintToPdfResult {
276 pub data: String,
278 pub stream: Option<String>,
280}
281
282#[derive(Debug, Clone, Deserialize)]
288pub struct NavigationHistoryResult {}
289
290#[derive(Debug, Clone, Deserialize)]
292#[serde(rename_all = "camelCase")]
293pub struct GetNavigationHistoryResult {
294 pub current_index: i32,
296 pub entries: Vec<NavigationEntry>,
298}
299
300#[derive(Debug, Clone, Deserialize)]
302#[serde(rename_all = "camelCase")]
303pub struct NavigationEntry {
304 pub id: i32,
306 pub url: String,
308 #[serde(default)]
310 pub user_typed_url: String,
311 pub title: String,
313 #[serde(default)]
315 pub transition_type: String,
316}
317
318#[derive(Debug, Clone, Serialize)]
320#[serde(rename_all = "camelCase")]
321pub struct NavigateToHistoryEntryParams {
322 pub entry_id: i32,
324}
325
326#[derive(Debug, Clone, Serialize)]
332#[serde(rename_all = "camelCase")]
333pub struct AddScriptToEvaluateOnNewDocumentParams {
334 pub source: String,
336 #[serde(skip_serializing_if = "Option::is_none")]
338 pub world_name: Option<String>,
339 #[serde(skip_serializing_if = "Option::is_none")]
341 pub include_command_line_api: Option<bool>,
342 #[serde(skip_serializing_if = "Option::is_none")]
344 pub run_immediately: Option<bool>,
345}
346
347#[derive(Debug, Clone, Deserialize)]
349pub struct AddScriptToEvaluateOnNewDocumentResult {
350 pub identifier: String,
352}
353
354#[derive(Debug, Clone, Serialize)]
356pub struct RemoveScriptToEvaluateOnNewDocumentParams {
357 pub identifier: String,
359}
360
361#[derive(Debug, Clone, Serialize, Default)]
367pub struct BringToFrontParams {}
368
369#[derive(Debug, Clone, Serialize)]
371#[serde(rename_all = "camelCase")]
372pub struct SetDocumentContentParams {
373 pub frame_id: String,
375 pub html: String,
377}
378
379#[derive(Debug, Clone, Deserialize)]
381#[serde(rename_all = "camelCase")]
382pub struct WindowOpenEvent {
383 pub url: String,
385 pub window_name: String,
387 pub window_features: Vec<String>,
389 pub user_gesture: bool,
391}
392
393#[derive(Debug, Clone, Deserialize)]
401#[serde(rename_all = "camelCase")]
402pub struct FrameAttachedEvent {
403 pub frame_id: String,
405 pub parent_frame_id: String,
407 pub stack: Option<serde_json::Value>,
409}
410
411#[derive(Debug, Clone, Deserialize)]
415#[serde(rename_all = "camelCase")]
416pub struct FrameDetachedEvent {
417 pub frame_id: String,
419 pub reason: Option<FrameDetachedReason>,
421}
422
423#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize)]
425#[serde(rename_all = "camelCase")]
426pub enum FrameDetachedReason {
427 Remove,
429 Swap,
431}
432
433#[derive(Debug, Clone, Deserialize)]
437#[serde(rename_all = "camelCase")]
438pub struct NavigatedWithinDocumentEvent {
439 pub frame_id: String,
441 pub url: String,
443}
444
445#[derive(Debug, Clone, Deserialize)]
453#[serde(rename_all = "camelCase")]
454pub struct FileChooserOpenedEvent {
455 pub frame_id: String,
457 pub mode: FileChooserMode,
459 pub backend_node_id: Option<i32>,
462}
463
464#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize)]
466#[serde(rename_all = "camelCase")]
467pub enum FileChooserMode {
468 SelectSingle,
470 SelectMultiple,
472}
473
474#[derive(Debug, Clone, Serialize)]
476pub struct SetInterceptFileChooserDialogParams {
477 pub enabled: bool,
479}
480
481