/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #![allow(missing_docs)] use cookie::Cookie; use euclid::default::Rect; use hyper_serde::Serde; use ipc_channel::ipc::IpcSender; use msg::constellation_msg::BrowsingContextId; use servo_url::ServoUrl; use webdriver::common::WebElement; #[derive(Debug, Deserialize, Serialize)] pub enum WebDriverScriptCommand { AddCookie( #[serde( deserialize_with = "::hyper_serde::deserialize", serialize_with = "::hyper_serde::serialize" )] Cookie<'static>, IpcSender>, ), DeleteCookies(IpcSender>), ExecuteScript(String, IpcSender), ExecuteAsyncScript(String, IpcSender), FindElementCSS(String, IpcSender, ()>>), FindElementLinkText(String, bool, IpcSender, ()>>), FindElementTagName(String, IpcSender, ()>>), FindElementsCSS(String, IpcSender, ()>>), FindElementsLinkText(String, bool, IpcSender, ()>>), FindElementsTagName(String, IpcSender, ()>>), FindElementElementCSS(String, String, IpcSender, ()>>), FindElementElementLinkText(String, String, bool, IpcSender, ()>>), FindElementElementTagName(String, String, IpcSender, ()>>), FindElementElementsCSS(String, String, IpcSender, ()>>), FindElementElementsLinkText(String, String, bool, IpcSender, ()>>), FindElementElementsTagName(String, String, IpcSender, ()>>), FocusElement(String, IpcSender>), GetActiveElement(IpcSender>), GetCookie(String, IpcSender>>>), GetCookies(IpcSender>>>), GetElementAttribute(String, String, IpcSender, ()>>), GetElementProperty(String, String, IpcSender>), GetElementCSS(String, String, IpcSender>), GetElementRect(String, IpcSender, ()>>), GetElementTagName(String, IpcSender>), GetElementText(String, IpcSender>), GetBrowsingContextId(WebDriverFrameId, IpcSender>), GetUrl(IpcSender), GetPageSource(IpcSender>), IsEnabled(String, IpcSender>), IsSelected(String, IpcSender>), GetTitle(IpcSender), } #[derive(Debug, Deserialize, Serialize)] pub enum WebDriverCookieError { InvalidDomain, UnableToSetCookie, } #[derive(Clone, Debug, Deserialize, Serialize)] pub enum WebDriverJSValue { Undefined, Null, Boolean(bool), Number(f64), String(String), Element(WebElement), ArrayLike(Vec), } #[derive(Debug, Deserialize, Serialize)] pub enum WebDriverJSError { Timeout, UnknownType, JSError, /// Occurs when handler received an event message for a layout channel that is not /// associated with the current script thread BrowsingContextNotFound, } pub type WebDriverJSResult = Result; #[derive(Debug, Deserialize, Serialize)] pub enum WebDriverFrameId { Short(u16), Element(String), Parent, } #[derive(Debug, Deserialize, Serialize)] pub enum LoadStatus { LoadComplete, LoadTimeout, }