rustenium_bidi_commands/browser/
commands.rs1use serde::{Serialize, Deserialize};
4use crate::session::types::ProxyConfiguration;
5use crate::session::types::UserPromptHandler;
6use crate::EmptyParams;
7use crate::EmptyResult;
8use super::types::*;
9
10#[derive(Debug, Clone, Serialize, Deserialize)]
11#[serde(untagged)]
12pub enum BrowserCommand {
13 Close(Close),
14 CreateUserContext(CreateUserContext),
15 GetClientWindows(GetClientWindows),
16 GetUserContexts(GetUserContexts),
17 RemoveUserContext(RemoveUserContext),
18 SetClientWindowState(SetClientWindowState),
19 SetDownloadBehavior(SetDownloadBehavior),
20}
21
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
24pub enum BrowserCloseMethod {
25 #[serde(rename = "drivers.close")]
26 BrowserClose,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize)]
30pub enum BrowserCreateUserContextMethod {
31 #[serde(rename = "drivers.createUserContext")]
32 BrowserCreateUserContext,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
36pub enum BrowserGetClientWindowsMethod {
37 #[serde(rename = "drivers.getClientWindows")]
38 BrowserGetClientWindows,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
42pub enum BrowserGetUserContextsMethod {
43 #[serde(rename = "drivers.getUserContexts")]
44 BrowserGetUserContexts,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
48pub enum BrowserRemoveUserContextMethod {
49 #[serde(rename = "drivers.removeUserContext")]
50 BrowserRemoveUserContext,
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
54pub enum BrowserSetClientWindowStateMethod {
55 #[serde(rename = "drivers.setClientWindowState")]
56 BrowserSetClientWindowState,
57}
58
59#[derive(Debug, Clone, Serialize, Deserialize)]
60pub enum BrowserSetDownloadBehaviorMethod {
61 #[serde(rename = "drivers.setDownloadBehavior")]
62 BrowserSetDownloadBehavior,
63}
64
65#[derive(Debug, Clone, Serialize, Deserialize)]
66pub struct CreateUserContextParameters {
67 #[serde(rename = "acceptInsecureCerts")]
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub accept_insecure_certs: Option<bool>,
70 #[serde(rename = "proxy")]
71 #[serde(skip_serializing_if = "Option::is_none")]
72 pub proxy: Option<ProxyConfiguration>,
73 #[serde(rename = "unhandledPromptBehavior")]
74 #[serde(skip_serializing_if = "Option::is_none")]
75 pub unhandled_prompt_behavior: Option<UserPromptHandler>,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
79pub struct RemoveUserContextParameters {
80 #[serde(rename = "userContext")]
81 pub user_context: UserContext,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
85pub struct SetClientWindowStateParameters {
86 #[serde(rename = "clientWindow")]
87 pub client_window: ClientWindow,
88 #[serde(flatten)]
89 pub client_window_named_state_client_window_rect_state_union: ClientWindowNamedStateClientWindowRectStateUnion,
90}
91
92#[derive(Debug, Clone, Serialize, Deserialize)]
93pub struct SetDownloadBehaviorParameters {
94 #[serde(rename = "downloadBehavior")]
95 pub download_behavior: Option<DownloadBehavior>,
96 #[serde(rename = "userContexts")]
97 #[serde(skip_serializing_if = "Option::is_none")]
98 pub user_contexts: Option<Vec<UserContext>>,
99}
100
101#[derive(Debug, Clone, Serialize, Deserialize)]
102pub struct Close {
103 #[serde(rename = "method")]
104 pub method: BrowserCloseMethod,
105 #[serde(rename = "params")]
106 pub params: EmptyParams,
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
110pub struct CreateUserContext {
111 #[serde(rename = "method")]
112 pub method: BrowserCreateUserContextMethod,
113 #[serde(rename = "params")]
114 pub params: CreateUserContextParameters,
115}
116
117#[derive(Debug, Clone, Serialize, Deserialize)]
118pub struct GetClientWindows {
119 #[serde(rename = "method")]
120 pub method: BrowserGetClientWindowsMethod,
121 #[serde(rename = "params")]
122 pub params: EmptyParams,
123}
124
125#[derive(Debug, Clone, Serialize, Deserialize)]
126pub struct GetUserContexts {
127 #[serde(rename = "method")]
128 pub method: BrowserGetUserContextsMethod,
129 #[serde(rename = "params")]
130 pub params: EmptyParams,
131}
132
133#[derive(Debug, Clone, Serialize, Deserialize)]
134pub struct RemoveUserContext {
135 #[serde(rename = "method")]
136 pub method: BrowserRemoveUserContextMethod,
137 #[serde(rename = "params")]
138 pub params: RemoveUserContextParameters,
139}
140
141#[derive(Debug, Clone, Serialize, Deserialize)]
142pub struct SetClientWindowState {
143 #[serde(rename = "method")]
144 pub method: BrowserSetClientWindowStateMethod,
145 #[serde(rename = "params")]
146 pub params: SetClientWindowStateParameters,
147}
148
149#[derive(Debug, Clone, Serialize, Deserialize)]
150pub struct SetDownloadBehavior {
151 #[serde(rename = "method")]
152 pub method: BrowserSetDownloadBehaviorMethod,
153 #[serde(rename = "params")]
154 pub params: SetDownloadBehaviorParameters,
155}
156
157#[derive(Debug, Clone, Serialize, Deserialize)]
160#[serde(untagged)]
161pub enum BrowserResult {
162 CloseResult(CloseResult),
163 CreateUserContextResult(CreateUserContextResult),
164 GetClientWindowsResult(GetClientWindowsResult),
165 GetUserContextsResult(GetUserContextsResult),
166 RemoveUserContextResult(RemoveUserContextResult),
167 SetClientWindowStateResult(SetClientWindowStateResult),
168 SetDownloadBehaviorResult(SetDownloadBehaviorResult),
169}
170
171
172pub type CloseResult = EmptyResult;
173
174
175pub type CreateUserContextResult = UserContextInfo;
176
177
178#[derive(Debug, Clone, Serialize, Deserialize)]
179pub struct GetClientWindowsResult {
180 #[serde(rename = "clientWindows")]
181 pub client_windows: Vec<ClientWindowInfo>,
182}
183
184#[derive(Debug, Clone, Serialize, Deserialize)]
185pub struct GetUserContextsResult {
186 #[serde(rename = "userContexts")]
187 pub user_contexts: Vec<UserContextInfo>,
188}
189
190pub type RemoveUserContextResult = EmptyResult;
191
192
193pub type SetClientWindowStateResult = ClientWindowInfo;
194
195
196pub type SetDownloadBehaviorResult = EmptyResult;
197
198