servo/components/layout
Steven Novaryo 5580704438
Implement Input type=text UA Shadow DOM (#37065)
Implement Shadow Tree construction for input `type=text`, adding a text
control inner editor container and placeholder container. Subsequently,
due to the changes of the DOM tree structure, the changes will add a new
NodeFlag `IS_TEXT_CONTROL_INNER_EDITOR` to handle the following cases.
- If a mouse click button event hits a text control inner editor, it
will redirect the focus target to its shadow host.
- In text run's construction, the text control inner editor container
queries the selection from its shadow host. This is later used to
resolve caret and selection painting in the display list.

This will be the first step of fixing input `type=text` and other
single-line text input element widgets. Such as, implementing
`::placeholder` selector.



Testing: Existing WPT test and new Servo specific appearance WPT.
Fixes: #36307

---------

Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
2025-05-30 12:02:10 +00:00
..
display_list layout: Fix logic for transforms with non-invertible matrix (#37147) 2025-05-27 18:36:33 +00:00
flexbox layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
flow layout: Regardless of restyle damage, always reflow when viewport changes (#37099) 2025-05-23 13:42:45 +00:00
fragment_tree layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
stylesheets Add a user agent style for the <slot> element (#37174) 2025-05-29 08:20:01 +00:00
table layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
taffy layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
tests layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
Cargo.toml Removing unused dependencies in crates. (#37096) 2025-05-23 12:58:00 +00:00
cell.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
construct_modern.rs layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
context.rs Add support for static SVG images using resvg crate (#36721) 2025-05-27 11:02:40 +00:00
dom.rs Add support for static SVG images using resvg crate (#36721) 2025-05-27 11:02:40 +00:00
dom_traversal.rs Implement Input type=text UA Shadow DOM (#37065) 2025-05-30 12:02:10 +00:00
formatting_contexts.rs layout: Correct damage propagation and style repair for repaint-only layout (#37004) 2025-05-19 10:17:49 +00:00
geom.rs layout: Inform child layout about final block size (#36980) 2025-05-14 20:35:49 +00:00
layout_box_base.rs layout: Add a repaint-only incremental layout mode (#36978) 2025-05-12 17:03:50 +00:00
layout_impl.rs Add support for static SVG images using resvg crate (#36721) 2025-05-27 11:02:40 +00:00
lib.rs layout: Move text decoration propagation to stacking context tree construction (#37069) 2025-05-21 16:38:29 +00:00
lists.rs layout: Use ServoLayoutNode directly instead of a generic impl (#36876) 2025-05-06 14:27:51 +00:00
positioned.rs layout: Inform child layout about final block size (#36980) 2025-05-14 20:35:49 +00:00
query.rs layout: Use ServoLayoutNode directly instead of a generic impl (#36876) 2025-05-06 14:27:51 +00:00
quotes.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
replaced.rs Add support for static SVG images using resvg crate (#36721) 2025-05-27 11:02:40 +00:00
sizing.rs layout: Combine layout_2020 and layout_thread_2020 into a crate called layout (#36613) 2025-04-19 10:17:03 +00:00
style_ext.rs Upgrade Stylo to 2025-05-01 (#36835) 2025-05-05 14:08:49 +00:00
traversal.rs Add another incremental layout that starts at stacking tree construction (#37088) 2025-05-23 23:40:02 +00:00