mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
script: Refactor channels in ScriptThread
into receivers and senders (#34776)
Create two new data structures in the `script` crate to hold senders and receiver: - `ScriptThreadSenders`: holds all outgoing channels from the `ScriptThread` including a channel to the `ScriptThread` itself. The ultimate goal with this is to reduce duplication by giving a boxed version of this this to `Window`s. - `ScriptThradReceivers`: holds all incoming channels to the `ScriptThread`. This isn't cloenable like the senders. This is used to abstract away `recv()` and `try_recv()` methods used to make the `ScriptThread` event loop easier to read. In addition: - The many duplicated `ScriptThread` self-senders for the `TaskManager` have been removed and, in general, a lot of boilerplate is removed as well. - Visibilty of all methods affected by this change is changed to `pub(crate)` in order to take advantage of dead code detection. Some dead code produced from macros is removed. - Some conversion code is refactord into implementations of the `From` trait. - The names of channels uses a standard "sender" and "receiver" naming as well as trying to be descriptive of where they go in `ScriptThread` as well as `InitialScriptState` Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
parent
1e95712772
commit
5f927a2c28
30 changed files with 732 additions and 902 deletions
|
@ -518,20 +518,20 @@ impl UnprivilegedPipelineContent {
|
|||
top_level_browsing_context_id: self.top_level_browsing_context_id,
|
||||
parent_info: self.parent_pipeline_id,
|
||||
opener: self.opener,
|
||||
control_chan: self.script_chan.clone(),
|
||||
control_port: self.script_port,
|
||||
script_to_constellation_chan: self.script_to_constellation_chan.clone(),
|
||||
constellation_sender: self.script_chan.clone(),
|
||||
constellation_receiver: self.script_port,
|
||||
pipeline_to_constellation_sender: self.script_to_constellation_chan.clone(),
|
||||
background_hang_monitor_register: background_hang_monitor_register.clone(),
|
||||
layout_to_constellation_chan: self.layout_to_constellation_chan.clone(),
|
||||
bluetooth_thread: self.bluetooth_thread,
|
||||
layout_to_constellation_ipc_sender: self.layout_to_constellation_chan.clone(),
|
||||
bluetooth_sender: self.bluetooth_thread,
|
||||
resource_threads: self.resource_threads,
|
||||
image_cache: image_cache.clone(),
|
||||
time_profiler_chan: self.time_profiler_chan.clone(),
|
||||
mem_profiler_chan: self.mem_profiler_chan.clone(),
|
||||
devtools_chan: self.devtools_ipc_sender,
|
||||
time_profiler_sender: self.time_profiler_chan.clone(),
|
||||
memory_profiler_sender: self.mem_profiler_chan.clone(),
|
||||
devtools_server_sender: self.devtools_ipc_sender,
|
||||
window_size: self.window_size,
|
||||
pipeline_namespace_id: self.pipeline_namespace_id,
|
||||
content_process_shutdown_chan,
|
||||
content_process_shutdown_sender: content_process_shutdown_chan,
|
||||
webgl_chan: self.webgl_chan,
|
||||
webxr_registry: self.webxr_registry,
|
||||
webrender_document: self.webrender_document,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue