Use GenericChannel for script_chan (#38645)

Motivation: 
Using our GenericChannel abstraction allows us to optimize IPC in
single-process mode to just use cross-beam channel.
To keep the diff low, and get early feedback, this PR only tackles a
single channel, but the intention is to port all ipc channels to the
generic channel, which allows us to skip serializing and deserializing
messages in single process mode.

Based on: 
- https://github.com/servo/servo/pull/38638
- https://github.com/servo/servo/pull/38636

Testing: Covered by existing tests

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
This commit is contained in:
Jonathan Schwender 2025-08-19 11:59:20 +02:00 committed by GitHub
parent 73e0f2f7e6
commit 8587536755
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 36 additions and 22 deletions

View file

@ -871,9 +871,7 @@ impl ScriptThread {
JS_AddInterruptCallback(cx, Some(interrupt_callback));
}
// Ask the router to proxy IPC messages from the control port to us.
let constellation_receiver =
ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(state.constellation_receiver);
let constellation_receiver = state.constellation_receiver.into_inner();
// Ask the router to proxy IPC messages from the devtools to us.
let devtools_server_sender = state.devtools_server_sender;