aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/serviceworker_manager.rs
diff options
context:
space:
mode:
authorBastien Orivel <eijebong@bananium.fr>2018-11-07 19:48:07 +0100
committerBastien Orivel <eijebong@bananium.fr>2018-11-18 19:33:19 +0100
commit9a7eeb349a8aa657e063665ac92387ab8ef3ce28 (patch)
tree63c5aa1ba7cd7fdb1bf14bcc9cbb6e6c0e24431b /components/script/serviceworker_manager.rs
parent76195e0779469f29a5e27cd882e2bbe8b2c9d6dd (diff)
downloadservo-9a7eeb349a8aa657e063665ac92387ab8ef3ce28.tar.gz
servo-9a7eeb349a8aa657e063665ac92387ab8ef3ce28.zip
Update crossbeam-channel to 0.3
Diffstat (limited to 'components/script/serviceworker_manager.rs')
-rw-r--r--components/script/serviceworker_manager.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/components/script/serviceworker_manager.rs b/components/script/serviceworker_manager.rs
index 198c230adf9..f269e6b23be 100644
--- a/components/script/serviceworker_manager.rs
+++ b/components/script/serviceworker_manager.rs
@@ -11,11 +11,12 @@ use crate::dom::abstractworker::WorkerScriptMsg;
use crate::dom::bindings::structuredclone::StructuredCloneData;
use crate::dom::serviceworkerglobalscope::{ServiceWorkerGlobalScope, ServiceWorkerScriptMsg};
use crate::dom::serviceworkerregistration::longest_prefix_match;
+use crossbeam_channel::{unbounded, Receiver, RecvError, Sender};
use devtools_traits::{DevtoolsPageInfo, ScriptToDevtoolsControlMsg};
use ipc_channel::ipc::{self, IpcSender};
+use ipc_channel::router::ROUTER;
use net_traits::{CoreResourceMsg, CustomResponseMediator};
use script_traits::{DOMMessage, SWManagerMsg, SWManagerSenders, ScopeThings, ServiceWorkerMsg};
-use servo_channel::{channel, route_ipc_receiver_to_new_servo_receiver, Receiver, Sender};
use servo_config::prefs::PREFS;
use servo_url::ServoUrl;
use std::collections::HashMap;
@@ -58,8 +59,8 @@ impl ServiceWorkerManager {
let (own_sender, from_constellation_receiver) = ipc::channel().unwrap();
let (resource_chan, resource_port) = ipc::channel().unwrap();
let from_constellation =
- route_ipc_receiver_to_new_servo_receiver(from_constellation_receiver);
- let resource_port = route_ipc_receiver_to_new_servo_receiver(resource_port);
+ ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(from_constellation_receiver);
+ let resource_port = ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(resource_port);
let _ = sw_senders
.resource_sender
.send(CoreResourceMsg::NetworkMediator(resource_chan));
@@ -90,7 +91,7 @@ impl ServiceWorkerManager {
) -> Option<Sender<ServiceWorkerScriptMsg>> {
let scope_things = self.registered_workers.get(&scope_url);
if let Some(scope_things) = scope_things {
- let (sender, receiver) = channel();
+ let (sender, receiver) = unbounded();
let (devtools_sender, devtools_receiver) = ipc::channel().unwrap();
if let Some(ref chan) = scope_things.devtools_chan {
let title = format!("ServiceWorker for {}", scope_things.script_url);
@@ -122,7 +123,7 @@ impl ServiceWorkerManager {
}
fn handle_message(&mut self) {
- while let Some(message) = self.receive_message() {
+ while let Ok(message) = self.receive_message() {
let should_continue = match message {
Message::FromConstellation(msg) => self.handle_message_from_constellation(msg),
Message::FromResource(msg) => self.handle_message_from_resource(msg),
@@ -196,10 +197,10 @@ impl ServiceWorkerManager {
true
}
- fn receive_message(&mut self) -> Option<Message> {
+ fn receive_message(&mut self) -> Result<Message, RecvError> {
select! {
- recv(self.own_port.select(), msg) => msg.map(Message::FromConstellation),
- recv(self.resource_receiver.select(), msg) => msg.map(Message::FromResource),
+ recv(self.own_port) -> msg => msg.map(Message::FromConstellation),
+ recv(self.resource_receiver) -> msg => msg.map(Message::FromResource),
}
}
}