rustenium_bidi_definitions/script/
commands.rs1use serde::{Deserialize, Serialize};
2#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
3pub struct AddPreloadScriptParams {
4 #[serde(rename = "functionDeclaration")]
5 pub function_declaration: String,
6 #[serde(rename = "arguments")]
7 #[serde(skip_serializing_if = "Option::is_none")]
8 #[serde(default)]
9 pub arguments: Option<Vec<super::types::ChannelValue>>,
10 #[serde(rename = "contexts")]
11 #[serde(skip_serializing_if = "Option::is_none")]
12 #[serde(default)]
13 pub contexts: Option<Vec<crate::browsing_context::types::BrowsingContext>>,
14 #[serde(rename = "userContexts")]
15 #[serde(skip_serializing_if = "Option::is_none")]
16 #[serde(default)]
17 pub user_contexts: Option<Vec<crate::browser::types::UserContext>>,
18 #[serde(rename = "sandbox")]
19 #[serde(skip_serializing_if = "Option::is_none")]
20 #[serde(default)]
21 pub sandbox: Option<String>,
22}
23impl AddPreloadScriptParams {
24 pub fn new(function_declaration: impl Into<String>) -> Self {
25 Self {
26 function_declaration: function_declaration.into(),
27 arguments: None,
28 contexts: None,
29 user_contexts: None,
30 sandbox: None,
31 }
32 }
33}
34impl<T: Into<String>> From<T> for AddPreloadScriptParams {
35 fn from(url: T) -> Self {
36 AddPreloadScriptParams::new(url)
37 }
38}
39#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
40pub enum AddPreloadScriptMethod {
41 #[serde(rename = "script.addPreloadScript")]
42 AddPreloadScript,
43}
44#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
45pub struct AddPreloadScript {
46 pub method: AddPreloadScriptMethod,
47 pub params: AddPreloadScriptParams,
48}
49impl AddPreloadScript {
50 pub const IDENTIFIER: &'static str = "script.addPreloadScript";
51 pub const DOMAIN_DIRECTION: &'static str = "remote";
52 pub fn identifier(&self) -> &'static str {
53 Self::IDENTIFIER
54 }
55}
56impl crate::CommandResult for AddPreloadScript {
57 type Result = super::results::AddPreloadScriptResult;
58}
59#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
60pub struct DisownParams {
61 #[serde(rename = "handles")]
62 #[serde(skip_serializing_if = "Vec::is_empty")]
63 pub handles: Vec<super::types::Handle>,
64 #[serde(rename = "target")]
65 pub target: super::types::Target,
66}
67impl DisownParams {
68 pub fn new(
69 handles: Vec<super::types::Handle>,
70 target: impl Into<super::types::Target>,
71 ) -> Self {
72 Self {
73 handles,
74 target: target.into(),
75 }
76 }
77}
78#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
79pub enum DisownMethod {
80 #[serde(rename = "script.disown")]
81 Disown,
82}
83#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
84pub struct Disown {
85 pub method: DisownMethod,
86 pub params: DisownParams,
87}
88impl Disown {
89 pub const IDENTIFIER: &'static str = "script.disown";
90 pub const DOMAIN_DIRECTION: &'static str = "remote";
91 pub fn identifier(&self) -> &'static str {
92 Self::IDENTIFIER
93 }
94}
95impl crate::CommandResult for Disown {
96 type Result = super::results::DisownResult;
97}
98#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
99pub struct CallFunctionParams {
100 #[serde(rename = "functionDeclaration")]
101 pub function_declaration: String,
102 #[serde(rename = "awaitPromise")]
103 pub await_promise: bool,
104 #[serde(rename = "target")]
105 pub target: super::types::Target,
106 #[serde(rename = "arguments")]
107 #[serde(skip_serializing_if = "Option::is_none")]
108 #[serde(default)]
109 pub arguments: Option<Vec<super::types::LocalValue>>,
110 #[serde(rename = "resultOwnership")]
111 #[serde(skip_serializing_if = "Option::is_none")]
112 #[serde(default)]
113 pub result_ownership: Option<super::types::ResultOwnership>,
114 #[serde(rename = "serializationOptions")]
115 #[serde(skip_serializing_if = "Option::is_none")]
116 #[serde(default)]
117 pub serialization_options: Option<super::types::SerializationOptions>,
118 #[serde(rename = "this")]
119 #[serde(skip_serializing_if = "Option::is_none")]
120 #[serde(default)]
121 pub this: Option<super::types::LocalValue>,
122 #[serde(rename = "userActivation")]
123 #[serde(skip_serializing_if = "Option::is_none")]
124 #[serde(default = "default_call_function_params_user_activation")]
125 pub user_activation: Option<bool>,
126}
127fn default_call_function_params_user_activation() -> Option<bool> {
128 Some(false)
129}
130impl CallFunctionParams {
131 pub fn new(
132 function_declaration: impl Into<String>,
133 await_promise: impl Into<bool>,
134 target: impl Into<super::types::Target>,
135 ) -> Self {
136 Self {
137 function_declaration: function_declaration.into(),
138 await_promise: await_promise.into(),
139 target: target.into(),
140 arguments: None,
141 result_ownership: None,
142 serialization_options: None,
143 this: None,
144 user_activation: None,
145 }
146 }
147}
148#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
149pub enum CallFunctionMethod {
150 #[serde(rename = "script.callFunction")]
151 CallFunction,
152}
153#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
154pub struct CallFunction {
155 pub method: CallFunctionMethod,
156 pub params: CallFunctionParams,
157}
158impl CallFunction {
159 pub const IDENTIFIER: &'static str = "script.callFunction";
160 pub const DOMAIN_DIRECTION: &'static str = "remote";
161 pub fn identifier(&self) -> &'static str {
162 Self::IDENTIFIER
163 }
164}
165impl crate::CommandResult for CallFunction {
166 type Result = super::results::CallFunctionResult;
167}
168#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
169pub struct EvaluateParams {
170 #[serde(rename = "expression")]
171 pub expression: String,
172 #[serde(rename = "target")]
173 pub target: super::types::Target,
174 #[serde(rename = "awaitPromise")]
175 pub await_promise: bool,
176 #[serde(rename = "resultOwnership")]
177 #[serde(skip_serializing_if = "Option::is_none")]
178 #[serde(default)]
179 pub result_ownership: Option<super::types::ResultOwnership>,
180 #[serde(rename = "serializationOptions")]
181 #[serde(skip_serializing_if = "Option::is_none")]
182 #[serde(default)]
183 pub serialization_options: Option<super::types::SerializationOptions>,
184 #[serde(rename = "userActivation")]
185 #[serde(skip_serializing_if = "Option::is_none")]
186 #[serde(default = "default_evaluate_params_user_activation")]
187 pub user_activation: Option<bool>,
188}
189fn default_evaluate_params_user_activation() -> Option<bool> {
190 Some(false)
191}
192impl EvaluateParams {
193 pub fn new(
194 expression: impl Into<String>,
195 target: impl Into<super::types::Target>,
196 await_promise: impl Into<bool>,
197 ) -> Self {
198 Self {
199 expression: expression.into(),
200 target: target.into(),
201 await_promise: await_promise.into(),
202 result_ownership: None,
203 serialization_options: None,
204 user_activation: None,
205 }
206 }
207}
208#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
209pub enum EvaluateMethod {
210 #[serde(rename = "script.evaluate")]
211 Evaluate,
212}
213#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
214pub struct Evaluate {
215 pub method: EvaluateMethod,
216 pub params: EvaluateParams,
217}
218impl Evaluate {
219 pub const IDENTIFIER: &'static str = "script.evaluate";
220 pub const DOMAIN_DIRECTION: &'static str = "remote";
221 pub fn identifier(&self) -> &'static str {
222 Self::IDENTIFIER
223 }
224}
225impl crate::CommandResult for Evaluate {
226 type Result = super::results::EvaluateResult;
227}
228#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
229pub struct GetRealmsParams {
230 #[serde(rename = "context")]
231 #[serde(skip_serializing_if = "Option::is_none")]
232 #[serde(default)]
233 pub context: Option<crate::browsing_context::types::BrowsingContext>,
234 #[serde(rename = "type")]
235 #[serde(skip_serializing_if = "Option::is_none")]
236 #[serde(default)]
237 pub r#type: Option<super::types::RealmType>,
238}
239#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
240pub enum GetRealmsMethod {
241 #[serde(rename = "script.getRealms")]
242 GetRealms,
243}
244#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
245pub struct GetRealms {
246 pub method: GetRealmsMethod,
247 pub params: GetRealmsParams,
248}
249impl GetRealms {
250 pub const IDENTIFIER: &'static str = "script.getRealms";
251 pub const DOMAIN_DIRECTION: &'static str = "remote";
252 pub fn identifier(&self) -> &'static str {
253 Self::IDENTIFIER
254 }
255}
256impl crate::CommandResult for GetRealms {
257 type Result = super::results::GetRealmsResult;
258}
259#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
260pub struct RemovePreloadScriptParams {
261 #[serde(rename = "script")]
262 pub script: super::types::PreloadScript,
263}
264impl RemovePreloadScriptParams {
265 pub fn new(script: impl Into<super::types::PreloadScript>) -> Self {
266 Self {
267 script: script.into(),
268 }
269 }
270}
271#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
272pub enum RemovePreloadScriptMethod {
273 #[serde(rename = "script.removePreloadScript")]
274 RemovePreloadScript,
275}
276#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
277pub struct RemovePreloadScript {
278 pub method: RemovePreloadScriptMethod,
279 pub params: RemovePreloadScriptParams,
280}
281impl RemovePreloadScript {
282 pub const IDENTIFIER: &'static str = "script.removePreloadScript";
283 pub const DOMAIN_DIRECTION: &'static str = "remote";
284 pub fn identifier(&self) -> &'static str {
285 Self::IDENTIFIER
286 }
287}
288impl crate::CommandResult for RemovePreloadScript {
289 type Result = super::results::RemovePreloadScriptResult;
290}
291group_enum ! (ScriptCommand { AddPreloadScript (AddPreloadScript) , Disown (Disown) , CallFunction (CallFunction) , Evaluate (Evaluate) , GetRealms (GetRealms) , RemovePreloadScript (RemovePreloadScript) } + identifiable);