Create a constellation_traits crate (#36088)

This change creates a `constellation_traits` crate. Previously messages
to the `Constellation` were in the `compositing_traits` crate, which
came about organically. This change moves these to a new crate which
also contains data types that are used in both compositing/libservo and
script (ie types that cross the process boundary). The idea is similar
to `embedding_traits`, but this is meant for types not exposed to the
API.

This change allows deduplicating `UntrustedNodeAddress`, which
previously had two versions to avoid circular dependencies.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-03-22 16:49:08 +01:00 committed by GitHub
parent 02375809b0
commit 7c574141c0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
52 changed files with 399 additions and 270 deletions

30
Cargo.lock generated
View file

@ -1085,6 +1085,7 @@ dependencies = [
"base",
"bitflags 2.9.0",
"compositing_traits",
"constellation_traits",
"crossbeam-channel",
"dpi",
"embedder_traits",
@ -1118,11 +1119,9 @@ dependencies = [
"embedder_traits",
"euclid",
"ipc-channel",
"keyboard-types",
"log",
"pixels",
"script_traits",
"servo_url",
"strum_macros",
"stylo_traits",
"webrender_api",
@ -1149,6 +1148,7 @@ dependencies = [
"bluetooth_traits",
"canvas_traits",
"compositing_traits",
"constellation_traits",
"crossbeam-channel",
"devtools_traits",
"embedder_traits",
@ -1178,6 +1178,24 @@ dependencies = [
"webxr-api",
]
[[package]]
name = "constellation_traits"
version = "0.0.1"
dependencies = [
"base",
"bitflags 2.9.0",
"embedder_traits",
"euclid",
"ipc-channel",
"malloc_size_of_derive",
"serde",
"servo_malloc_size_of",
"servo_url",
"strum_macros",
"stylo_traits",
"webrender_api",
]
[[package]]
name = "content-security-policy"
version = "0.5.4"
@ -4195,6 +4213,7 @@ version = "0.0.1"
dependencies = [
"app_units",
"base",
"constellation_traits",
"embedder_traits",
"euclid",
"fnv",
@ -4328,6 +4347,7 @@ dependencies = [
"compositing",
"compositing_traits",
"constellation",
"constellation_traits",
"crossbeam-channel",
"devtools",
"devtools_traits",
@ -6271,6 +6291,7 @@ dependencies = [
"cbc",
"chrono",
"cipher",
"constellation_traits",
"content-security-policy",
"cookie 0.18.1",
"crossbeam-channel",
@ -6400,6 +6421,7 @@ dependencies = [
"atomic_refcell",
"base",
"canvas_traits",
"constellation_traits",
"euclid",
"fnv",
"fonts",
@ -6444,6 +6466,7 @@ dependencies = [
"bitflags 2.9.0",
"bluetooth_traits",
"canvas_traits",
"constellation_traits",
"cookie 0.18.1",
"crossbeam-channel",
"devtools_traits",
@ -8499,7 +8522,7 @@ version = "0.0.1"
dependencies = [
"base",
"base64 0.22.1",
"compositing_traits",
"constellation_traits",
"cookie 0.18.1",
"crossbeam-channel",
"embedder_traits",
@ -8619,6 +8642,7 @@ name = "webrender_traits"
version = "0.0.1"
dependencies = [
"base",
"constellation_traits",
"dpi",
"embedder_traits",
"euclid",