rustenium_bidi_commands/script/
commands.rs1use serde::{Serialize, Deserialize};
4use crate::browser::types::UserContext;
5use crate::browsing_context::types::BrowsingContext;
6use crate::EmptyResult;
7use super::types::*;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10#[serde(untagged)]
11pub enum ScriptCommand {
12 AddPreloadScript(AddPreloadScript),
13 CallFunction(CallFunction),
14 Disown(Disown),
15 Evaluate(Evaluate),
16 GetRealms(GetRealms),
17 RemovePreloadScript(RemovePreloadScript),
18}
19
20
21#[derive(Debug, Clone, Serialize, Deserialize)]
22pub enum ScriptAddPreloadScriptMethod {
23 #[serde(rename = "script.addPreloadScript")]
24 ScriptAddPreloadScript,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub enum ScriptCallFunctionMethod {
29 #[serde(rename = "script.callFunction")]
30 ScriptCallFunction,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
34pub enum ScriptDisownMethod {
35 #[serde(rename = "script.disown")]
36 ScriptDisown,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
40pub enum ScriptEvaluateMethod {
41 #[serde(rename = "script.evaluate")]
42 ScriptEvaluate,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub enum ScriptGetRealmsMethod {
47 #[serde(rename = "script.getRealms")]
48 ScriptGetRealms,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
52pub enum ScriptRemovePreloadScriptMethod {
53 #[serde(rename = "script.removePreloadScript")]
54 ScriptRemovePreloadScript,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize)]
58pub struct AddPreloadScriptParameters {
59 #[serde(rename = "functionDeclaration")]
60 pub function_declaration: String,
61 #[serde(rename = "arguments")]
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub arguments: Option<Vec<ChannelValue>>,
64 #[serde(rename = "contexts")]
65 #[serde(skip_serializing_if = "Option::is_none")]
66 pub contexts: Option<Vec<BrowsingContext>>,
67 #[serde(rename = "userContexts")]
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub user_contexts: Option<Vec<UserContext>>,
70 #[serde(rename = "sandbox")]
71 #[serde(skip_serializing_if = "Option::is_none")]
72 pub sandbox: Option<String>,
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
76pub struct CallFunctionParameters {
77 #[serde(rename = "functionDeclaration")]
78 pub function_declaration: String,
79 #[serde(rename = "awaitPromise")]
80 pub await_promise: bool,
81 #[serde(rename = "target")]
82 pub target: Target,
83 #[serde(rename = "arguments")]
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub arguments: Option<Vec<LocalValue>>,
86 #[serde(rename = "resultOwnership")]
87 #[serde(skip_serializing_if = "Option::is_none")]
88 pub result_ownership: Option<ResultOwnership>,
89 #[serde(rename = "serializationOptions")]
90 #[serde(skip_serializing_if = "Option::is_none")]
91 pub serialization_options: Option<SerializationOptions>,
92 #[serde(rename = "this")]
93 #[serde(skip_serializing_if = "Option::is_none")]
94 pub this: Option<LocalValue>,
95 #[serde(rename = "userActivation")]
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub user_activation: Option<bool>,
98}
99
100#[derive(Debug, Clone, Serialize, Deserialize)]
101pub struct DisownParameters {
102 #[serde(rename = "handles")]
103 pub handles: Vec<Handle>,
104 #[serde(rename = "target")]
105 pub target: Target,
106}
107
108#[derive(Debug, Clone, Serialize, Deserialize)]
109pub struct EvaluateParameters {
110 #[serde(rename = "expression")]
111 pub expression: String,
112 #[serde(rename = "target")]
113 pub target: Target,
114 #[serde(rename = "awaitPromise")]
115 pub await_promise: bool,
116 #[serde(rename = "resultOwnership")]
117 #[serde(skip_serializing_if = "Option::is_none")]
118 pub result_ownership: Option<ResultOwnership>,
119 #[serde(rename = "serializationOptions")]
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub serialization_options: Option<SerializationOptions>,
122 #[serde(rename = "userActivation")]
123 #[serde(skip_serializing_if = "Option::is_none")]
124 pub user_activation: Option<bool>,
125}
126
127#[derive(Debug, Clone, Serialize, Deserialize)]
128pub struct GetRealmsParameters {
129 #[serde(rename = "context")]
130 #[serde(skip_serializing_if = "Option::is_none")]
131 pub context: Option<BrowsingContext>,
132 #[serde(rename = "type")]
133 #[serde(skip_serializing_if = "Option::is_none")]
134 pub r#type: Option<RealmType>,
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize)]
138pub struct RemovePreloadScriptParameters {
139 #[serde(rename = "script")]
140 pub script: PreloadScript,
141}
142
143#[derive(Debug, Clone, Serialize, Deserialize)]
144pub struct AddPreloadScript {
145 #[serde(rename = "method")]
146 pub method: ScriptAddPreloadScriptMethod,
147 #[serde(rename = "params")]
148 pub params: AddPreloadScriptParameters,
149}
150
151#[derive(Debug, Clone, Serialize, Deserialize)]
152pub struct CallFunction {
153 #[serde(rename = "method")]
154 pub method: ScriptCallFunctionMethod,
155 #[serde(rename = "params")]
156 pub params: CallFunctionParameters,
157}
158
159#[derive(Debug, Clone, Serialize, Deserialize)]
160pub struct Disown {
161 #[serde(rename = "method")]
162 pub method: ScriptDisownMethod,
163 #[serde(rename = "params")]
164 pub params: DisownParameters,
165}
166
167#[derive(Debug, Clone, Serialize, Deserialize)]
168pub struct Evaluate {
169 #[serde(rename = "method")]
170 pub method: ScriptEvaluateMethod,
171 #[serde(rename = "params")]
172 pub params: EvaluateParameters,
173}
174
175#[derive(Debug, Clone, Serialize, Deserialize)]
176pub struct GetRealms {
177 #[serde(rename = "method")]
178 pub method: ScriptGetRealmsMethod,
179 #[serde(rename = "params")]
180 pub params: GetRealmsParameters,
181}
182
183#[derive(Debug, Clone, Serialize, Deserialize)]
184pub struct RemovePreloadScript {
185 #[serde(rename = "method")]
186 pub method: ScriptRemovePreloadScriptMethod,
187 #[serde(rename = "params")]
188 pub params: RemovePreloadScriptParameters,
189}
190
191#[derive(Debug, Clone, Serialize, Deserialize)]
194#[serde(untagged)]
195pub enum ScriptResult {
196 AddPreloadScriptResult(AddPreloadScriptResult),
197 EvaluateResult(EvaluateResult),
198 CallFunctionResult(CallFunctionResult),
199 DisownResult(DisownResult),
200 GetRealmsResult(GetRealmsResult),
201 RemovePreloadScriptResult(RemovePreloadScriptResult),
202}
203
204
205#[derive(Debug, Clone, Serialize, Deserialize)]
206pub struct AddPreloadScriptResult {
207 #[serde(rename = "script")]
208 pub script: PreloadScript,
209}
210
211pub type CallFunctionResult = EvaluateResult;
212
213
214pub type DisownResult = EmptyResult;
215
216
217#[derive(Debug, Clone, Serialize, Deserialize)]
218#[serde(untagged)]
219pub enum EvaluateResult {
220 EvaluateResultSuccess(EvaluateResultSuccess),
221 EvaluateResultException(EvaluateResultException),
222}
223
224#[derive(Debug, Clone, Serialize, Deserialize)]
225pub struct GetRealmsResult {
226 #[serde(rename = "realms")]
227 pub realms: Vec<RealmInfo>,
228}
229
230pub type RemovePreloadScriptResult = EmptyResult;
231
232