diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-10-25 09:00:41 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-25 09:00:41 -0500 |
commit | a69e33366e4333f1de3502e5d706d79f4f843b00 (patch) | |
tree | af6322109d4017c28d6acb48f81b9490f9ab0a9c /components/script/dom/websocket.rs | |
parent | a347e8d6d332015a5d9c71faaf13b4c1a8fe9fcd (diff) | |
parent | 99f9696a24ece562f74831dbde957af1149eb9eb (diff) | |
download | servo-a69e33366e4333f1de3502e5d706d79f4f843b00.tar.gz servo-a69e33366e4333f1de3502e5d706d79f4f843b00.zip |
Auto merge of #18871 - KiChjang:websocket-fetch-integration, r=avadacatavra
Merge functionality of WebsocketConnect into Fetch
Partial #14897.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18871)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r-- | components/script/dom/websocket.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 47d3a6f3668..d8425d1d5b8 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -20,15 +20,15 @@ use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::messageevent::MessageEvent; -use dom::urlhelper::UrlHelper; use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; use js::jsapi::JSAutoCompartment; use js::jsval::UndefinedValue; use js::typedarray::{ArrayBuffer, CreateWith}; -use net_traits::{WebSocketCommunicate, WebSocketConnectData, WebSocketDomAction, WebSocketNetworkEvent}; -use net_traits::CoreResourceMsg::WebsocketConnect; +use net_traits::{CoreResourceMsg, FetchChannels}; +use net_traits::{WebSocketDomAction, WebSocketNetworkEvent}; use net_traits::MessageData; +use net_traits::request::{RequestInit, RequestMode}; use script_runtime::CommonScriptMsg; use script_runtime::ScriptThreadEventCategory::WebSocketEvent; use servo_url::ServoUrl; @@ -176,12 +176,6 @@ impl WebSocket { let ws = WebSocket::new(global, url_record.clone()); let address = Trusted::new(&*ws); - let connect_data = WebSocketConnectData { - resource_url: url_record, - origin: UrlHelper::Origin(&global.get_url()).0, - protocols: protocols, - }; - // Create the interface for communication with the resource thread let (dom_action_sender, resource_action_receiver): (IpcSender<WebSocketDomAction>, @@ -190,13 +184,18 @@ impl WebSocket { (IpcSender<WebSocketNetworkEvent>, IpcReceiver<WebSocketNetworkEvent>) = ipc::channel().unwrap(); - let connect = WebSocketCommunicate { + // Step 8. + let request = RequestInit { + url: url_record, + origin: global.origin().immutable().clone(), + mode: RequestMode::WebSocket { protocols }, + ..RequestInit::default() + }; + let channels = FetchChannels::WebSocket { event_sender: resource_event_sender, action_receiver: resource_action_receiver, }; - - // Step 8. - let _ = global.core_resource_thread().send(WebsocketConnect(connect, connect_data)); + let _ = global.core_resource_thread().send(CoreResourceMsg::Fetch(request, channels)); *ws.sender.borrow_mut() = Some(dom_action_sender); |