aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/fragment_tree/box_fragment.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/fragment_tree/box_fragment.rs')
-rw-r--r--components/layout/fragment_tree/box_fragment.rs21
1 files changed, 18 insertions, 3 deletions
diff --git a/components/layout/fragment_tree/box_fragment.rs b/components/layout/fragment_tree/box_fragment.rs
index 65ad1c4aa93..596556b296c 100644
--- a/components/layout/fragment_tree/box_fragment.rs
+++ b/components/layout/fragment_tree/box_fragment.rs
@@ -16,7 +16,8 @@ use style::logical_geometry::WritingMode;
use style::properties::ComputedValues;
use style::values::specified::box_::DisplayOutside;
-use super::{BaseFragment, BaseFragmentInfo, CollapsedBlockMargins, Fragment};
+use super::{BaseFragment, BaseFragmentInfo, CollapsedBlockMargins, Fragment, FragmentFlags};
+use crate::ArcRefCell;
use crate::display_list::ToWebRender;
use crate::formatting_contexts::Baselines;
use crate::geom::{
@@ -40,10 +41,14 @@ pub(crate) enum BackgroundMode {
Normal,
}
+#[derive(Debug, MallocSizeOf)]
+pub(crate) struct BackgroundStyle(#[conditional_malloc_size_of] pub ServoArc<ComputedValues>);
+
+pub(crate) type SharedBackgroundStyle = ArcRefCell<BackgroundStyle>;
+
#[derive(MallocSizeOf)]
pub(crate) struct ExtraBackground {
- #[conditional_malloc_size_of]
- pub style: ServoArc<ComputedValues>,
+ pub style: SharedBackgroundStyle,
pub rect: PhysicalRect<Au>,
}
@@ -238,6 +243,16 @@ impl BoxFragment {
self.margin + self.border + self.padding
}
+ pub(crate) fn is_root_element(&self) -> bool {
+ self.base.flags.intersects(FragmentFlags::IS_ROOT_ELEMENT)
+ }
+
+ pub(crate) fn is_body_element_of_html_element_root(&self) -> bool {
+ self.base
+ .flags
+ .intersects(FragmentFlags::IS_BODY_ELEMENT_OF_HTML_ELEMENT_ROOT)
+ }
+
pub fn print(&self, tree: &mut PrintTree) {
tree.new_level(format!(
"Box\