aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/websocket.rs
diff options
context:
space:
mode:
authorAgustin Chiappe Berrini <jnieve@gmail.com>2018-09-08 17:01:27 -0400
committerAgustin Chiappe Berrini <jnieve@gmail.com>2018-09-08 17:01:27 -0400
commit5dd6e21c2e7e1c35a2a4a57812126e28a4b58599 (patch)
tree5c98fbf6599a4d3ea28f8f37f9c9d2cdd44b9610 /components/script/dom/websocket.rs
parentf7630dad87da33449ce05b5e7a9ef6f747e9531d (diff)
downloadservo-5dd6e21c2e7e1c35a2a4a57812126e28a4b58599.tar.gz
servo-5dd6e21c2e7e1c35a2a4a57812126e28a4b58599.zip
Add Websocket task source
According to the doc: https://html.spec.whatwg.org/multipage/web-sockets.html#network The task source for all tasks queued in the websocket section are the websocket task source, so this commit also updates those references to use the appropriate one.
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r--components/script/dom/websocket.rs21
1 files changed, 9 insertions, 12 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 0a319bdc92e..ac0f14ad436 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -39,8 +39,8 @@ use std::cell::Cell;
use std::ptr;
use std::thread;
use task::{TaskOnce, TaskCanceller};
-use task_source::{TaskSource, TaskSourceName};
-use task_source::networking::NetworkingTaskSource;
+use task_source::TaskSource;
+use task_source::websocket::WebsocketTaskSource;
#[derive(Clone, Copy, Debug, JSTraceable, MallocSizeOf, PartialEq)]
enum WebSocketRequestState {
@@ -70,7 +70,7 @@ mod close_code {
pub fn close_the_websocket_connection(
address: Trusted<WebSocket>,
- task_source: &NetworkingTaskSource,
+ task_source: &WebsocketTaskSource,
canceller: &TaskCanceller,
code: Option<u16>,
reason: String,
@@ -86,7 +86,7 @@ pub fn close_the_websocket_connection(
pub fn fail_the_websocket_connection(
address: Trusted<WebSocket>,
- task_source: &NetworkingTaskSource,
+ task_source: &WebsocketTaskSource,
canceller: &TaskCanceller,
) {
let close_task = CloseTask {
@@ -199,11 +199,8 @@ impl WebSocket {
};
let _ = global.core_resource_thread().send(CoreResourceMsg::Fetch(request, channels));
- // TODO: use a dedicated task source,
- // https://html.spec.whatwg.org/multipage/#websocket-task-source
- // When making the switch, also update the task_canceller call.
- let task_source = global.networking_task_source();
- let canceller = global.task_canceller(TaskSourceName::Networking);
+ let task_source = global.websocket_task_source();
+ let canceller = global.task_canceller(WebsocketTaskSource::NAME);
thread::spawn(move || {
while let Ok(event) = dom_event_receiver.recv() {
match event {
@@ -273,7 +270,7 @@ impl WebSocket {
WebSocketEvent,
task,
Some(pipeline_id),
- TaskSourceName::Networking,
+ WebsocketTaskSource::NAME,
))
.unwrap();
}
@@ -407,10 +404,10 @@ impl WebSocketMethods for WebSocket {
// TODO: use a dedicated task source,
// https://html.spec.whatwg.org/multipage/#websocket-task-source
// When making the switch, also update the task_canceller call.
- let task_source = self.global().networking_task_source();
+ let task_source = self.global().websocket_task_source();
fail_the_websocket_connection(address,
&task_source,
- &self.global().task_canceller(TaskSourceName::Networking));
+ &self.global().task_canceller(WebsocketTaskSource::NAME));
}
WebSocketRequestState::Open => {
self.ready_state.set(WebSocketRequestState::Closing);