servo/components/layout_2020
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 layout: Add support for object-fit and object-position (#33479) 2024-09-18 06:20:28 +00:00
flexbox Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
flow fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
fragment_tree layout: Add support for object-fit and object-position (#33479) 2024-09-18 06:20:28 +00:00
table layout: Ensure that <caption>'s support position: relative (#33426) 2024-09-19 12:43:29 +00:00
tests layout: Right-to-left support for other layout modes (#33375) 2024-09-11 13:40:11 +00:00
Cargo.toml Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
cell.rs Strict import formatting (grouping and granularity) (#30325) 2023-09-11 19:16:54 +00:00
context.rs fonts: Use IpcSharedMemory to send font data (#33530) 2024-09-25 07:31:55 +00:00
dom.rs Add HTMLCanvasDataSource::Empty that represent transparent black instead of HTMLCanvasDataSource::Image(None) (#33519) 2024-09-22 14:04:53 +00:00
dom_traversal.rs Replace .map_or(false with Option::is_some_and (#33468) 2024-09-16 10:03:52 +00:00
formatting_contexts.rs layout: Use Au in ComputedValuesExt (#33396) 2024-09-10 21:35:17 +00:00
geom.rs Let LengthPercentage::maybe_to_used_value() accept Option<Au> (#33450) 2024-09-16 08:08:54 +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: Right-to-left support for other layout modes (#33375) 2024-09-11 13:40:11 +00:00
lists.rs layout: Add a basic support for list-style-position: outside (#32114) 2024-04-22 14:23:35 +00:00
positioned.rs layout: Add support for object-fit and object-position (#33479) 2024-09-18 06:20:28 +00:00
query.rs Layout: Implement innerText/outerText (#33312) 2024-09-24 09:45:33 +00:00
replaced.rs Add HTMLCanvasDataSource::Empty that represent transparent black instead of HTMLCanvasDataSource::Image(None) (#33519) 2024-09-22 14:04:53 +00:00
sizing.rs Fix various issues with replaced elements in flex layout (#33263) 2024-08-30 23:39:18 +00:00
style_ext.rs Enable min-content, max-content, fit-content and stretch (#33492) 2024-09-20 14:48:27 +00:00
traversal.rs script: Split style and layout data in DOM nodes (#31985) 2024-04-04 07:56:51 +00:00