/* 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 http://mozilla.org/MPL/2.0/. */ use constellation_msg::{PipelineId, WindowSizeData}; use euclid::rect::Rect; use ipc_channel::ipc::IpcSender; use rustc_serialize::json::{Json, ToJson}; use url::Url; #[derive(Deserialize, Serialize)] pub enum WebDriverScriptCommand { ExecuteScript(String, IpcSender), ExecuteAsyncScript(String, IpcSender), FindElementCSS(String, IpcSender, ()>>), FindElementsCSS(String, IpcSender, ()>>), FocusElement(String, IpcSender>), GetActiveElement(IpcSender>), GetElementAttribute(String, String, IpcSender, ()>>), GetElementCSS(String, String, IpcSender>), GetElementRect(String, IpcSender, ()>>), GetElementTagName(String, IpcSender>), GetElementText(String, IpcSender>), GetFrameId(WebDriverFrameId, IpcSender, ()>>), GetUrl(IpcSender), GetWindowSize(IpcSender>), IsEnabled(String, IpcSender>), IsSelected(String, IpcSender>), GetTitle(IpcSender) } #[derive(Deserialize, Serialize)] pub enum WebDriverJSValue { Undefined, Null, Boolean(bool), Number(f64), String(String), // TODO: Object and WebElement } #[derive(Deserialize, Serialize)] pub enum WebDriverJSError { Timeout, UnknownType } pub type WebDriverJSResult = Result; #[derive(Deserialize, Serialize)] pub enum WebDriverFrameId { Short(u16), Element(String), Parent } impl ToJson for WebDriverJSValue { fn to_json(&self) -> Json { match *self { WebDriverJSValue::Undefined => Json::Null, WebDriverJSValue::Null => Json::Null, WebDriverJSValue::Boolean(ref x) => x.to_json(), WebDriverJSValue::Number(ref x) => x.to_json(), WebDriverJSValue::String(ref x) => x.to_json() } } } #[derive(Deserialize, Serialize)] pub enum LoadStatus { LoadComplete, LoadTimeout }