diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-06-01 17:30:37 -0500 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-06-01 17:30:37 -0500 |
commit | d08995e1a94fa093b7fc1e5d918d9dca79f260d6 (patch) | |
tree | 6459e79dab04095889035a8aad9b7d933f294077 /components/msg/webdriver_msg.rs | |
parent | c724444ccb85551b5a0a581d673875ec9bce3d1f (diff) | |
parent | 49f1b13ad968467e442d9bc7bc1ee737365e1f5d (diff) | |
download | servo-d08995e1a94fa093b7fc1e5d918d9dca79f260d6.tar.gz servo-d08995e1a94fa093b7fc1e5d918d9dca79f260d6.zip |
Auto merge of #6009 - jgraham:webdriver_frames, r=jdm
This moves webdriver_traits into msg to avoid a circular dependency.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6009)
<!-- Reviewable:end -->
Diffstat (limited to 'components/msg/webdriver_msg.rs')
-rw-r--r-- | components/msg/webdriver_msg.rs | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/components/msg/webdriver_msg.rs b/components/msg/webdriver_msg.rs new file mode 100644 index 00000000000..7921bb0a156 --- /dev/null +++ b/components/msg/webdriver_msg.rs @@ -0,0 +1,56 @@ +/* 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 rustc_serialize::json::{Json, ToJson}; +use constellation_msg::{PipelineId, SubpageId}; + +use std::sync::mpsc::Sender; + +pub enum WebDriverScriptCommand { + ExecuteScript(String, Sender<WebDriverJSResult>), + ExecuteAsyncScript(String, Sender<WebDriverJSResult>), + FindElementCSS(String, Sender<Result<Option<String>, ()>>), + FindElementsCSS(String, Sender<Result<Vec<String>, ()>>), + GetActiveElement(Sender<Option<String>>), + GetElementTagName(String, Sender<Result<String, ()>>), + GetElementText(String, Sender<Result<String, ()>>), + GetFrameId(WebDriverFrameId, Sender<Result<Option<(PipelineId, SubpageId)>, ()>>), + GetTitle(Sender<String>) +} + +pub enum WebDriverJSValue { + Undefined, + Null, + Boolean(bool), + Number(f64), + String(String), + // TODO: Object and WebElement +} + +pub enum WebDriverJSError { + Timeout, + UnknownType +} + +pub type WebDriverJSResult = Result<WebDriverJSValue, WebDriverJSError>; + +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() + } + } +} + +pub struct LoadComplete; |