mirror of
https://github.com/servo/servo.git
synced 2025-09-27 23:30:08 +01:00
layout: Use ServoThreadSafeLayoutNode
in more places (#38626)
Use `ServoThreadSafeLayoutNode` in more places in layout rather than `ServoLayoutNode`. The former is meant to be used during layout, but layout 2020 was written against the latter. In general, this reduces the amount of conversion to the thread-safe version in many places in layout. In addition, an unused iterator from the `script` crate `ServoThreadSafeLayoutNodeChildrenIterator` is replaced with the child iterator from `layout`. The `layout` version must be directly in `script` now as it uses the dangerous variants of `next_sibling` and `first_child`, which allow encapsulating the unsafe bits into one module. This will ultimately be useful for storing the layout data of pseudo-element children of pseudo-elements properly. Testing: This should not change any behavior and thus is covered by existing tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
parent
20ad1ce84e
commit
ee7c1d9109
20 changed files with 258 additions and 321 deletions
|
@ -9,6 +9,7 @@ use euclid::Size2D;
|
|||
use fnv::FnvHashMap;
|
||||
use fonts::FontContext;
|
||||
use fxhash::FxHashMap;
|
||||
use layout_api::wrapper_traits::ThreadSafeLayoutNode;
|
||||
use layout_api::{
|
||||
IFrameSizes, ImageAnimationState, PendingImage, PendingImageState, PendingRasterizationImage,
|
||||
};
|
||||
|
@ -18,9 +19,10 @@ use net_traits::image_cache::{
|
|||
};
|
||||
use parking_lot::{Mutex, RwLock};
|
||||
use pixels::RasterImage;
|
||||
use script::layout_dom::ServoThreadSafeLayoutNode;
|
||||
use servo_url::{ImmutableOrigin, ServoUrl};
|
||||
use style::context::SharedStyleContext;
|
||||
use style::dom::{OpaqueNode, TNode};
|
||||
use style::dom::OpaqueNode;
|
||||
use style::values::computed::image::{Gradient, Image};
|
||||
use webrender_api::units::{DeviceIntSize, DeviceSize};
|
||||
|
||||
|
@ -247,7 +249,7 @@ impl ImageResolver {
|
|||
|
||||
pub(crate) fn queue_svg_element_for_serialization(
|
||||
&self,
|
||||
element: script::layout_dom::ServoLayoutNode<'_>,
|
||||
element: ServoThreadSafeLayoutNode<'_>,
|
||||
) {
|
||||
self.pending_svg_elements_for_serialization
|
||||
.lock()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue