servo/components
Simon Wülker dabe162d44
Implement shadow dom slots (#35013)
* Implement slot-related algorithms

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Hook up slot elements to DOM creation logic

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Set a slot assignment mode for servo-internal shadow roots

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Assign slots when a slottable's slot attribute changes

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Properly compute slot name

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* ./mach test-tidy

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Update <slot> name when name attribute changes

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Implement fast path for Node::assign_slottables_for_a_tree

assign_slottables_for_a_tree traverses all descendants of the node
and is potentially very expensive. If the node is not a shadow root
then assigning slottables to it won't have any effect, so we
take a fast path out.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Move slottable data into ElementRareData

This shrinks all element descendants back to their
original size.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Address review comments

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Update WPT expectations

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-01-19 14:05:05 +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 api: Flatten and simplify Servo preferences (#34966) 2025-01-14 13:54:06 +00:00
canvas prefs: Move some DebugOptions to Preferences and clean up (#34998) 2025-01-17 11:47:47 +00:00
compositing Implement Clipboard Event Api (#33576) 2025-01-15 19:45:29 +00:00
config config: Derive defaults for Opts. (#35057) 2025-01-18 09:23:36 +00:00
constellation prefs: Move some DebugOptions to Preferences and clean up (#34998) 2025-01-17 11:47:47 +00:00
deny_public_fields Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
devtools api: Flatten and simplify Servo preferences (#34966) 2025-01-14 13:54:06 +00:00
dom_struct script: Feature-gate all crown support. (#35055) 2025-01-18 21:36:15 +00:00
domobject_derive Upgrade rustc to 1.83 (#34793) 2025-01-01 09:38:28 +00:00
fonts fonts: Remove synchronous web font loading functionality (#35000) 2025-01-15 11:16:43 +00:00
geometry servoshell: Allow overriding screen resolution with a command-line argument (#34038) 2024-10-30 11:54:13 +00:00
hyper_serde Elide lifetimes where possible after rustup (#34824) 2025-01-03 18:54:44 +00:00
jstraceable_derive Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
layout layout: Remove the obsolete layout tracing functionality (#35001) 2025-01-15 13:24:14 +00:00
layout_2020 layout: Remove some unneeded is_table parameters (#35064) 2025-01-19 00:25:53 +00:00
layout_thread layout: Remove the obsolete layout tracing functionality (#35001) 2025-01-15 13:24:14 +00:00
layout_thread_2020 layout: Remove the obsolete layout tracing functionality (#35001) 2025-01-15 13:24:14 +00:00
malloc_size_of script: Move the FontContext to Window (#34845) 2025-01-07 04:44:31 +00:00
media Remove some unused dependencies (#34355) 2024-11-25 10:29:58 +00:00
metrics Remove some unused dependencies (#34355) 2024-11-25 10:29:58 +00:00
net Implement WebResourceRequested Event. (#34961) 2025-01-16 07:44:16 +00:00
pixels Optimized unmultiply_inplace to remove fp ops (#33582) 2024-09-30 19:39:27 +00:00
profile script: Eliminate code duplication in the task queue (#34798) 2025-01-01 13:50:52 +00:00
rand crypto: Begin SubtleCrypto implementation (#33628) 2024-10-08 03:51:08 +00:00
range Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
script Implement shadow dom slots (#35013) 2025-01-19 14:05:05 +00:00
servo script: Feature-gate all crown support. (#35055) 2025-01-18 21:36:15 +00:00
shared prefs: Move some DebugOptions to Preferences and clean up (#34998) 2025-01-17 11:47:47 +00:00
timers script: Make timers per-process (#34581) 2024-12-24 09:53:35 +00:00
url Add rust-version to all Cargo.toml files (#33483) 2024-09-17 16:39:07 +00:00
webdriver_server webdriver: Serialize JS int values as i32. (#34997) 2025-01-15 08:15:37 +00:00
webgpu chore: Update wgpu and fix webgpu pref (#35020) 2025-01-16 14:42:47 +00:00