Remove the use of unsafe code in the layout wrappers of the DOM. The
main change here is that `unsafe_get()` no longer needs to be an unsafe
method, which allows us to transitively remove or reduce unsafe blocks
from callers. The function itself is not renamed, because it's still
a bit dangerous to start removing the layers of abstraction from actual
DOM nodes.
In addition `init_style_and_opaque_layout_data` can be merged into
`initialize_data`, which removes one more unsafe method.
Finally, a "Safety" section is added to some unsafe methods.
WebRender does not preserve spatial tree offsets when updating the
spatial tree. Updating the spatial tree of a pipeline can also
update the spatial tree of child pipelines. This change ensures that
WebRender always gets the scroll offsets of the entire scene when
modifying display lists in a way that may rebuild the spatial tree.
Fixes#31807.
* Fixd some clippy warnings in components/script
* Update node.rs
Removed the ```# Safety ``` section.
* Update shadow_root.rs
Removed the ``` # Safety ``` section from components/script/layout_dom
* Updated fixes to some clippy warnings in components/script
* Revert "Updated fixes to some clippy warnings in components/script"
This reverts commit 2a37c3dec8.
* Updated fixes to clippy warnings in components/script
* Revert "Updated fixes to clippy warnings in components/script"
This reverts commit 5780dc3a0a.
* Revert "Revert "Updated fixes to some clippy warnings in components/script""
This reverts commit 98c411354a.
* Revert "Updated fixes to some clippy warnings in components/script"
This reverts commit 2a37c3dec8.
* Update shadow_root.rs (Ignore change)
* Update node.rs (Ignore changes)
* Updated fixes to clippy warnings in components/script
* Removed trailing white space in componets/script/layout_dom_root.rs
* Revert "Removed trailing white space in componets/script/layout_dom_root.rs"
This reverts commit 1976fd0405.
* Revert "Updated fixes to clippy warnings in components/script"
This reverts commit 5c71b925fb.
* Updated fixes to clippy warnings in components/script including review suggestions.
* clippy: Fix `match_like_matches` warnings
* Fix link to custom element state in specification.
---------
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Instead of the tricky `LayoutRPC` interface, query layout using the
`Layout` trait. This means that now queries will requires calling layout
and then running the query. During layout an enum is used to indicate
what kind of layout is necessary.
This change also removes the mutex-locked `rw_data` from both layout
threads. It's no longer necessary since layout runs synchronously. The
one downside here is that for resolved style queries, we now have to
create two StyleContexts. One for layout and one for the query itself.
The creation of this context should not be very expensive though.
`LayoutRPC` used to be necessary because layout used to run
asynchronously from script, but that no longer happens. With this
change, it becomes possible to safely pass nodes to layout from script
-- a cleanup that can happen in a followup change.
* manual implementation of an assign operation
* manual implementation of an assign operation
* single-character string
* manual cjheck for common ascii range
* Ignore spaces before atomic inline for the min-content size
For the min-content size we should wrap lines wherever is possible,
so wrappable spaces shouldn't increase the length of the line,
they will just be removed or hang at the end of the line.
* Add a clarifying comment
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
---------
Co-authored-by: Martin Robinson <mrobinson@igalia.com>