servo/components
Martin Robinson ade902207f
fonts: Use IpcSharedMemory to send font data (#33530)
This changes modifes the way that font data is sent over IPC channels.
Instead of serializing the data or sending it via IPC byte senders, font
data is copied into shared memory and a copy of the handle is sent over
the channel.

There is also the idea of sending the file handle of the on disk data of
system fonts. This could be implemented as a further followup once there
is an abstraction in `ipc-channel` over file handles.

To accomplish this, a `FontData` abstraction is added, which also allows
caching an in-memory shared `Arc<Vec<u8>>` version of the data (neeeded
by some APIs). This could also be a place for caching font tables in the
future.

Finally, the `FontCacheThread` is renamed to the `SystemFontService`
while the proxy for this is now named `SystemFontServiceProxy`.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-09-25 07:31:55 +00:00
..
allocator Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
background_hang_monitor Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
bluetooth Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
canvas fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
compositing fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
config Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
config_plugins Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
constellation fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
dom_struct Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
domobject_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
fonts fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
geometry Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
hyper_serde Stop using time@0.1 in Servo (#33394) 2024-09-11 07:09:56 +00:00
jstraceable_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
layout fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
layout_2020 fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
layout_thread fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
layout_thread_2020 fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
media Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
metrics Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
net fix many clippy warnings (#33510) 2024-09-21 13:58:31 +00:00
pixels Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
profile Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
rand Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
range Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
script fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
servo fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
shared fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
url Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
webdriver_server Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
webgpu reuse ImageKey for gpucanvascontext (#33517) 2024-09-22 11:57:50 +00:00