···1919 };
2020 pub use from_script_message::*;
2121 use malloc_size_of_derive::MallocSizeOf;
2222-@@ -30,15 +32,152 @@
2222+@@ -30,15 +32,173 @@
2323 use rustc_hash::FxHashMap;
2424 use serde::{Deserialize, Serialize};
2525 use servo_base::cross_process_instant::CrossProcessInstant;
···103103+ pub allowed_count: u32,
104104+}
105105+
106106++/// A D-Bus argument value that can cross IPC boundaries.
107107++#[derive(Clone, Debug, Deserialize, Serialize)]
108108++pub enum DbusValue {
109109++ Bool(bool),
110110++ Int32(i32),
111111++ Uint32(u32),
112112++ Int64(i64),
113113++ Double(f64),
114114++ String(String),
115115++ Array(Vec<DbusValue>),
116116++}
117117++
118118++/// A D-Bus signal received from a subscription.
119119++#[derive(Clone, Debug, Deserialize, Serialize)]
120120++pub struct DbusSignalEvent {
121121++ pub signal: String,
122122++ pub interface: String,
123123++ pub path: String,
124124++ pub args_json: String,
125125++}
126126++
106127+/// Information about a remote P2P peer.
107128+#[derive(Clone, Debug, Deserialize, Serialize)]
108129+pub struct PeerInfo {
···174195 /// Messages to the Constellation from the embedding layer, whether from `ServoRenderer` or
175196 /// from `libservo` itself.
176197 #[derive(IntoStaticStr)]
177177-@@ -118,6 +257,9 @@
198198+@@ -118,6 +278,9 @@
178199 UpdatePinchZoomInfos(PipelineId, PinchZoomInfos),
179200 /// Activate or deactivate accessibility features for the given `WebView`.
180201 SetAccessibilityActive(WebViewId, bool),
+3-1
patches/components/shared/script/lib.rs.patch
···5353 /// Notify the `ScriptThread` that the Servo renderer is no longer waiting on
5454 /// asynchronous image uploads for the given `Pipeline`. These are mainly used
5555 /// by canvas to perform uploads while the display list is being built.
5656-@@ -329,6 +346,26 @@
5656+@@ -329,6 +346,28 @@
5757 SetAccessibilityActive(PipelineId, bool, Epoch),
5858 /// Force a garbage collection in this script thread.
5959 TriggerGarbageCollection,
···7272+ DispatchServoError(ServoErrorType, String),
7373+ /// Dispatch a pairing event to all `navigator.embedder.pairing` instances in this script thread.
7474+ DispatchPairingEvent(PairingEvent),
7575++ /// Dispatch a D-Bus signal event to script.
7676++ DispatchDBusSignal(servo_constellation_traits::DbusSignalEvent),
7577+ /// Dispatch a peer stream event — a remote peer is offering a MessagePort.
7678+ /// Contains (peer_id, serialized remote port_id bytes, stream_id, from_peer_id, target_url).
7779+ DispatchPeerStream(String, Vec<u8>, String, String, String),