servo/components/script
Martin Robinson f2f5614ad6
compositor: Create a single cross-process compositor API (#33619)
Instead of exposing many different kinds of messages to the compositor
that are routed through the constellation, expose a single message type
which can be sent across IPC channels. In addition, this IPC channel and
the route to the crossbeam channel with the compositor is created along
with the `CompositorProxy`, simplifying what needs to be passed around
during pipeline initialization.

Previously, some image updates (from video) were sent over IPC with a
special serialization routine and some were sent via crossbeam channels
(canvas). Now all updates go over the IPC channel `IpcSharedMemory` is
used to avoid serialization penalties. This should improve performance
and reduce copies for video, but add a memory copy overhead for canvas.
This will improve in the future when canvas renders directly into a
texture.

All-in-all this is a simplification which opens the path toward having a
standard compositor API and reduces the number of duplicate messages and
proxying that had to happen in libservo.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-03 14:42:04 +00:00
..
docs
dom compositor: Create a single cross-process compositor API (#33619) 2024-10-03 14:42:04 +00:00
layout_dom Replace .map_or(false with Option::is_some_and (#33468) 2024-09-16 10:03:52 +00:00
task_source Dedupliate syn (#33038) 2024-08-13 21:21:47 +00:00
animation_timeline.rs
animations.rs remove usage of legacy numeric operations in script (#33095) 2024-08-16 21:30:13 +00:00
body.rs
build.rs use rerun-if-changed in script/build.rs (#33502) 2024-09-30 11:31:05 +00:00
canvas_state.rs Replace .map_or(false with Option::is_some_and (#33468) 2024-09-16 10:03:52 +00:00
Cargo.toml Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
clipboard_provider.rs
devtools.rs clippy: Fix suggestions in script, libservo, and servoshell (#33453) 2024-09-14 08:41:13 +00:00
document_loader.rs Propagate CanGc from Document::new() (#33386) 2024-09-09 22:38:01 +00:00
fetch.rs Create HttpStatus to safely deal with HTTP responses status. (#33581) 2024-09-29 18:23:48 +00:00
image_listener.rs
init.rs
layout_image.rs
lib.rs Properly track rel keywords for <a>/<area>/<form> elements (#33462) 2024-09-23 11:48:53 +00:00
links.rs Properly track rel keywords for <a>/<area>/<form> elements (#33462) 2024-09-23 11:48:53 +00:00
mem.rs
microtask.rs Make CanGc derive Copy and Clone (#33407) 2024-09-12 10:24:44 +00:00
network_listener.rs
realms.rs clippy: components/script/realms (#32859) 2024-07-26 10:15:02 +00:00
script_module.rs Create HttpStatus to safely deal with HTTP responses status. (#33581) 2024-09-29 18:23:48 +00:00
script_runtime.rs Make CanGc derive Copy and Clone (#33407) 2024-09-12 10:24:44 +00:00
script_thread.rs compositor: Create a single cross-process compositor API (#33619) 2024-10-03 14:42:04 +00:00
security_manager.rs clippy: Fix suggestions in script, libservo, and servoshell (#33453) 2024-09-14 08:41:13 +00:00
serviceworker_manager.rs Make CanGc derive Copy and Clone (#33407) 2024-09-12 10:24:44 +00:00
stylesheet_loader.rs Create HttpStatus to safely deal with HTTP responses status. (#33581) 2024-09-29 18:23:48 +00:00
stylesheet_set.rs
task.rs
task_manager.rs script: Start rework to better match the specification HTML event loop (#31505) 2024-05-13 09:23:03 +00:00
task_queue.rs clippy: Fix suggestions in script, libservo, and servoshell (#33453) 2024-09-14 08:41:13 +00:00
test.rs
textinput.rs remove usage of legacy numeric operations in script (#33095) 2024-08-16 21:30:13 +00:00
timers.rs script: Stop using time in DOM timers (#33262) 2024-08-30 15:20:44 +00:00
unpremultiplytable.rs
webdriver_handlers.rs Start marking functions that can transitively trigger a GC (#33144) 2024-08-22 11:42:36 +00:00
window_named_properties.rs Replace the lazy_static crate whth std::sync::LazyLock in components/script (#33004) 2024-08-12 07:30:35 +00:00