forked from mirrors/gecko-dev
		
	 01a59cb89e
			
		
	
	
		01a59cb89e
		
	
	
	
	
		
			
			- [x] `./mach build -d` does not report any errors (kinda, need webrender published and Cargo.toml fixed up) - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #__ (github issue number if applicable). <!-- Either: --> - [ ] There are tests for these changes OR - [x] These changes do not require tests because it is a refactoring in which the difference is mostly a compile-time/strong-typing thing with no change to the logic. Source-Repo: https://github.com/servo/servo Source-Revision: 18653f69581693a5bae1ce4e350e78bc16159b08 --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : ed1f193620a8c5ebbb70eea337bd519dfc5c18a1
		
			
				
	
	
		
			90 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| /* 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/. */
 | |
| 
 | |
| #![allow(missing_docs)]
 | |
| 
 | |
| use cookie_rs::Cookie;
 | |
| use euclid::Rect;
 | |
| use hyper_serde::Serde;
 | |
| use ipc_channel::ipc::IpcSender;
 | |
| use msg::constellation_msg::BrowsingContextId;
 | |
| use rustc_serialize::json::{Json, ToJson};
 | |
| use servo_url::ServoUrl;
 | |
| 
 | |
| #[derive(Deserialize, Serialize)]
 | |
| pub enum WebDriverScriptCommand {
 | |
|     AddCookie(#[serde(deserialize_with = "::hyper_serde::deserialize",
 | |
|                 serialize_with = "::hyper_serde::serialize")]
 | |
|               Cookie<'static>,
 | |
|               IpcSender<Result<(), WebDriverCookieError>>),
 | |
|     ExecuteScript(String, IpcSender<WebDriverJSResult>),
 | |
|     ExecuteAsyncScript(String, IpcSender<WebDriverJSResult>),
 | |
|     FindElementCSS(String, IpcSender<Result<Option<String>, ()>>),
 | |
|     FindElementsCSS(String, IpcSender<Result<Vec<String>, ()>>),
 | |
|     FocusElement(String, IpcSender<Result<(), ()>>),
 | |
|     GetActiveElement(IpcSender<Option<String>>),
 | |
|     GetCookie(String, IpcSender<Vec<Serde<Cookie<'static>>>>),
 | |
|     GetCookies(IpcSender<Vec<Serde<Cookie<'static>>>>),
 | |
|     GetElementAttribute(String, String, IpcSender<Result<Option<String>, ()>>),
 | |
|     GetElementCSS(String, String, IpcSender<Result<String, ()>>),
 | |
|     GetElementRect(String, IpcSender<Result<Rect<f64>, ()>>),
 | |
|     GetElementTagName(String, IpcSender<Result<String, ()>>),
 | |
|     GetElementText(String, IpcSender<Result<String, ()>>),
 | |
|     GetBrowsingContextId(WebDriverFrameId, IpcSender<Result<BrowsingContextId, ()>>),
 | |
|     GetUrl(IpcSender<ServoUrl>),
 | |
|     IsEnabled(String, IpcSender<Result<bool, ()>>),
 | |
|     IsSelected(String, IpcSender<Result<bool, ()>>),
 | |
|     GetTitle(IpcSender<String>),
 | |
| }
 | |
| 
 | |
| #[derive(Deserialize, Serialize)]
 | |
| pub enum WebDriverCookieError {
 | |
|     InvalidDomain,
 | |
|     UnableToSetCookie,
 | |
| }
 | |
| 
 | |
| #[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,
 | |
|     /// 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<WebDriverJSValue, WebDriverJSError>;
 | |
| 
 | |
| #[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,
 | |
| }
 |