servo: Merge #8958 - Separate script and layout messages, issue #8843 (from jkachmar:separate-layout-msg); r=KiChjang
Separated layout-specific messages to the constellation out from the `ScriptMsg` enum into a `LayoutMsg` enum within `script_traits/script_msg.rs`, addresses [#8843](https://github.com/servo/servo/issues/8843). I initially tried to move `LayoutMsg` into `layout_traits/lib.rs`, but this introduced a cyclic dependency: `layout_traits` depends on `script_traits` for the `LayoutTaskFactory` implementation, and `script_traits/script_task.rs` now depends on `LayoutMsg` for new layout channels in `InitialScriptState` and `ScriptTask`. Source-Repo: https://github.com/servo/servo Source-Revision: 941653da653a1925ade35597e97f61a6a8a0018d
This commit is contained in:
@@ -80,7 +80,7 @@ use profile_traits::time::{self, ProfilerCategory, profile};
|
||||
use script_traits::CompositorEvent::{KeyEvent, MouseButtonEvent, MouseMoveEvent, ResizeEvent};
|
||||
use script_traits::CompositorEvent::{TouchEvent};
|
||||
use script_traits::{CompositorEvent, ConstellationControlMsg, EventResult, InitialScriptState, NewLayoutInfo};
|
||||
use script_traits::{OpaqueScriptLayoutChannel, ScriptMsg as ConstellationMsg};
|
||||
use script_traits::{LayoutMsg, OpaqueScriptLayoutChannel, ScriptMsg as ConstellationMsg};
|
||||
use script_traits::{ScriptTaskFactory, ScriptToCompositorMsg, TimerEvent, TimerEventRequest, TimerSource};
|
||||
use script_traits::{TouchEventType, TouchId};
|
||||
use std::any::Any;
|
||||
@@ -406,6 +406,9 @@ pub struct ScriptTask {
|
||||
/// For communicating load url messages to the constellation
|
||||
constellation_chan: ConstellationChan<ConstellationMsg>,
|
||||
|
||||
/// For communicating layout messages to the constellation
|
||||
layout_to_constellation_chan: ConstellationChan<LayoutMsg>,
|
||||
|
||||
/// A handle to the compositor for communicating ready state messages.
|
||||
compositor: DOMRefCell<IpcSender<ScriptToCompositorMsg>>,
|
||||
|
||||
@@ -669,6 +672,7 @@ impl ScriptTask {
|
||||
control_chan: state.control_chan,
|
||||
control_port: control_port,
|
||||
constellation_chan: state.constellation_chan,
|
||||
layout_to_constellation_chan: state.layout_to_constellation_chan,
|
||||
compositor: DOMRefCell::new(state.compositor),
|
||||
time_profiler_chan: state.time_profiler_chan,
|
||||
mem_profiler_chan: state.mem_profiler_chan,
|
||||
@@ -1195,7 +1199,7 @@ impl ScriptTask {
|
||||
is_parent: false,
|
||||
layout_pair: layout_pair,
|
||||
pipeline_port: pipeline_port,
|
||||
constellation_chan: self.constellation_chan.clone(),
|
||||
constellation_chan: self.layout_to_constellation_chan.clone(),
|
||||
failure: failure,
|
||||
paint_chan: paint_chan,
|
||||
script_chan: self.control_chan.clone(),
|
||||
|
||||
Reference in New Issue
Block a user