aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorSimon Wülker <simon.wuelker@arcor.de>2024-10-18 12:47:52 +0200
committerGitHub <noreply@github.com>2024-10-18 10:47:52 +0000
commite33bae6d0a172de3e652b9b515bda97c6c4f5af2 (patch)
tree8cde067f9b38b6708e599953b7035ea585c27b34 /components/script/dom
parentff374c1428bbcca76c9ba6f565e7e5ccdbf4fc10 (diff)
downloadservo-e33bae6d0a172de3e652b9b515bda97c6c4f5af2.tar.gz
servo-e33bae6d0a172de3e652b9b515bda97c6c4f5af2.zip
Use `ROUTER::add_typed_route` instead of `ROUTER::add_route` everywhere (#33866)
* Use ROUTER::add_typed_route where possible Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update webxr, media and ipc-channel Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/analysernode.rs6
-rw-r--r--components/script/dom/bluetooth.rs6
-rw-r--r--components/script/dom/eventsource.rs6
-rw-r--r--components/script/dom/fakexrdevice.rs5
-rw-r--r--components/script/dom/gamepadhapticactuator.rs26
-rw-r--r--components/script/dom/globalscope.rs50
-rw-r--r--components/script/dom/gpu.rs6
-rw-r--r--components/script/dom/htmlimageelement.rs7
-rw-r--r--components/script/dom/htmlmediaelement.rs12
-rw-r--r--components/script/dom/serviceworkercontainer.rs13
-rw-r--r--components/script/dom/websocket.rs6
-rw-r--r--components/script/dom/window.rs6
-rw-r--r--components/script/dom/xrsession.rs18
-rw-r--r--components/script/dom/xrsystem.rs12
-rw-r--r--components/script/dom/xrtest.rs14
15 files changed, 87 insertions, 106 deletions
diff --git a/components/script/dom/analysernode.rs b/components/script/dom/analysernode.rs
index ddee7e39f5d..486747ec8fb 100644
--- a/components/script/dom/analysernode.rs
+++ b/components/script/dom/analysernode.rs
@@ -116,14 +116,14 @@ impl AnalyserNode {
.dom_manipulation_task_source_with_canceller();
let this = Trusted::new(&*object);
- ROUTER.add_route(
- recv.to_opaque(),
+ ROUTER.add_typed_route(
+ recv,
Box::new(move |block| {
let this = this.clone();
let _ = source.queue_with_canceller(
task!(append_analysis_block: move || {
let this = this.root();
- this.push_block(block.to().unwrap())
+ this.push_block(block.unwrap())
}),
&canceller,
);
diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs
index 7ae54893064..ce22ce26ad6 100644
--- a/components/script/dom/bluetooth.rs
+++ b/components/script/dom/bluetooth.rs
@@ -245,8 +245,8 @@ pub fn response_async<T: AsyncBluetoothListener + DomObject + 'static>(
promise: Some(TrustedPromise::new(promise.clone())),
receiver: Trusted::new(receiver),
}));
- ROUTER.add_route(
- action_receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ action_receiver,
Box::new(move |message| {
struct ListenerTask<T: AsyncBluetoothListener + DomObject> {
context: Arc<Mutex<BluetoothContext<T>>>,
@@ -265,7 +265,7 @@ pub fn response_async<T: AsyncBluetoothListener + DomObject + 'static>(
let task = ListenerTask {
context: context.clone(),
- action: message.to().unwrap(),
+ action: message.unwrap(),
};
let result = task_source.queue_unconditionally(task);
diff --git a/components/script/dom/eventsource.rs b/components/script/dom/eventsource.rs
index 4e8f0d03db1..0ec539e28ef 100644
--- a/components/script/dom/eventsource.rs
+++ b/components/script/dom/eventsource.rs
@@ -607,10 +607,10 @@ impl EventSourceMethods for EventSource {
task_source: global.networking_task_source(),
canceller: Some(global.task_canceller(TaskSourceName::Networking)),
};
- ROUTER.add_route(
- action_receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ action_receiver,
Box::new(move |message| {
- listener.notify_fetch(message.to().unwrap());
+ listener.notify_fetch(message.unwrap());
}),
);
let cancel_receiver = ev.canceller.borrow_mut().initialize();
diff --git a/components/script/dom/fakexrdevice.rs b/components/script/dom/fakexrdevice.rs
index ee2d587f257..720fb19df33 100644
--- a/components/script/dom/fakexrdevice.rs
+++ b/components/script/dom/fakexrdevice.rs
@@ -306,8 +306,9 @@ impl FakeXRDeviceMethods for FakeXRDevice {
.task_manager()
.dom_manipulation_task_source_with_canceller();
let (sender, receiver) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
- ROUTER.add_route(
- receiver.to_opaque(),
+
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |_| {
let trusted = trusted
.take()
diff --git a/components/script/dom/gamepadhapticactuator.rs b/components/script/dom/gamepadhapticactuator.rs
index 54be5de11dd..483a6a25a07 100644
--- a/components/script/dom/gamepadhapticactuator.rs
+++ b/components/script/dom/gamepadhapticactuator.rs
@@ -229,14 +229,11 @@ impl GamepadHapticActuatorMethods for GamepadHapticActuator {
context,
};
- ROUTER.add_route(
- effect_complete_receiver.to_opaque(),
- Box::new(move |message| {
- let msg = message.to::<bool>();
- match msg {
- Ok(msg) => listener.handle_completed(msg),
- Err(err) => warn!("Error receiving a GamepadMsg: {:?}", err),
- }
+ ROUTER.add_typed_route(
+ effect_complete_receiver,
+ Box::new(move |message| match message {
+ Ok(msg) => listener.handle_completed(msg),
+ Err(err) => warn!("Error receiving a GamepadMsg: {:?}", err),
}),
);
@@ -301,14 +298,11 @@ impl GamepadHapticActuatorMethods for GamepadHapticActuator {
context,
};
- ROUTER.add_route(
- effect_stop_receiver.to_opaque(),
- Box::new(move |message| {
- let msg = message.to::<bool>();
- match msg {
- Ok(msg) => listener.handle_stopped(msg),
- Err(err) => warn!("Error receiving a GamepadMsg: {:?}", err),
- }
+ ROUTER.add_typed_route(
+ effect_stop_receiver,
+ Box::new(move |message| match message {
+ Ok(msg) => listener.handle_stopped(msg),
+ Err(err) => warn!("Error receiving a GamepadMsg: {:?}", err),
}),
);
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs
index 0e9ec399f4b..0c48267abc9 100644
--- a/components/script/dom/globalscope.rs
+++ b/components/script/dom/globalscope.rs
@@ -847,10 +847,10 @@ impl GlobalScope {
task_source,
canceller,
};
- ROUTER.add_route(
- timer_ipc_port.to_opaque(),
+ ROUTER.add_typed_route(
+ timer_ipc_port,
Box::new(move |message| {
- let event = message.to().unwrap();
+ let event = message.unwrap();
timer_listener.handle(event);
}),
);
@@ -1435,14 +1435,11 @@ impl GlobalScope {
task_source,
context,
};
- ROUTER.add_route(
- broadcast_control_receiver.to_opaque(),
- Box::new(move |message| {
- let msg = message.to();
- match msg {
- Ok(msg) => listener.handle(msg),
- Err(err) => warn!("Error receiving a BroadcastMsg: {:?}", err),
- }
+ ROUTER.add_typed_route(
+ broadcast_control_receiver,
+ Box::new(move |message| match message {
+ Ok(msg) => listener.handle(msg),
+ Err(err) => warn!("Error receiving a BroadcastMsg: {:?}", err),
}),
);
let router_id = BroadcastChannelRouterId::new();
@@ -1491,14 +1488,11 @@ impl GlobalScope {
task_source,
context,
};
- ROUTER.add_route(
- port_control_receiver.to_opaque(),
- Box::new(move |message| {
- let msg = message.to();
- match msg {
- Ok(msg) => listener.notify(msg),
- Err(err) => warn!("Error receiving a MessagePortMsg: {:?}", err),
- }
+ ROUTER.add_typed_route(
+ port_control_receiver,
+ Box::new(move |message| match message {
+ Ok(msg) => listener.notify(msg),
+ Err(err) => warn!("Error receiving a MessagePortMsg: {:?}", err),
}),
);
let router_id = MessagePortRouterId::new();
@@ -2021,13 +2015,10 @@ impl GlobalScope {
task_canceller,
};
- ROUTER.add_route(
- recv.to_opaque(),
+ ROUTER.add_typed_route(
+ recv.to_ipc_receiver(),
Box::new(move |msg| {
- file_listener.handle(
- msg.to()
- .expect("Deserialization of file listener msg failed."),
- );
+ file_listener.handle(msg.expect("Deserialization of file listener msg failed."));
}),
);
@@ -2050,13 +2041,10 @@ impl GlobalScope {
task_canceller,
};
- ROUTER.add_route(
- recv.to_opaque(),
+ ROUTER.add_typed_route(
+ recv.to_ipc_receiver(),
Box::new(move |msg| {
- file_listener.handle(
- msg.to()
- .expect("Deserialization of file listener msg failed."),
- );
+ file_listener.handle(msg.expect("Deserialization of file listener msg failed."));
}),
);
}
diff --git a/components/script/dom/gpu.rs b/components/script/dom/gpu.rs
index 84e1a2fd481..cdac3a5a2e0 100644
--- a/components/script/dom/gpu.rs
+++ b/components/script/dom/gpu.rs
@@ -76,8 +76,8 @@ pub fn response_async<T: AsyncWGPUListener + DomObject + 'static>(
.task_canceller(TaskSourceName::DOMManipulation);
let mut trusted: Option<TrustedPromise> = Some(TrustedPromise::new(promise.clone()));
let trusted_receiver = Trusted::new(receiver);
- ROUTER.add_route(
- action_receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ action_receiver,
Box::new(move |message| {
let trusted = if let Some(trusted) = trusted.take() {
trusted
@@ -92,7 +92,7 @@ pub fn response_async<T: AsyncWGPUListener + DomObject + 'static>(
};
let result = task_source.queue_with_canceller(
task!(process_webgpu_task: move|| {
- context.response(message.to().unwrap(), CanGc::note());
+ context.response(message.unwrap(), CanGc::note());
}),
&canceller,
);
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 7d818e4a803..797ff8557fc 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -1077,14 +1077,15 @@ impl HTMLImageElement {
.task_manager()
.networking_task_source_with_canceller();
let generation = elem.generation.get();
- ROUTER.add_route(
- responder_receiver.to_opaque(),
+
+ ROUTER.add_typed_route(
+ responder_receiver,
Box::new(move |message| {
debug!("Got image {:?}", message);
// Return the image via a message to the script thread, which marks
// the element as dirty and triggers a reflow.
let element = trusted_node.clone();
- let image: PendingImageResponse = message.to().unwrap();
+ let image: PendingImageResponse = message.unwrap();
let selected_source_clone = selected_source.clone();
let _ = task_source.queue_with_canceller(
task!(process_image_response_for_environment_change: move || {
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index d37fd854ac0..08c63143ea3 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -1372,10 +1372,10 @@ impl HTMLMediaElement {
let (task_source, canceller) = window
.task_manager()
.media_element_task_source_with_canceller();
- ROUTER.add_route(
- action_receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ action_receiver,
Box::new(move |message| {
- let event = message.to().unwrap();
+ let event = message.unwrap();
trace!("Player event {:?}", event);
let this = trusted_node.clone();
if let Err(err) = task_source.queue_with_canceller(
@@ -1415,10 +1415,10 @@ impl HTMLMediaElement {
let (task_source, canceller) = window
.task_manager()
.media_element_task_source_with_canceller();
- ROUTER.add_route(
- image_receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ image_receiver.to_ipc_receiver(),
Box::new(move |message| {
- let msg = message.to().unwrap();
+ let msg = message.unwrap();
let this = trusted_node.clone();
if let Err(err) = task_source.queue_with_canceller(
task!(handle_glplayer_message: move || {
diff --git a/components/script/dom/serviceworkercontainer.rs b/components/script/dom/serviceworkercontainer.rs
index dc75fb01e80..e582fcd91e0 100644
--- a/components/script/dom/serviceworkercontainer.rs
+++ b/components/script/dom/serviceworkercontainer.rs
@@ -153,14 +153,11 @@ impl ServiceWorkerContainerMethods for ServiceWorkerContainer {
let (job_result_sender, job_result_receiver) = ipc::channel().expect("ipc channel failure");
- ROUTER.add_route(
- job_result_receiver.to_opaque(),
- Box::new(move |message| {
- let msg = message.to();
- match msg {
- Ok(msg) => handler.handle(msg),
- Err(err) => warn!("Error receiving a JobResult: {:?}", err),
- }
+ ROUTER.add_typed_route(
+ job_result_receiver,
+ Box::new(move |message| match message {
+ Ok(msg) => handler.handle(msg),
+ Err(err) => warn!("Error receiving a JobResult: {:?}", err),
}),
);
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index ba82450f5df..83edfbc0846 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -268,9 +268,9 @@ impl WebSocketMethods for WebSocket {
let task_source = global.websocket_task_source();
let canceller = global.task_canceller(WebsocketTaskSource::NAME);
- ROUTER.add_route(
- dom_event_receiver.to_opaque(),
- Box::new(move |message| match message.to().unwrap() {
+ ROUTER.add_typed_route(
+ dom_event_receiver.to_ipc_receiver(),
+ Box::new(move |message| match message.unwrap() {
WebSocketNetworkEvent::ConnectionEstablished { protocol_in_use } => {
let open_thread = ConnectionEstablishedTask {
address: address.clone(),
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 24c32223520..4eec2ddfff5 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -1934,10 +1934,10 @@ impl Window {
let (responder, responder_listener) =
ProfiledIpc::channel(self.global().time_profiler_chan().clone()).unwrap();
let image_cache_chan = self.image_cache_chan.clone();
- ROUTER.add_route(
- responder_listener.to_opaque(),
+ ROUTER.add_typed_route(
+ responder_listener.to_ipc_receiver(),
Box::new(move |message| {
- let _ = image_cache_chan.send((pipeline_id, message.to().unwrap()));
+ let _ = image_cache_chan.send((pipeline_id, message.unwrap()));
}),
);
self.image_cache
diff --git a/components/script/dom/xrsession.rs b/components/script/dom/xrsession.rs
index 9734d1e3fac..d5765a75b1c 100644
--- a/components/script/dom/xrsession.rs
+++ b/components/script/dom/xrsession.rs
@@ -204,10 +204,10 @@ impl XRSession {
let (task_source, canceller) = window
.task_manager()
.dom_manipulation_task_source_with_canceller();
- ROUTER.add_route(
- frame_receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ frame_receiver,
Box::new(move |message| {
- let frame: Frame = message.to().unwrap();
+ let frame: Frame = message.unwrap();
let time = CrossProcessInstant::now();
let this = this.clone();
let _ = task_source.queue_with_canceller(
@@ -235,13 +235,13 @@ impl XRSession {
.dom_manipulation_task_source_with_canceller();
let (sender, receiver) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
- ROUTER.add_route(
- receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |message| {
let this = this.clone();
let _ = task_source.queue_with_canceller(
task!(xr_event_callback: move || {
- this.root().event_callback(message.to().unwrap(), CanGc::note());
+ this.root().event_callback(message.unwrap(), CanGc::note());
}),
&canceller,
);
@@ -1047,14 +1047,14 @@ impl XRSessionMethods for XRSession {
.dom_manipulation_task_source_with_canceller();
let (sender, receiver) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
- ROUTER.add_route(
- receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |message| {
let this = this.clone();
let _ = task_source.queue_with_canceller(
task!(update_session_framerate: move || {
let session = this.root();
- session.apply_nominal_framerate(message.to().unwrap());
+ session.apply_nominal_framerate(message.unwrap());
if let Some(promise) = session.update_framerate_promise.borrow_mut().take() {
promise.resolve_native(&());
};
diff --git a/components/script/dom/xrsystem.rs b/components/script/dom/xrsystem.rs
index cb22dce6a18..6b88fa2cc8e 100644
--- a/components/script/dom/xrsystem.rs
+++ b/components/script/dom/xrsystem.rs
@@ -121,8 +121,8 @@ impl XRSystemMethods for XRSystem {
.task_manager()
.dom_manipulation_task_source_with_canceller();
let (sender, receiver) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
- ROUTER.add_route(
- receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |message| {
// router doesn't know this is only called once
let trusted = if let Some(trusted) = trusted.take() {
@@ -131,7 +131,7 @@ impl XRSystemMethods for XRSystem {
error!("supportsSession callback called twice!");
return;
};
- let message: Result<(), webxr_api::Error> = if let Ok(message) = message.to() {
+ let message: Result<(), webxr_api::Error> = if let Ok(message) = message {
message
} else {
error!("supportsSession callback given incorrect payload");
@@ -242,14 +242,14 @@ impl XRSystemMethods for XRSystem {
let (sender, receiver) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
let (frame_sender, frame_receiver) = ipc_crate::channel().unwrap();
let mut frame_receiver = Some(frame_receiver);
- ROUTER.add_route(
- receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |message| {
// router doesn't know this is only called once
let trusted = trusted.take().unwrap();
let this = this.clone();
let frame_receiver = frame_receiver.take().unwrap();
- let message: Result<Session, webxr_api::Error> = if let Ok(message) = message.to() {
+ let message: Result<Session, webxr_api::Error> = if let Ok(message) = message {
message
} else {
error!("requestSession callback given incorrect payload");
diff --git a/components/script/dom/xrtest.rs b/components/script/dom/xrtest.rs
index 5633a99d864..bd0a8b2206a 100644
--- a/components/script/dom/xrtest.rs
+++ b/components/script/dom/xrtest.rs
@@ -154,16 +154,16 @@ impl XRTestMethods for XRTest {
.task_manager()
.dom_manipulation_task_source_with_canceller();
let (sender, receiver) = ipc::channel(global.time_profiler_chan().clone()).unwrap();
- ROUTER.add_route(
- receiver.to_opaque(),
+
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |message| {
let trusted = trusted
.take()
.expect("SimulateDeviceConnection callback called twice");
let this = this.clone();
- let message = message
- .to()
- .expect("SimulateDeviceConnection callback given incorrect payload");
+ let message =
+ message.expect("SimulateDeviceConnection callback given incorrect payload");
let _ = task_source.queue_with_canceller(
task!(request_session: move || {
@@ -209,8 +209,8 @@ impl XRTestMethods for XRTest {
.task_manager()
.dom_manipulation_task_source_with_canceller();
- ROUTER.add_route(
- receiver.to_opaque(),
+ ROUTER.add_typed_route(
+ receiver.to_ipc_receiver(),
Box::new(move |_| {
len -= 1;
if len == 0 {