mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
This is the last big change necessary to create the `constellation_traits` crate. This moves the data structure for messages that originate from the `ScriptThread` and are sent to the `Contellation` to `constellation_traits`, effectively splitting `script_traits` in half. Before, `script_traits` was responsible for exposing the API of both the `ScriptThread` and the `Constellation` to the rest of Servo. - Data structures that are used by `ScriptToConstellationMsg` are moved to `constellation_traits`. The dependency graph looks a bit like this: `script_layout_interface` depends on `script_traits` depends on `constellation_traits` depends on `embedder_traits`. - Data structures that are used in the embedding layer (`UntrustedNodeAddress`, `CompositorHitTestResult`, `TouchEventResult` and `AnimationState`) are moved to embedder_traits, to avoid a dependency cycle between `webrender_traits` and `constellation_traits`. - Types dealing with MessagePorts and serialization are moved to `constellation_traits::message_port`. Testing: This is covered by existing tests as it just moves types around. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
31 lines
1,022 B
Rust
31 lines
1,022 B
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
use constellation_traits::StructuredSerializedData;
|
|
use servo_url::ImmutableOrigin;
|
|
|
|
use crate::dom::bindings::refcounted::Trusted;
|
|
use crate::dom::bindings::reflector::DomObject;
|
|
use crate::messaging::CommonScriptMsg;
|
|
|
|
/// Messages used to control the worker event loops
|
|
pub(crate) enum WorkerScriptMsg {
|
|
/// Common variants associated with the script messages
|
|
Common(CommonScriptMsg),
|
|
/// Message sent through Worker.postMessage
|
|
DOMMessage {
|
|
origin: ImmutableOrigin,
|
|
data: Box<StructuredSerializedData>,
|
|
},
|
|
}
|
|
|
|
pub(crate) struct SimpleWorkerErrorHandler<T: DomObject> {
|
|
pub(crate) addr: Trusted<T>,
|
|
}
|
|
|
|
impl<T: DomObject> SimpleWorkerErrorHandler<T> {
|
|
pub(crate) fn new(addr: Trusted<T>) -> SimpleWorkerErrorHandler<T> {
|
|
SimpleWorkerErrorHandler { addr }
|
|
}
|
|
}
|