aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/websocket.rs
diff options
context:
space:
mode:
authorJames Sanders <sanderjd@gmail.com>2016-01-17 19:10:45 -0700
committerJames Sanders <sanderjd@gmail.com>2016-01-17 21:33:04 -0700
commit0bffffd8f50c5f506c4f179721bd9853ea7a05de (patch)
tree102690b73aab48243e79587c24fd00faebdc3b35 /components/script/dom/websocket.rs
parenteb7b9309dd4dabb5ffc5e792af8cd0cfc6ad0435 (diff)
downloadservo-0bffffd8f50c5f506c4f179721bd9853ea7a05de.tar.gz
servo-0bffffd8f50c5f506c4f179721bd9853ea7a05de.zip
Make WebSocket constructor take (DOMString or sequence<DOMString>)
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r--components/script/dom/websocket.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 08e528297a2..031b66cb8d8 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -7,6 +7,7 @@ use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods;
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
use dom::bindings::codegen::Bindings::WebSocketBinding;
use dom::bindings::codegen::Bindings::WebSocketBinding::{BinaryType, WebSocketMethods};
+use dom::bindings::codegen::UnionTypes::StringOrStringSequence::{self, eString, eStringSequence};
use dom::bindings::conversions::{ToJSValConvertible};
use dom::bindings::error::{Error, Fallible};
use dom::bindings::global::GlobalRef;
@@ -31,7 +32,6 @@ use net_traits::MessageData;
use net_traits::hosts::replace_hosts;
use net_traits::unwrap_websocket_protocol;
use net_traits::{WebSocketCommunicate, WebSocketConnectData, WebSocketDomAction, WebSocketNetworkEvent};
-use ref_slice::ref_slice;
use script_thread::ScriptThreadEventCategory::WebSocketEvent;
use script_thread::{CommonScriptMsg, Runnable};
use std::borrow::ToOwned;
@@ -176,7 +176,7 @@ impl WebSocket {
pub fn Constructor(global: GlobalRef,
url: DOMString,
- protocols: Option<DOMString>)
+ protocols: Option<StringOrStringSequence>)
-> Fallible<Root<WebSocket>> {
// Step 1.
let resource_url = try!(Url::parse(&url).map_err(|_| Error::Syntax));
@@ -193,9 +193,13 @@ impl WebSocket {
}
// Step 4.
- let protocols: &[DOMString] = protocols
- .as_ref()
- .map_or(&[], |ref string| ref_slice(string));
+ let protocols = match protocols {
+ Some(eString(string)) => vec![String::from(string)],
+ Some(eStringSequence(sequence)) => {
+ sequence.into_iter().map(String::from).collect()
+ },
+ _ => Vec::new(),
+ };
// Step 5.
for (i, protocol) in protocols.iter().enumerate() {
@@ -223,7 +227,6 @@ impl WebSocket {
let address = Trusted::new(ws.r(), global.networking_thread_source());
let origin = global.get_url().serialize();
- let protocols: Vec<String> = protocols.iter().map(|x| String::from(x.clone())).collect();
let connect_data = WebSocketConnectData {
resource_url: resource_url.clone(),