aboutsummaryrefslogtreecommitdiffstats
path: root/components/msg/webdriver_msg.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-06-01 17:30:37 -0500
committerbors-servo <metajack+bors@gmail.com>2015-06-01 17:30:37 -0500
commitd08995e1a94fa093b7fc1e5d918d9dca79f260d6 (patch)
tree6459e79dab04095889035a8aad9b7d933f294077 /components/msg/webdriver_msg.rs
parentc724444ccb85551b5a0a581d673875ec9bce3d1f (diff)
parent49f1b13ad968467e442d9bc7bc1ee737365e1f5d (diff)
downloadservo-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.rs56
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;