1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5pub struct BrowserVersion {
6 #[serde(rename = "protocolVersion")]
8 pub protocol_version: String,
9 pub product: String,
11 pub revision: String,
13 #[serde(rename = "userAgent")]
15 pub user_agent: String,
16 #[serde(rename = "jsVersion")]
18 pub js_version: String,
19}
20
21#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
23pub struct BrowserGetVersionResult {
24 pub version: BrowserVersion,
26}
27
28#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
30pub struct BrowserGetVersionParams {}
31
32#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
34pub struct TargetCreateTargetParams {
35 pub url: String,
37 #[serde(rename = "newWindow", skip_serializing_if = "Option::is_none")]
39 pub new_window: Option<bool>,
40}
41
42#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
44pub struct TargetCreateTargetResult {
45 #[serde(rename = "targetId")]
47 pub target_id: String,
48}
49
50#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
52pub struct TargetAttachToTargetParams {
53 #[serde(rename = "targetId")]
55 pub target_id: String,
56 #[serde(skip_serializing_if = "Option::is_none")]
58 pub flatten: Option<bool>,
59}
60
61#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
63pub struct TargetAttachToTargetResult {
64 #[serde(rename = "sessionId")]
66 pub session_id: String,
67}
68
69#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
71pub struct TargetSetAutoAttachParams {
72 #[serde(rename = "autoAttach")]
74 pub auto_attach: bool,
75 #[serde(rename = "waitForDebuggerOnStart")]
77 pub wait_for_debugger_on_start: bool,
78 pub flatten: bool,
80}
81
82#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
84pub struct TargetSetDiscoverTargetsParams {
85 pub discover: bool,
87}
88
89#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
91pub struct PageEnableParams {}
92
93#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
95pub struct PageSetLifecycleEventsEnabledParams {
96 pub enabled: bool,
98}
99
100#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
102pub struct RuntimeEnableParams {}
103
104#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
106pub struct NetworkEnableParams {}
107
108#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
110pub struct PageNavigateParams {
111 pub url: String,
113}
114
115#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
117pub struct PageNavigateResult {
118 #[serde(rename = "frameId", skip_serializing_if = "Option::is_none")]
120 pub frame_id: Option<String>,
121 #[serde(rename = "loaderId", skip_serializing_if = "Option::is_none")]
123 pub loader_id: Option<String>,
124}
125
126#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
128pub struct PageFrame {
129 pub id: String,
131 #[serde(rename = "parentId", skip_serializing_if = "Option::is_none")]
133 pub parent_id: Option<String>,
134 #[serde(rename = "loaderId", skip_serializing_if = "Option::is_none")]
136 pub loader_id: Option<String>,
137 #[serde(rename = "securityOrigin", skip_serializing_if = "Option::is_none")]
139 pub security_origin: Option<String>,
140 #[serde(rename = "mimeType", skip_serializing_if = "Option::is_none")]
142 pub mime_type: Option<String>,
143 #[serde(skip_serializing_if = "Option::is_none")]
145 pub name: Option<String>,
146 pub url: String,
148}
149
150#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
152pub struct PageFrameTree {
153 pub frame: PageFrame,
155 #[serde(rename = "childFrames", default, skip_serializing_if = "Vec::is_empty")]
157 pub child_frames: Vec<PageFrameTree>,
158}
159
160#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
162pub struct PageGetFrameTreeParams {}
163
164#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
166pub struct PageGetFrameTreeResult {
167 #[serde(rename = "frameTree")]
169 pub frame_tree: PageFrameTree,
170}
171
172#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
174pub struct PageCreateIsolatedWorldParams {
175 #[serde(rename = "frameId")]
177 pub frame_id: String,
178 #[serde(rename = "worldName", skip_serializing_if = "Option::is_none")]
180 pub world_name: Option<String>,
181 #[serde(
183 rename = "grantUniveralAccess",
184 skip_serializing_if = "Option::is_none"
185 )]
186 pub grant_universal_access: Option<bool>,
187}
188
189#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
191pub struct PageCreateIsolatedWorldResult {
192 #[serde(rename = "executionContextId")]
194 pub execution_context_id: i64,
195}
196
197#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
199pub struct RuntimeEvaluateParams {
200 pub expression: String,
202 #[serde(rename = "awaitPromise", skip_serializing_if = "Option::is_none")]
204 pub await_promise: Option<bool>,
205 #[serde(rename = "returnByValue", skip_serializing_if = "Option::is_none")]
207 pub return_by_value: Option<bool>,
208 #[serde(rename = "contextId", skip_serializing_if = "Option::is_none")]
210 pub context_id: Option<i64>,
211}
212
213#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
215pub struct RemoteObject {
216 #[serde(rename = "type")]
218 pub object_type: String,
219 #[serde(skip_serializing_if = "Option::is_none")]
221 pub description: Option<String>,
222 #[serde(skip_serializing_if = "Option::is_none")]
224 pub subtype: Option<String>,
225 #[serde(rename = "objectId", skip_serializing_if = "Option::is_none")]
227 pub object_id: Option<String>,
228 #[serde(rename = "value", skip_serializing_if = "Option::is_none")]
230 pub value: Option<serde_json::Value>,
231}
232
233#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
235pub struct RuntimeEvaluateResult {
236 pub result: RemoteObject,
238}
239
240#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
242pub struct RuntimeCallArgument {
243 #[serde(skip_serializing_if = "Option::is_none")]
245 pub value: Option<serde_json::Value>,
246 #[serde(rename = "objectId", skip_serializing_if = "Option::is_none")]
248 pub object_id: Option<String>,
249}
250
251#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
253pub struct RuntimeCallFunctionOnParams {
254 #[serde(rename = "objectId")]
256 pub object_id: String,
257 #[serde(rename = "functionDeclaration")]
259 pub function_declaration: String,
260 #[serde(default, skip_serializing_if = "Vec::is_empty")]
262 pub arguments: Vec<RuntimeCallArgument>,
263 #[serde(rename = "awaitPromise", skip_serializing_if = "Option::is_none")]
265 pub await_promise: Option<bool>,
266 #[serde(rename = "returnByValue", skip_serializing_if = "Option::is_none")]
268 pub return_by_value: Option<bool>,
269}
270
271#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
273pub struct RuntimeCallFunctionOnResult {
274 pub result: RemoteObject,
276}
277
278#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
280pub struct RuntimeReleaseObjectParams {
281 #[serde(rename = "objectId")]
283 pub object_id: String,
284}
285
286#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
288pub struct PageCaptureScreenshotParams {
289 #[serde(skip_serializing_if = "Option::is_none")]
291 pub format: Option<String>,
292}
293
294#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
296pub struct PageCaptureScreenshotResult {
297 pub data: String,
299}
300
301#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
303pub struct InputDispatchKeyEventParams {
304 #[serde(rename = "type")]
306 pub event_type: String,
307 pub key: String,
309 pub code: String,
311 #[serde(skip_serializing_if = "Option::is_none")]
313 pub text: Option<String>,
314 #[serde(rename = "unmodifiedText", skip_serializing_if = "Option::is_none")]
316 pub unmodified_text: Option<String>,
317 #[serde(rename = "windowsVirtualKeyCode")]
319 pub windows_virtual_key_code: i64,
320 #[serde(rename = "nativeVirtualKeyCode")]
322 pub native_virtual_key_code: i64,
323}
324
325#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
327pub struct InputInsertTextParams {
328 pub text: String,
330}
331
332#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
334pub struct FetchEnableParams {
335 #[serde(skip_serializing_if = "Option::is_none")]
337 pub patterns: Option<Vec<FetchPattern>>,
338}
339
340#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
342pub struct FetchPattern {
343 #[serde(rename = "urlPattern", skip_serializing_if = "Option::is_none")]
345 pub url_pattern: Option<String>,
346 #[serde(rename = "requestStage", skip_serializing_if = "Option::is_none")]
348 pub request_stage: Option<String>,
349}
350
351#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
353pub struct FetchHeaderEntry {
354 pub name: String,
356 pub value: String,
358}
359
360#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
362pub struct FetchContinueRequestParams {
363 #[serde(rename = "requestId")]
365 pub request_id: String,
366}
367
368#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
370pub struct FetchFulfillRequestParams {
371 #[serde(rename = "requestId")]
373 pub request_id: String,
374 #[serde(rename = "responseCode")]
376 pub response_code: u16,
377 #[serde(rename = "responseHeaders", skip_serializing_if = "Option::is_none")]
379 pub response_headers: Option<Vec<FetchHeaderEntry>>,
380 #[serde(skip_serializing_if = "Option::is_none")]
382 pub body: Option<String>,
383 #[serde(rename = "responsePhrase", skip_serializing_if = "Option::is_none")]
385 pub response_phrase: Option<String>,
386}
387
388#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
390pub struct FetchFailRequestParams {
391 #[serde(rename = "requestId")]
393 pub request_id: String,
394 #[serde(rename = "errorReason")]
396 pub error_reason: String,
397}
398
399#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
401pub struct FetchGetResponseBodyParams {
402 #[serde(rename = "requestId")]
404 pub request_id: String,
405}
406
407#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
409pub struct FetchGetResponseBodyResult {
410 pub body: String,
412 #[serde(rename = "base64Encoded")]
414 pub base64_encoded: bool,
415}