tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

border.mako.rs (5696B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
      4 
      5 <%namespace name="helpers" file="/helpers.mako.rs" />
      6 <% from data import ALL_CORNERS, ALL_SIDES, maybe_moz_logical_alias %>
      7 
      8 <%
      9    def maybe_logical_spec(side, kind):
     10        if side[1]: # if it is logical
     11            return "https://drafts.csswg.org/css-logical-props/#propdef-border-%s-%s" % (side[0], kind)
     12        else:
     13            return "https://drafts.csswg.org/css-backgrounds/#border-%s-%s" % (side[0], kind)
     14 %>
     15 % for index, side in enumerate(ALL_SIDES):
     16    <%
     17        side_name = side[0]
     18        is_logical = side[1]
     19    %>
     20    ${helpers.predefined_type(
     21        "border-%s-color" % side_name, "Color",
     22        "computed_value::T::currentcolor()",
     23        engines="gecko servo",
     24        aliases=maybe_moz_logical_alias(engine, side, "-moz-border-%s-color"),
     25        spec=maybe_logical_spec(side, "color"),
     26        logical=is_logical,
     27        logical_group="border-color",
     28        allow_quirks="No" if is_logical else "Yes",
     29        ignored_when_colors_disabled=True,
     30        affects="paint",
     31    )}
     32 
     33    ${helpers.predefined_type(
     34        "border-%s-style" % side_name, "BorderStyle",
     35        "specified::BorderStyle::None",
     36        engines="gecko servo",
     37        aliases=maybe_moz_logical_alias(engine, side, "-moz-border-%s-style"),
     38        spec=maybe_logical_spec(side, "style"),
     39        animation_type="discrete" if not is_logical else "none",
     40        gecko_ffi_name="mBorderStyle.{}".format(index),
     41        logical=is_logical,
     42        logical_group="border-style",
     43        affects="layout",
     44    )}
     45 
     46    ${helpers.predefined_type(
     47        "border-%s-width" % side_name,
     48        "BorderSideWidth",
     49        "computed::BorderSideWidth::medium()",
     50        engines="gecko servo",
     51        aliases=maybe_moz_logical_alias(engine, side, "-moz-border-%s-width"),
     52        spec=maybe_logical_spec(side, "width"),
     53        logical=is_logical,
     54        logical_group="border-width",
     55        allow_quirks="No" if is_logical else "Yes",
     56        gecko_ffi_name="mBorder.{}".format(index),
     57        servo_restyle_damage="rebuild_box",
     58        affects="layout",
     59    )}
     60 % endfor
     61 
     62 % for corner in ALL_CORNERS:
     63    <%
     64        corner_name = corner[0]
     65        is_logical = corner[1]
     66        if is_logical:
     67            prefixes = None
     68        else:
     69            prefixes = "webkit"
     70    %>
     71    ${helpers.predefined_type(
     72        "border-%s-radius" % corner_name,
     73        "BorderCornerRadius",
     74        "computed::BorderCornerRadius::zero()",
     75        "parse",
     76        engines="gecko servo",
     77        extra_prefixes=prefixes,
     78        spec=maybe_logical_spec(corner, "radius"),
     79        gecko_ffi_name="mBorderRadius.{}".format(corner_name.replace('-', '_')),
     80        boxed=True,
     81        logical_group="border-radius",
     82        logical=is_logical,
     83        affects="paint",
     84    )}
     85 % endfor
     86 
     87 ${helpers.single_keyword(
     88    "box-decoration-break",
     89    "slice clone",
     90    engines="gecko",
     91    gecko_enum_prefix="StyleBoxDecorationBreak",
     92    spec="https://drafts.csswg.org/css-break/#propdef-box-decoration-break",
     93    animation_type="discrete",
     94    affects="layout",
     95 )}
     96 
     97 ${helpers.single_keyword(
     98    "-moz-float-edge",
     99    "content-box margin-box",
    100    engines="gecko",
    101    gecko_ffi_name="mFloatEdge",
    102    gecko_enum_prefix="StyleFloatEdge",
    103    spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-float-edge)",
    104    animation_type="discrete",
    105    affects="layout",
    106 )}
    107 
    108 ${helpers.predefined_type(
    109    "border-image-source",
    110    "Image",
    111    engines="gecko servo",
    112    initial_value="computed::Image::None",
    113    initial_specified_value="specified::Image::None",
    114    spec="https://drafts.csswg.org/css-backgrounds/#the-background-image",
    115    vector=False,
    116    animation_type="discrete",
    117    ignored_when_colors_disabled=True,
    118    servo_restyle_damage="repaint",
    119    affects="paint",
    120 )}
    121 
    122 ${helpers.predefined_type(
    123    "border-image-outset",
    124    "NonNegativeLengthOrNumberRect",
    125    engines="gecko servo",
    126    initial_value="generics::rect::Rect::all(computed::NonNegativeLengthOrNumber::zero())",
    127    initial_specified_value="generics::rect::Rect::all(specified::NonNegativeLengthOrNumber::zero())",
    128    spec="https://drafts.csswg.org/css-backgrounds/#border-image-outset",
    129    boxed=True,
    130    servo_restyle_damage="repaint",
    131    affects="paint",
    132 )}
    133 
    134 ${helpers.predefined_type(
    135    "border-image-repeat",
    136    "BorderImageRepeat",
    137    "computed::BorderImageRepeat::stretch()",
    138    engines="gecko servo",
    139    initial_specified_value="specified::BorderImageRepeat::stretch()",
    140    animation_type="discrete",
    141    spec="https://drafts.csswg.org/css-backgrounds/#the-border-image-repeat",
    142    servo_restyle_damage="repaint",
    143    affects="paint",
    144 )}
    145 
    146 ${helpers.predefined_type(
    147    "border-image-width",
    148    "BorderImageWidth",
    149    engines="gecko servo",
    150    initial_value="computed::BorderImageWidth::all(computed::BorderImageSideWidth::one())",
    151    initial_specified_value="specified::BorderImageWidth::all(specified::BorderImageSideWidth::one())",
    152    spec="https://drafts.csswg.org/css-backgrounds/#border-image-width",
    153    boxed=True,
    154    servo_restyle_damage="repaint",
    155    affects="paint",
    156 )}
    157 
    158 ${helpers.predefined_type(
    159    "border-image-slice",
    160    "BorderImageSlice",
    161    engines="gecko servo",
    162    initial_value="computed::BorderImageSlice::hundred_percent()",
    163    initial_specified_value="specified::BorderImageSlice::hundred_percent()",
    164    spec="https://drafts.csswg.org/css-backgrounds/#border-image-slice",
    165    boxed=True,
    166    servo_restyle_damage="repaint",
    167    affects="paint",
    168 )}