Bug 1914799 - Move some of the gecko.mako.rs code to property definitions. r=firefox-style-system-reviewers,zrhoffman

This is just a trivial clean-up I noticed reviewing bug 1914777.

Differential Revision: https://phabricator.services.mozilla.com/D220084
This commit is contained in:
Emilio Cobos Álvarez 2024-08-25 21:47:22 +00:00
parent 72cf54cf77
commit df0fc07466
6 changed files with 28 additions and 67 deletions

View File

@ -579,7 +579,6 @@ class Side(object):
self.index = index
SIDES = [Side("Top", 0), Side("Right", 1), Side("Bottom", 2), Side("Left", 3)]
CORNERS = ["top_left", "top_right", "bottom_right", "bottom_left"]
%>
#[allow(dead_code)]
@ -593,9 +592,7 @@ fn static_assert() {
<% skip_border_longhands = " ".join(["border-{0}-{1}".format(x.ident, y)
for x in SIDES
for y in ["style", "width"]] +
["border-{0}-radius".format(x.replace("_", "-"))
for x in CORNERS]) %>
for y in ["style", "width"]]) %>
<%self:impl_trait style_struct_name="Border"
skip_longhands="${skip_border_longhands}">
@ -654,44 +651,13 @@ fn static_assert() {
self.mComputedBorder.${side.ident} != 0
}
% endfor
% for corner in CORNERS:
${impl_simple("border_%s_radius" % corner, "mBorderRadius.%s" % corner)}
% endfor
</%self:impl_trait>
<% skip_scroll_margin_longhands = " ".join(["scroll-margin-%s" % x.ident for x in SIDES]) %>
<% skip_margin_longhands = " ".join(["margin-%s" % x.ident for x in SIDES]) %>
<%self:impl_trait style_struct_name="Margin"
skip_longhands="${skip_margin_longhands}
${skip_scroll_margin_longhands}">
% for side in SIDES:
${impl_simple("margin_%s" % side.ident, "mMargin.%s" % side.index)}
${impl_simple("scroll_margin_%s" % side.ident, "mScrollMargin.%s" % side.index)}
% endfor
</%self:impl_trait>
<%self:impl_trait style_struct_name="Margin"></%self:impl_trait>
<%self:impl_trait style_struct_name="Padding"></%self:impl_trait>
<%self:impl_trait style_struct_name="Page"></%self:impl_trait>
<% skip_scroll_padding_longhands = " ".join(["scroll-padding-%s" % x.ident for x in SIDES]) %>
<% skip_padding_longhands = " ".join(["padding-%s" % x.ident for x in SIDES]) %>
<%self:impl_trait style_struct_name="Padding"
skip_longhands="${skip_padding_longhands}
${skip_scroll_padding_longhands}">
% for side in SIDES:
${impl_simple("padding_%s" % side.ident, "mPadding.%s" % side.index)}
${impl_simple("scroll_padding_%s" % side.ident, "mScrollPadding.%s" % side.index)}
% endfor
</%self:impl_trait>
<%self:impl_trait style_struct_name="Page">
</%self:impl_trait>
<% skip_position_longhands = " ".join(x.ident for x in SIDES) %>
<%self:impl_trait style_struct_name="Position"
skip_longhands="${skip_position_longhands}">
% for side in SIDES:
${impl_simple(side.ident, "mOffset.%s" % side.index)}
% endfor
<%self:impl_trait style_struct_name="Position">
pub fn set_computed_justify_items(&mut self, v: values::specified::JustifyItems) {
debug_assert_ne!(v.0, crate::values::specified::align::AlignFlags::LEGACY);
self.mJustifyItems.computed = v;
@ -728,12 +694,7 @@ fn static_assert() {
}
</%self:impl_trait>
<% skip_font_longhands = """font-family font-size font-size-adjust font-weight
font-style font-stretch -x-lang
font-variant-alternates font-variant-east-asian
font-variant-ligatures font-variant-numeric
font-language-override font-feature-settings
font-variation-settings -moz-min-font-size-ratio""" %>
<% skip_font_longhands = """font-size -x-lang font-feature-settings font-variation-settings""" %>
<%self:impl_trait style_struct_name="Font"
skip_longhands="${skip_font_longhands}">
@ -796,16 +757,6 @@ fn static_assert() {
}
}
${impl_simple('font_weight', 'mFont.weight')}
${impl_simple('font_stretch', 'mFont.stretch')}
${impl_simple('font_style', 'mFont.style')}
${impl_simple("font_variant_alternates", "mFont.variantAlternates")}
${impl_simple("font_size_adjust", "mFont.sizeAdjust")}
${impl_simple("font_family", "mFont.family")}
#[allow(non_snake_case)]
pub fn set__x_lang(&mut self, v: longhands::_x_lang::computed_value::T) {
let ptr = v.0.as_ptr();
@ -833,13 +784,6 @@ fn static_assert() {
Atom::from_raw(self.mLanguage.mRawPtr)
})
}
${impl_simple("_moz_min_font_size_ratio", "mMinFontSizeRatio")}
${impl_simple("font_language_override", "mFont.languageOverride")}
${impl_simple("font_variant_ligatures", "mFont.variantLigatures")}
${impl_simple("font_variant_east_asian", "mFont.variantEastAsian")}
${impl_simple("font_variant_numeric", "mFont.variantNumeric")}
</%self:impl_trait>
<%def name="impl_coordinated_property_copy(type, ident, gecko_ffi_name)">

