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.
* 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
* constants have by default a static lifetime
* constants have by default a static lifetime
* unneeded unit expression
* unneeded unit expression
* Box of default value
* casting raw pointers
* casting raw pointers