Skip to main content

rustenium_bidi_definitions/script/
commands.rs

1use 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);