servo/components/layout
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
..
display_list Add HTMLCanvasDataSource::Empty that represent transparent black instead of HTMLCanvasDataSource::Image(None) (#33519) 2024-09-22 14:04:53 +00:00
block.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
Cargo.toml Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
construct.rs fonts: Make FontContext thread-safe and share it per-Layout (#32205) 2024-05-02 10:34:10 +00:00
context.rs fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
data.rs script: Split style and layout data in DOM nodes (#31985) 2024-04-04 07:56:51 +00:00
flex.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
floats.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
flow.rs clippy: Fix warnings in shared and config, fonts, layout, and layout_2020 components (#32674) 2024-07-04 14:18:58 +00:00
flow_list.rs Lint layout_2013 with clippy (#31221) 2024-01-30 11:46:35 +00:00
flow_ref.rs Address issues uncovered by rust-1.78 beta (#32130) 2024-04-22 18:20:47 +00:00
fragment.rs Add HTMLCanvasDataSource::Empty that represent transparent black instead of HTMLCanvasDataSource::Image(None) (#33519) 2024-09-22 14:04:53 +00:00
generated_content.rs Replace lazy_static crate with std::sync::LazyLock in layout and config (#33065) 2024-08-15 16:28:04 +00:00
incremental.rs Strict import formatting (grouping and granularity) (#30325) 2023-09-11 19:16:54 +00:00
inline.rs clippy: Fix various clippy warnings throughout the code (#33003) 2024-08-13 05:16:47 +00:00
layout_debug.rs clippy: Fix warnings in shared and config, fonts, layout, and layout_2020 components (#32674) 2024-07-04 14:18:58 +00:00
lib.rs layout: Add support for white-space-collapse: break-spaces (#32388) 2024-05-30 05:33:07 +00:00
linked_list.rs Update MPL license to https (part 4) 2018-11-19 14:47:27 +01:00
list_item.rs fonts: Make FontContext thread-safe and share it per-Layout (#32205) 2024-05-02 10:34:10 +00:00
model.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
multicol.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
parallel.rs clippy: Fix warnings in components/layout (#31612) 2024-03-11 10:24:36 +00:00
persistent_list.rs Lint layout_2013 with clippy (#31221) 2024-01-30 11:46:35 +00:00
query.rs Layout: Implement innerText/outerText (#33312) 2024-09-24 09:45:33 +00:00
sequential.rs dependencies: Upgrade to WebRender 0.64 (#31486) 2024-03-14 17:40:54 +00:00
table.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
table_caption.rs Move non-gfx things out of gfx_traits and create a base crate (#32296) 2024-05-17 12:28:58 +00:00
table_cell.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
table_colgroup.rs Strict import formatting (grouping and granularity) (#30325) 2023-09-11 19:16:54 +00:00
table_row.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
table_rowgroup.rs Move non-gfx things out of gfx_traits and create a base crate (#32296) 2024-05-17 12:28:58 +00:00
table_wrapper.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
text.rs clippy: Fix warnings in shared and config, fonts, layout, and layout_2020 components (#32674) 2024-07-04 14:18:58 +00:00
text_run.rs Replace .map_or(false with Option::is_some_and (#33468) 2024-09-16 10:03:52 +00:00
traversal.rs Replace .map_or(false with Option::is_some_and (#33468) 2024-09-16 10:03:52 +00:00
wrapper.rs Upgrade stylo to 2024-05-15 (#32334) 2024-05-27 15:24:34 +00:00