mqttmarionette/src/marionette/message.rs

159 lines
3.9 KiB
Rust

use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Hello {
pub application_type: String,
pub marionette_protocol: u16,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct Timeouts {
implicit: u32,
page_load: u32,
script: u32,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct Capabilities {
pub accept_insecure_certs: bool,
pub browser_name: String,
pub browser_version: String,
#[serde(rename = "moz:accessibilityChecks")]
pub accessibility_checks: bool,
#[serde(rename = "moz:buildID")]
pub build_id: String,
#[serde(rename = "moz:headless")]
pub headless: bool,
#[serde(rename = "moz:processID")]
pub process_id: u128,
#[serde(rename = "moz:profile")]
pub profile: String,
#[serde(rename = "moz:shutdownTimeout")]
pub shutdown_timeout: u32,
#[serde(rename = "moz:useNonSpecCompliantPointerOrigin")]
pub use_non_spec_compliant_pointer_origin: bool,
#[serde(rename = "moz:webdriverClick")]
pub webdriver_click: bool,
pub page_load_strategy: String,
pub platform_name: String,
pub platform_version: String,
// proxy:
pub set_window_rect: bool,
pub timeouts: Timeouts,
pub unhandled_prompt_behavior: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct NewSessionResponse {
pub capabilities: Capabilities,
pub session_id: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct NewSessionParams {
pub strict_file_interactability: bool,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct GetTitleResponse {
pub value: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct GetCurrentUrlResponse {
pub value: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct NavigateParams {
pub url: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct CloseWindowParams {
pub handle: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "lowercase")]
#[allow(dead_code)]
pub enum WindowType {
Window,
Tab,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct NewWindowParams {
#[serde(rename = "type")]
pub window_type: WindowType,
pub focus: bool,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct NewWindowResponse {
pub handle: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct SwitchToWindowParams {
pub handle: String,
pub focus: bool,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
#[allow(dead_code)]
pub struct WindowRect {
pub x: Option<i32>,
pub y: Option<i32>,
pub height: Option<u32>,
pub width: Option<u32>,
}
#[derive(Debug, Serialize)]
#[serde(tag = "command", content = "params")]
pub enum Command {
#[serde(rename = "WebDriver:NewSession")]
NewSession(NewSessionParams),
#[serde(rename = "WebDriver:GetTitle")]
GetTitle,
#[serde(rename = "WebDriver:Navigate")]
Navigate(NavigateParams),
#[serde(rename = "WebDriver:GetCurrentURL")]
GetCurrentUrl,
#[serde(rename = "WebDriver:GetWindowHandles")]
GetWindowHandles,
#[serde(rename = "WebDriver:CloseWindow")]
CloseWindow(CloseWindowParams),
#[serde(rename = "WebDriver:NewWindow")]
NewWindow(NewWindowParams),
#[serde(rename = "WebDriver:SwitchToWindow")]
SwitchToWindow(SwitchToWindowParams),
#[serde(rename = "WebDriver:FullscreenWindow")]
FullscreenWindow,
#[serde(rename = "WebDriver:SetWindowRect")]
SetWindowRect(WindowRect),
}