diff options
author | Ms2ger <ms2ger@gmail.com> | 2015-07-13 15:22:06 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2015-07-13 16:03:02 +0200 |
commit | f93f49490f54669ff586d3ff6d89af5434dedd6a (patch) | |
tree | bf5850be2e1aa1fb1d7a0e7654f600243c765d44 /components/script/dom/websocket.rs | |
parent | 17bd7e5ec3e39ab62568e80298a54078e65c41e0 (diff) | |
download | servo-f93f49490f54669ff586d3ff6d89af5434dedd6a.tar.gz servo-f93f49490f54669ff586d3ff6d89af5434dedd6a.zip |
Replace WebSocketTask::Open by ConnectionEstablished.
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r-- | components/script/dom/websocket.rs | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index b27ab3f75f7..0c0ab25a3ea 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -151,7 +151,6 @@ impl WebSocket { }; let response = request.send().unwrap(); response.validate().unwrap(); - ws.r().ready_state.set(WebSocketRequestState::Open); let (temp_sender, temp_receiver) = response.begin().split(); *ws.r().sender.borrow_mut() = Some(temp_sender); @@ -161,7 +160,7 @@ impl WebSocket { let global_root = ws.r().global.root(); let addr: Trusted<WebSocket> = Trusted::new(global_root.r().get_cx(), ws.r(), global_root.r().script_chan().clone()); - let open_task = box WebSocketTaskHandler::new(addr.clone(), WebSocketTask::Open); + let open_task = box WebSocketTaskHandler::new(addr, WebSocketTask::ConnectionEstablished); global_root.r().script_chan().send(ScriptMsg::RunnableMsg(open_task)).unwrap(); //TODO: Spawn thread here for receive loop /*TODO: Add receive loop here and make new thread run this @@ -268,7 +267,8 @@ impl<'a> WebSocketMethods for &'a WebSocket { pub enum WebSocketTask { - Open, + /// Task queued when *the WebSocket connection is established*. + ConnectionEstablished, Close, } @@ -285,19 +285,27 @@ impl WebSocketTaskHandler { } } - fn dispatch_open(&self) { + fn connection_established(&self) { /*TODO: Items 1, 3, 4, & 5 under "WebSocket connection is established" as specified here: https://html.spec.whatwg.org/multipage/#feedback-from-the-protocol */ - let ws = self.addr.root(); //Get root - let ws = ws.r(); //Get websocket reference + let ws = self.addr.root(); + + // Step 1: Protocols. + + // Step 2. + ws.ready_state.set(WebSocketRequestState::Open); + + // Step 3: Extensions. + // Step 4: Protocols. + // Step 5: Cookies. + + // Step 6. let global = ws.global.root(); - let event = Event::new(global.r(), - "open".to_owned(), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable); - let target = EventTargetCast::from_ref(ws); - event.r().fire(target); + let event = Event::new(global.r(), "open".to_owned(), + EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable); + event.fire(EventTargetCast::from_ref(ws.r())); } fn dispatch_close(&self) { @@ -339,8 +347,8 @@ impl WebSocketTaskHandler { impl Runnable for WebSocketTaskHandler { fn handler(self: Box<WebSocketTaskHandler>) { match self.task { - WebSocketTask::Open => { - self.dispatch_open(); + WebSocketTask::ConnectionEstablished => { + self.connection_established(); } WebSocketTask::Close => { self.dispatch_close(); |