View File

@ -74,6 +74,7 @@
engines="gecko servo",
extra_prefixes=prefixes,
spec=maybe_logical_spec(corner, "radius"),
gecko_ffi_name="mBorderRadius.{}".format(corner_name.replace('-', '_')),
boxed=True,
logical_group="border-radius",
logical=is_logical,

View File

@ -12,6 +12,7 @@ ${helpers.predefined_type(
initial_value="computed::FontFamily::serif()",
animation_type="discrete",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-family",
gecko_ffi_name="mFont.family",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
@ -23,6 +24,7 @@ ${helpers.predefined_type(
initial_value="computed::FontStyle::normal()",
initial_specified_value="specified::FontStyle::normal()",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-style",
gecko_ffi_name="mFont.style",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
)}
@ -53,6 +55,7 @@ ${helpers.predefined_type(
engines="gecko servo",
initial_value="computed::FontWeight::normal()",
initial_specified_value="specified::FontWeight::normal()",
gecko_ffi_name="mFont.weight",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-weight",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
@ -77,6 +80,7 @@ ${helpers.predefined_type(
initial_value="computed::FontSizeAdjust::None",
initial_specified_value="specified::FontSizeAdjust::None",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-size-adjust",
gecko_ffi_name="mFont.sizeAdjust",
affects="layout",
)}
@ -134,6 +138,7 @@ ${helpers.predefined_type(
engines="gecko servo",
initial_value="computed::FontStretch::hundred()",
initial_specified_value="specified::FontStretch::normal()",
gecko_ffi_name="mFont.stretch",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-stretch",
servo_restyle_damage="rebuild_and_reflow",
affects="layout",
@ -158,6 +163,7 @@ ${helpers.predefined_type(
initial_specified_value="specified::FontVariantAlternates::default()",
animation_type="discrete",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-alternates",
gecko_ffi_name="mFont.variantAlternates",
affects="layout",
)}
@ -168,6 +174,7 @@ ${helpers.predefined_type(
initial_value="computed::FontVariantEastAsian::empty()",
initial_specified_value="specified::FontVariantEastAsian::empty()",
animation_type="discrete",
gecko_ffi_name="mFont.variantEastAsian",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-east-asian",
affects="layout",
)}
@ -192,6 +199,7 @@ ${helpers.predefined_type(
initial_value="computed::FontVariantLigatures::empty()",
initial_specified_value="specified::FontVariantLigatures::empty()",
animation_type="discrete",
gecko_ffi_name="mFont.variantLigatures",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-ligatures",
affects="layout",
)}
@ -203,6 +211,7 @@ ${helpers.predefined_type(
initial_value="computed::FontVariantNumeric::empty()",
initial_specified_value="specified::FontVariantNumeric::empty()",
animation_type="discrete",
gecko_ffi_name="mFont.variantNumeric",
spec="https://drafts.csswg.org/css-fonts/#propdef-font-variant-numeric",
affects="layout",
)}
@ -249,6 +258,7 @@ ${helpers.predefined_type(
initial_value="computed::FontLanguageOverride::normal()",
initial_specified_value="specified::FontLanguageOverride::normal()",
animation_type="discrete",
gecko_ffi_name="mFont.languageOverride",
extra_prefixes="moz:layout.css.prefixes.font-features",
spec="https://drafts.csswg.org/css-fonts-3/#propdef-font-language-override",
affects="layout",
@ -486,6 +496,7 @@ ${helpers.predefined_type(
"computed::Percentage::hundred()",
engines="gecko",
animation_type="none",
gecko_ffi_name="mMinFontSizeRatio",
enabled_in="ua",
spec="Nonstandard (Internal-only)",
affects="layout",

View File

@ -5,7 +5,7 @@
<%namespace name="helpers" file="/helpers.mako.rs" />
<% from data import ALL_SIDES, DEFAULT_RULES, DEFAULT_RULES_AND_PAGE, POSITION_TRY_RULE, maybe_moz_logical_alias %>
% for side in ALL_SIDES:
% for index, side in enumerate(ALL_SIDES):
<%
spec = "https://drafts.csswg.org/css-box/#propdef-margin-%s" % side[0]
if side[1]:
@ -20,6 +20,7 @@
allow_quirks="No" if side[1] else "Yes",
logical=side[1],
logical_group="margin",
gecko_ffi_name="mMargin.{}".format(index),
spec=spec,
rule_types_allowed=(DEFAULT_RULES if side[1] else DEFAULT_RULES_AND_PAGE) | POSITION_TRY_RULE,
servo_restyle_damage="reflow",
@ -37,7 +38,7 @@ ${helpers.predefined_type(
affects="overflow",
)}
% for side in ALL_SIDES:
% for index, side in enumerate(ALL_SIDES):
${helpers.predefined_type(
"scroll-margin-%s" % side[0],
"Length",
@ -45,6 +46,7 @@ ${helpers.predefined_type(
engines="gecko",
logical=side[1],
logical_group="scroll-margin",
gecko_ffi_name="mScrollMargin.{}".format(index),
spec="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-%s" % side[0],
affects="",
)}

View File

@ -5,7 +5,7 @@
<%namespace name="helpers" file="/helpers.mako.rs" />
<% from data import ALL_SIDES, maybe_moz_logical_alias %>
% for side in ALL_SIDES:
% for index, side in enumerate(ALL_SIDES):
<%
spec = "https://drafts.csswg.org/css-box/#propdef-padding-%s" % side[0]
if side[1]:
@ -20,13 +20,14 @@
logical=side[1],
logical_group="padding",
spec=spec,
gecko_ffi_name="mPadding.{}".format(index),
allow_quirks="No" if side[1] else "Yes",
servo_restyle_damage="reflow rebuild_and_reflow_inline",
affects="layout",
)}
% endfor
% for side in ALL_SIDES:
% for index, side in enumerate(ALL_SIDES):
${helpers.predefined_type(
"scroll-padding-%s" % side[0],
"NonNegativeLengthPercentageOrAuto",
@ -34,6 +35,7 @@
engines="gecko",
logical=side[1],
logical_group="scroll-padding",
gecko_ffi_name="mScrollPadding.{}".format(index),
spec="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-%s" % side[0],
affects="",
)}

View File

@ -6,7 +6,7 @@
<% from data import ALL_SIZES, PHYSICAL_SIDES, LOGICAL_SIDES, DEFAULT_RULES_AND_POSITION_TRY %>
// "top" / "left" / "bottom" / "right"
% for side in PHYSICAL_SIDES:
% for index, side in enumerate(PHYSICAL_SIDES):
${helpers.predefined_type(
side,
"LengthPercentageOrAuto",
@ -15,6 +15,7 @@
spec="https://www.w3.org/TR/CSS2/visuren.html#propdef-%s" % side,
allow_quirks="Yes",
rule_types_allowed=DEFAULT_RULES_AND_POSITION_TRY,
gecko_ffi_name="mOffset.{}".format(index),
servo_restyle_damage="reflow_out_of_flow",
logical_group="inset",
affects="layout",