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>
This commit is contained in:
Simon Wülker 2024-10-18 12:47:52 +02:00 committed by GitHub
parent ff374c1428
commit e33bae6d0a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 177 additions and 195 deletions

View file

@ -51,7 +51,7 @@ webgpu = { path = "../webgpu" }
webrender = { workspace = true }
webrender_api = { workspace = true }
webrender_traits = { workspace = true }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
webxr-api = { workspace = true, features = ["ipc"] }
[target.'cfg(any(target_os="macos", all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64"))))'.dependencies]
gaol = "0.2.1"

View file

@ -594,9 +594,11 @@ where
T: for<'de> Deserialize<'de> + Serialize + Send + 'static,
{
let (crossbeam_sender, crossbeam_receiver) = unbounded();
ROUTER.add_route(
ipc_receiver.to_opaque(),
Box::new(move |message| drop(crossbeam_sender.send(message.to::<T>()))),
ROUTER.add_typed_route(
ipc_receiver,
Box::new(move |message| {
let _ = crossbeam_sender.send(message);
}),
);
crossbeam_receiver
}

View file

@ -86,11 +86,10 @@ impl NetworkListener {
},
};
ROUTER.add_route(
ipc_receiver.to_opaque(),
ROUTER.add_typed_route(
ipc_receiver,
Box::new(move |message| {
let msg = message.to();
match msg {
match message {
Ok(FetchResponseMsg::ProcessResponse(request_id, res)) => {
listener.check_redirect(request_id, res)
},

View file

@ -240,21 +240,19 @@ impl Pipeline {
let (script_to_devtools_ipc_sender, script_to_devtools_ipc_receiver) =
ipc::channel().expect("Pipeline script to devtools chan");
let devtools_sender = (*devtools_sender).clone();
ROUTER.add_route(
script_to_devtools_ipc_receiver.to_opaque(),
Box::new(move |message| {
match message.to::<ScriptToDevtoolsControlMsg>() {
Err(e) => {
error!("Cast to ScriptToDevtoolsControlMsg failed ({}).", e)
},
Ok(message) => {
if let Err(e) = devtools_sender
.send(DevtoolsControlMsg::FromScript(message))
{
warn!("Sending to devtools failed ({:?})", e)
}
},
}
ROUTER.add_typed_route(
script_to_devtools_ipc_receiver,
Box::new(move |message| match message {
Err(e) => {
error!("Cast to ScriptToDevtoolsControlMsg failed ({}).", e)
},
Ok(message) => {
if let Err(e) = devtools_sender
.send(DevtoolsControlMsg::FromScript(message))
{
warn!("Sending to devtools failed ({:?})", e)
}
},
}),
);
script_to_devtools_ipc_sender