mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Upgrade Stylo to 2024-10-04 (#33767)
* Upgrade Stylo to 2024-10-04 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D220285 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://bugzilla.mozilla.org/show_bug.cgi?id=1918093 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D222817 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D222856 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D222532 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D222533 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D222534 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D223878 Signed-off-by: Oriol Brufau <obrufau@igalia.com> --------- Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
parent
65c866285f
commit
c75f6627ba
16 changed files with 156 additions and 121 deletions
|
@ -46,7 +46,7 @@ use style::context::SharedStyleContext;
|
|||
use style::logical_geometry::{LogicalMargin, LogicalPoint, LogicalRect, LogicalSize, WritingMode};
|
||||
use style::properties::ComputedValues;
|
||||
use style::servo::restyle_damage::ServoRestyleDamage;
|
||||
use style::values::computed::{LengthPercentageOrAuto, MaxSize, Size};
|
||||
use style::values::computed::{Margin, MaxSize, Size};
|
||||
|
||||
use crate::context::LayoutContext;
|
||||
use crate::display_list::items::DisplayListSection;
|
||||
|
@ -1408,8 +1408,8 @@ impl BlockFlow {
|
|||
let (block_start, block_end) = {
|
||||
let position = self.fragment.style().logical_position();
|
||||
(
|
||||
MaybeAuto::from_style(position.block_start, container_size),
|
||||
MaybeAuto::from_style(position.block_end, container_size),
|
||||
MaybeAuto::from_inset(position.block_start, container_size),
|
||||
MaybeAuto::from_inset(position.block_end, container_size),
|
||||
)
|
||||
};
|
||||
|
||||
|
@ -1422,11 +1422,11 @@ impl BlockFlow {
|
|||
// calculated during assign-inline-size.
|
||||
let margin = self.fragment.style().logical_margin();
|
||||
let margin_block_start = match margin.block_start {
|
||||
LengthPercentageOrAuto::Auto => MaybeAuto::Auto,
|
||||
Margin::Auto => MaybeAuto::Auto,
|
||||
_ => MaybeAuto::Specified(self.fragment.margin.block_start),
|
||||
};
|
||||
let margin_block_end = match margin.block_end {
|
||||
LengthPercentageOrAuto::Auto => MaybeAuto::Auto,
|
||||
Margin::Auto => MaybeAuto::Auto,
|
||||
_ => MaybeAuto::Specified(self.fragment.margin.block_end),
|
||||
};
|
||||
|
||||
|
@ -1456,11 +1456,11 @@ impl BlockFlow {
|
|||
// calculated during assign-inline-size.
|
||||
let margin = self.fragment.style().logical_margin();
|
||||
let margin_block_start = match margin.block_start {
|
||||
LengthPercentageOrAuto::Auto => MaybeAuto::Auto,
|
||||
Margin::Auto => MaybeAuto::Auto,
|
||||
_ => MaybeAuto::Specified(self.fragment.margin.block_start),
|
||||
};
|
||||
let margin_block_end = match margin.block_end {
|
||||
LengthPercentageOrAuto::Auto => MaybeAuto::Auto,
|
||||
Margin::Auto => MaybeAuto::Auto,
|
||||
_ => MaybeAuto::Specified(self.fragment.margin.block_end),
|
||||
};
|
||||
|
||||
|
@ -1469,8 +1469,8 @@ impl BlockFlow {
|
|||
{
|
||||
let position = self.fragment.style().logical_position();
|
||||
block_start =
|
||||
MaybeAuto::from_style(position.block_start, containing_block_block_size);
|
||||
block_end = MaybeAuto::from_style(position.block_end, containing_block_block_size);
|
||||
MaybeAuto::from_inset(position.block_start, containing_block_block_size);
|
||||
block_end = MaybeAuto::from_inset(position.block_end, containing_block_block_size);
|
||||
}
|
||||
|
||||
let available_block_size =
|
||||
|
@ -2117,10 +2117,10 @@ impl BlockFlow {
|
|||
let offsets = self.fragment.style().logical_position();
|
||||
let as_margins = LogicalMargin::new(
|
||||
writing_mode,
|
||||
MaybeAuto::from_style(offsets.block_start, containing_block_size.inline),
|
||||
MaybeAuto::from_style(offsets.inline_end, containing_block_size.inline),
|
||||
MaybeAuto::from_style(offsets.block_end, containing_block_size.inline),
|
||||
MaybeAuto::from_style(offsets.inline_start, containing_block_size.inline),
|
||||
MaybeAuto::from_inset(offsets.block_start, containing_block_size.inline),
|
||||
MaybeAuto::from_inset(offsets.inline_end, containing_block_size.inline),
|
||||
MaybeAuto::from_inset(offsets.block_end, containing_block_size.inline),
|
||||
MaybeAuto::from_inset(offsets.inline_start, containing_block_size.inline),
|
||||
);
|
||||
as_margins.to_physical(writing_mode)
|
||||
}
|
||||
|
@ -2789,10 +2789,10 @@ pub trait ISizeAndMarginsComputer {
|
|||
containing_block_inline_size - block.fragment.border_padding.inline_start_end();
|
||||
ISizeConstraintInput::new(
|
||||
computed_inline_size,
|
||||
MaybeAuto::from_style(margin.inline_start, containing_block_inline_size),
|
||||
MaybeAuto::from_style(margin.inline_end, containing_block_inline_size),
|
||||
MaybeAuto::from_style(position.inline_start, containing_block_inline_size),
|
||||
MaybeAuto::from_style(position.inline_end, containing_block_inline_size),
|
||||
MaybeAuto::from_margin(margin.inline_start, containing_block_inline_size),
|
||||
MaybeAuto::from_margin(margin.inline_end, containing_block_inline_size),
|
||||
MaybeAuto::from_inset(position.inline_start, containing_block_inline_size),
|
||||
MaybeAuto::from_inset(position.inline_end, containing_block_inline_size),
|
||||
available_inline_size,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -671,9 +671,9 @@ impl FlexFlow {
|
|||
} else {
|
||||
line.free_space / line.auto_margin_count
|
||||
};
|
||||
let margin_inline_start = MaybeAuto::from_style(margin.inline_start, inline_size)
|
||||
let margin_inline_start = MaybeAuto::from_margin(margin.inline_start, inline_size)
|
||||
.specified_or_default(auto_len);
|
||||
let margin_inline_end = MaybeAuto::from_style(margin.inline_end, inline_size)
|
||||
let margin_inline_end = MaybeAuto::from_margin(margin.inline_end, inline_size)
|
||||
.specified_or_default(auto_len);
|
||||
let item_inline_size = item.main_size -
|
||||
block.fragment.box_sizing_boundary(self.main_mode) +
|
||||
|
|
|
@ -962,8 +962,8 @@ impl Fragment {
|
|||
QuantitiesIncludedInIntrinsicInlineSizes::INTRINSIC_INLINE_SIZE_INCLUDES_MARGINS,
|
||||
) {
|
||||
let margin = style.logical_margin();
|
||||
MaybeAuto::from_style(margin.inline_start, Au(0)).specified_or_zero() +
|
||||
MaybeAuto::from_style(margin.inline_end, Au(0)).specified_or_zero()
|
||||
MaybeAuto::from_margin(margin.inline_start, Au(0)).specified_or_zero() +
|
||||
MaybeAuto::from_margin(margin.inline_end, Au(0)).specified_or_zero()
|
||||
} else {
|
||||
Au(0)
|
||||
};
|
||||
|
@ -1274,10 +1274,10 @@ impl Fragment {
|
|||
let logical_padding = self.style.logical_padding();
|
||||
let border_width = self.border_width();
|
||||
SpeculatedInlineContentEdgeOffsets {
|
||||
start: MaybeAuto::from_style(logical_margin.inline_start, Au(0)).specified_or_zero() +
|
||||
start: MaybeAuto::from_margin(logical_margin.inline_start, Au(0)).specified_or_zero() +
|
||||
logical_padding.inline_start.to_used_value(Au(0)) +
|
||||
border_width.inline_start,
|
||||
end: MaybeAuto::from_style(logical_margin.inline_end, Au(0)).specified_or_zero() +
|
||||
end: MaybeAuto::from_margin(logical_margin.inline_end, Au(0)).specified_or_zero() +
|
||||
logical_padding.inline_end.to_used_value(Au(0)) +
|
||||
border_width.inline_end,
|
||||
}
|
||||
|
@ -1349,9 +1349,9 @@ impl Fragment {
|
|||
let (inline_start, inline_end) = {
|
||||
let margin = self.style().logical_margin();
|
||||
(
|
||||
MaybeAuto::from_style(margin.inline_start, containing_block_inline_size)
|
||||
MaybeAuto::from_margin(margin.inline_start, containing_block_inline_size)
|
||||
.specified_or_zero(),
|
||||
MaybeAuto::from_style(margin.inline_end, containing_block_inline_size)
|
||||
MaybeAuto::from_margin(margin.inline_end, containing_block_inline_size)
|
||||
.specified_or_zero(),
|
||||
)
|
||||
};
|
||||
|
@ -1369,7 +1369,7 @@ impl Fragment {
|
|||
{
|
||||
Au(0)
|
||||
} else {
|
||||
MaybeAuto::from_style(margin.inline_start, containing_block_inline_size)
|
||||
MaybeAuto::from_margin(margin.inline_start, containing_block_inline_size)
|
||||
.specified_or_zero()
|
||||
};
|
||||
let this_inline_end_margin = if !node
|
||||
|
@ -1378,7 +1378,7 @@ impl Fragment {
|
|||
{
|
||||
Au(0)
|
||||
} else {
|
||||
MaybeAuto::from_style(margin.inline_end, containing_block_inline_size)
|
||||
MaybeAuto::from_margin(margin.inline_end, containing_block_inline_size)
|
||||
.specified_or_zero()
|
||||
};
|
||||
|
||||
|
@ -1408,9 +1408,9 @@ impl Fragment {
|
|||
let (block_start, block_end) = {
|
||||
let margin = self.style().logical_margin();
|
||||
(
|
||||
MaybeAuto::from_style(margin.block_start, containing_block_inline_size)
|
||||
MaybeAuto::from_margin(margin.block_start, containing_block_inline_size)
|
||||
.specified_or_zero(),
|
||||
MaybeAuto::from_style(margin.block_end, containing_block_inline_size)
|
||||
MaybeAuto::from_margin(margin.block_end, containing_block_inline_size)
|
||||
.specified_or_zero(),
|
||||
)
|
||||
};
|
||||
|
@ -1484,16 +1484,16 @@ impl Fragment {
|
|||
fn from_style(style: &ComputedValues, container_size: &LogicalSize<Au>) -> LogicalSize<Au> {
|
||||
let offsets = style.logical_position();
|
||||
let offset_i = if !offsets.inline_start.is_auto() {
|
||||
MaybeAuto::from_style(offsets.inline_start, container_size.inline)
|
||||
MaybeAuto::from_inset(offsets.inline_start, container_size.inline)
|
||||
.specified_or_zero()
|
||||
} else {
|
||||
-MaybeAuto::from_style(offsets.inline_end, container_size.inline)
|
||||
-MaybeAuto::from_inset(offsets.inline_end, container_size.inline)
|
||||
.specified_or_zero()
|
||||
};
|
||||
let offset_b = if !offsets.block_start.is_auto() {
|
||||
MaybeAuto::from_style(offsets.block_start, container_size.block).specified_or_zero()
|
||||
let offset_b = if offsets.block_start.is_auto() {
|
||||
MaybeAuto::from_inset(offsets.block_start, container_size.block).specified_or_zero()
|
||||
} else {
|
||||
-MaybeAuto::from_style(offsets.block_end, container_size.block).specified_or_zero()
|
||||
-MaybeAuto::from_inset(offsets.block_end, container_size.block).specified_or_zero()
|
||||
};
|
||||
LogicalSize::new(style.writing_mode, offset_i, offset_b)
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ use euclid::SideOffsets2D;
|
|||
use serde::Serialize;
|
||||
use style::logical_geometry::{LogicalMargin, WritingMode};
|
||||
use style::properties::ComputedValues;
|
||||
use style::values::computed::{LengthPercentageOrAuto, MaxSize, Size};
|
||||
use style::values::computed::{Inset, LengthPercentageOrAuto, Margin, MaxSize, Size};
|
||||
|
||||
use crate::fragment::Fragment;
|
||||
|
||||
|
@ -467,6 +467,29 @@ impl MaybeAuto {
|
|||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn from_inset(length: &Inset, containing_length: Au) -> MaybeAuto {
|
||||
match length {
|
||||
Inset::Auto => MaybeAuto::Auto,
|
||||
Inset::LengthPercentage(ref lp) => {
|
||||
MaybeAuto::Specified(lp.to_used_value(containing_length))
|
||||
},
|
||||
Inset::AnchorFunction(_) => unreachable!("anchor() should be disabled"),
|
||||
Inset::AnchorSizeFunction(_) => unreachable!("anchor-size() should be disabled"),
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn from_margin(length: &Margin, containing_length: Au) -> MaybeAuto {
|
||||
match length {
|
||||
Margin::Auto => MaybeAuto::Auto,
|
||||
Margin::LengthPercentage(ref lp) => {
|
||||
MaybeAuto::Specified(lp.to_used_value(containing_length))
|
||||
},
|
||||
Margin::AnchorSizeFunction(_) => unreachable!("anchor-size() should be disabled"),
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn from_option(au: Option<Au>) -> MaybeAuto {
|
||||
match au {
|
||||
|
@ -562,10 +585,10 @@ pub fn specified_margin_from_style(
|
|||
LogicalMargin::from_physical(
|
||||
writing_mode,
|
||||
SideOffsets2D::new(
|
||||
MaybeAuto::from_style(&margin_style.margin_top, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_style(&margin_style.margin_right, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_style(&margin_style.margin_bottom, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_style(&margin_style.margin_left, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_margin(&margin_style.margin_top, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_margin(&margin_style.margin_right, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_margin(&margin_style.margin_bottom, Au(0)).specified_or_zero(),
|
||||
MaybeAuto::from_margin(&margin_style.margin_left, Au(0)).specified_or_zero(),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue