aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_2020/dom_traversal.rs
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2024-12-07 20:12:25 +0100
committerGitHub <noreply@github.com>2024-12-07 19:12:25 +0000
commit264c0f972fd1a732ee1d1490d78a1d26a65c6f5f (patch)
tree29a4ec249b90b0364a6de7638b3c66b8ef23ef2f /components/layout_2020/dom_traversal.rs
parent97e9841d47fca9ff576b0af8ec08fdd8421b6915 (diff)
downloadservo-264c0f972fd1a732ee1d1490d78a1d26a65c6f5f.tar.gz
servo-264c0f972fd1a732ee1d1490d78a1d26a65c6f5f.zip
layout: Add `LayoutBoxBase` and use it for `IndependentFormattingContext` (#34507)
Add a new struct `LayoutBoxBase`, that will be used throughout the box tree. The idea of this struct is that we have a place to consistently store common layout information (style and node information) and also to cache layout results such as content sizes (inline and maybe later box sizes) and eventually layout results. In addition to the addition of this struct, `IndependentFormattingContext` is flattened slightly so that it directly holds the contents of both replaced and non-replaced elements. This is only added to independent formatting contexts, but will later be added to all block containers as well. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/layout_2020/dom_traversal.rs')
-rw-r--r--components/layout_2020/dom_traversal.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/components/layout_2020/dom_traversal.rs b/components/layout_2020/dom_traversal.rs
index c6a920aa060..2c532e2ebc4 100644
--- a/components/layout_2020/dom_traversal.rs
+++ b/components/layout_2020/dom_traversal.rs
@@ -16,7 +16,7 @@ use style::values::generics::counters::{Content, ContentItem};
use crate::context::LayoutContext;
use crate::dom::{BoxSlot, LayoutBox, NodeExt};
use crate::fragment_tree::{BaseFragmentInfo, FragmentFlags, Tag};
-use crate::replaced::ReplacedContent;
+use crate::replaced::ReplacedContents;
use crate::style_ext::{Display, DisplayGeneratingBox, DisplayInside, DisplayOutside};
#[derive(Clone, Copy, Debug)]
@@ -126,7 +126,7 @@ pub(super) enum Contents {
NonReplaced(NonReplacedContents),
/// Example: an `<img src=…>` element.
/// <https://drafts.csswg.org/css2/conform.html#replaced-element>
- Replaced(ReplacedContent),
+ Replaced(ReplacedContents),
}
#[derive(Debug)]
@@ -141,7 +141,7 @@ pub(super) enum NonReplacedContents {
#[derive(Debug)]
pub(super) enum PseudoElementContentItem {
Text(String),
- Replaced(ReplacedContent),
+ Replaced(ReplacedContents),
}
pub(super) trait TraversalHandler<'dom, Node>
@@ -216,7 +216,7 @@ fn traverse_element<'dom, Node>(
) where
Node: NodeExt<'dom>,
{
- let replaced = ReplacedContent::for_element(element, context);
+ let replaced = ReplacedContents::for_element(element, context);
let style = element.style(context);
match Display::from(style.get_box().display) {
Display::None => element.unset_all_boxes(),
@@ -421,7 +421,7 @@ where
},
ContentItem::Image(image) => {
if let Some(replaced_content) =
- ReplacedContent::from_image(element, context, image)
+ ReplacedContents::from_image(element, context, image)
{
vec.push(PseudoElementContentItem::Replaced(replaced_content));
}