diff options
author | Keith Yeung <kungfukeith11@gmail.com> | 2017-10-11 22:32:48 -0700 |
---|---|---|
committer | Keith Yeung <kungfukeith11@gmail.com> | 2017-10-24 20:54:19 -0700 |
commit | 99f9696a24ece562f74831dbde957af1149eb9eb (patch) | |
tree | 2b497025152d2946b539ae0088f5635443a88296 /components/net_traits | |
parent | a65253a11aea13bb7cf26aabdcbac41c02d36f68 (diff) | |
download | servo-99f9696a24ece562f74831dbde957af1149eb9eb.tar.gz servo-99f9696a24ece562f74831dbde957af1149eb9eb.zip |
Merge functionality of WebsocketConnect into Fetch
Diffstat (limited to 'components/net_traits')
-rw-r--r-- | components/net_traits/lib.rs | 27 | ||||
-rw-r--r-- | components/net_traits/request.rs | 4 |
2 files changed, 14 insertions, 17 deletions
diff --git a/components/net_traits/lib.rs b/components/net_traits/lib.rs index 0c0b1148b7a..b6e6a447f78 100644 --- a/components/net_traits/lib.rs +++ b/components/net_traits/lib.rs @@ -340,25 +340,20 @@ pub enum WebSocketNetworkEvent { } #[derive(Deserialize, Serialize)] -pub struct WebSocketCommunicate { - pub event_sender: IpcSender<WebSocketNetworkEvent>, - pub action_receiver: IpcReceiver<WebSocketDomAction>, -} - -#[derive(Deserialize, Serialize)] -pub struct WebSocketConnectData { - pub resource_url: ServoUrl, - pub origin: String, - pub protocols: Vec<String>, +/// IPC channels to communicate with the script thread about network or DOM events. +pub enum FetchChannels { + ResponseMsg(IpcSender<FetchResponseMsg>), + WebSocket { + event_sender: IpcSender<WebSocketNetworkEvent>, + action_receiver: IpcReceiver<WebSocketDomAction>, + } } #[derive(Deserialize, Serialize)] pub enum CoreResourceMsg { - Fetch(RequestInit, IpcSender<FetchResponseMsg>), + Fetch(RequestInit, FetchChannels), /// Initiate a fetch in response to processing a redirection FetchRedirect(RequestInit, ResponseInit, IpcSender<FetchResponseMsg>), - /// Try to make a websocket connection to a URL. - WebsocketConnect(WebSocketCommunicate, WebSocketConnectData), /// Store a cookie for a given originating URL SetCookieForUrl(ServoUrl, Serde<Cookie<'static>>, CookieSource), /// Store a set of cookies for a given originating URL @@ -387,7 +382,8 @@ pub fn fetch_async<F>(request: RequestInit, core_resource_thread: &CoreResourceT let (action_sender, action_receiver) = ipc::channel().unwrap(); ROUTER.add_route(action_receiver.to_opaque(), Box::new(move |message| f(message.to().unwrap()))); - core_resource_thread.send(CoreResourceMsg::Fetch(request, action_sender)).unwrap(); + core_resource_thread.send( + CoreResourceMsg::Fetch(request, FetchChannels::ResponseMsg(action_sender))).unwrap(); } #[derive(Clone, Deserialize, MallocSizeOf, Serialize)] @@ -481,7 +477,8 @@ pub fn load_whole_resource(request: RequestInit, core_resource_thread: &CoreResourceThread) -> Result<(Metadata, Vec<u8>), NetworkError> { let (action_sender, action_receiver) = ipc::channel().unwrap(); - core_resource_thread.send(CoreResourceMsg::Fetch(request, action_sender)).unwrap(); + core_resource_thread.send( + CoreResourceMsg::Fetch(request, FetchChannels::ResponseMsg(action_sender))).unwrap(); let mut buf = vec![]; let mut metadata = None; diff --git a/components/net_traits/request.rs b/components/net_traits/request.rs index 3fcaa72f585..13120f6868a 100644 --- a/components/net_traits/request.rs +++ b/components/net_traits/request.rs @@ -69,13 +69,13 @@ pub enum Referrer { } /// A [request mode](https://fetch.spec.whatwg.org/#concept-request-mode) -#[derive(Clone, Copy, Deserialize, MallocSizeOf, PartialEq, Serialize)] +#[derive(Clone, Deserialize, MallocSizeOf, PartialEq, Serialize)] pub enum RequestMode { Navigate, SameOrigin, NoCors, CorsMode, - WebSocket + WebSocket { protocols: Vec<String> } } /// Request [credentials mode](https://fetch.spec.whatwg.org/#concept-request-credentials-mode) |