Bug 856337 - Move image-rendering out of mako. r=dholbert

It's easier to touch in the future that way, even though the derive list is
massive.

Differential Revision: https://phabricator.services.mozilla.com/D124377
This commit is contained in:
Emilio Cobos Álvarez 2021-09-02 20:28:39 +00:00
parent b7d5d6511c
commit a10cd487f5
9 changed files with 46 additions and 19 deletions

View File

@ -96,7 +96,6 @@ rusty-enums = [
"mozilla::StyleDirection",
"mozilla::StyleFloat",
"mozilla::StyleImageOrientation",
"mozilla::StyleImageRendering",
"mozilla::StyleInert",
"mozilla::StyleUserModify",
"mozilla::StyleUserInput",
@ -586,6 +585,7 @@ cbindgen-types = [
{ gecko = "StyleCaptionSide", servo = "crate::values::computed::table::CaptionSide" },
{ gecko = "StylePageSize", servo = "crate::values::computed::page::PageSize" },
{ gecko = "StyleDProperty", servo = "crate::values::specified::svg::DProperty" },
{ gecko = "StyleImageRendering", servo = "crate::values::computed::ImageRendering" },
]
mapped-generic-types = [

View File

@ -648,14 +648,6 @@ enum class StyleDominantBaseline : uint8_t {
TextBeforeEdge,
};
// image-rendering
enum class StyleImageRendering : uint8_t {
Auto,
Optimizespeed,
Optimizequality,
CrispEdges,
};
// mask-type
enum class StyleMaskType : uint8_t {
Luminance,

View File

@ -476,6 +476,7 @@ class Longhand(Property):
"FontWeight",
"GreaterThanOrEqualToOneNumber",
"GridAutoFlow",
"ImageRendering",
"InitialLetter",
"Integer",
"JustifyContent",

View File

@ -69,17 +69,13 @@ ${helpers.single_keyword(
// According to to CSS-IMAGES-3, `optimizespeed` and `optimizequality` are synonyms for `auto`
// And, firefox doesn't support `pixelated` yet (https://bugzilla.mozilla.org/show_bug.cgi?id=856337)
${helpers.single_keyword(
${helpers.predefined_type(
"image-rendering",
"auto crisp-edges",
"ImageRendering",
"computed::ImageRendering::Auto",
engines="gecko servo-2013 servo-2020",
extra_gecko_values="optimizespeed optimizequality",
extra_servo_2013_values="pixelated",
extra_servo_2020_values="pixelated",
gecko_aliases="-moz-crisp-edges=crisp-edges",
gecko_enum_prefix="StyleImageRendering",
animation_value_type="discrete",
spec="https://drafts.csswg.org/css-images/#propdef-image-rendering",
animation_value_type="discrete",
)}
${helpers.single_keyword(

View File

@ -24,6 +24,8 @@ use std::f32::consts::PI;
use std::fmt::{self, Write};
use style_traits::{CssWriter, ToCss};
pub use specified::ImageRendering;
/// Computed values for an image according to CSS-IMAGES.
/// <https://drafts.csswg.org/css-images/#image-values>
pub type Image =

View File

@ -60,7 +60,7 @@ pub use self::font::{FontSize, FontSizeAdjust, FontStretch, FontSynthesis};
pub use self::font::{FontVariantAlternates, FontWeight};
pub use self::font::{FontVariantEastAsian, FontVariationSettings};
pub use self::font::{MathDepth, MozScriptMinSize, MozScriptSizeMultiplier, XLang, XTextZoom};
pub use self::image::{Gradient, Image, LineDirection, MozImageRect};
pub use self::image::{Gradient, Image, LineDirection, MozImageRect, ImageRendering};
pub use self::length::{CSSPixelLength, NonNegativeLength};
pub use self::length::{Length, LengthOrNumber, LengthPercentage, NonNegativeLengthOrNumber};
pub use self::length::{LengthOrAuto, LengthPercentageOrAuto, MaxSize, Size};

View File

@ -1212,3 +1212,38 @@ impl MozImageRect {
})
}
}
/// https://drafts.csswg.org/css-images/#propdef-image-rendering
#[allow(missing_docs)]
#[derive(
Clone,
Copy,
Debug,
Eq,
Hash,
MallocSizeOf,
Parse,
PartialEq,
SpecifiedValueInfo,
ToCss,
ToComputedValue,
ToResolvedValue,
ToShmem,
)]
#[repr(u8)]
pub enum ImageRendering {
Auto,
#[parse(aliases = "-moz-crisp-edges")]
CrispEdges,
// From the spec:
//
// This property previously accepted the values optimizeSpeed and
// optimizeQuality. These are now deprecated; a user agent must accept
// them as valid values but must treat them as having the same behavior
// as crisp-edges and smooth respectively, and authors must not use
// them.
Optimizespeed,
Optimizequality,
#[cfg(feature = "servo")]
Pixelated,
}

View File

@ -55,7 +55,7 @@ pub use self::font::{FontVariantAlternates, FontWeight};
pub use self::font::{FontVariantEastAsian, FontVariationSettings};
pub use self::font::{MathDepth, MozScriptMinSize, MozScriptSizeMultiplier, XLang, XTextZoom};
pub use self::image::{EndingShape as GradientEndingShape, Gradient};
pub use self::image::{Image, MozImageRect};
pub use self::image::{Image, MozImageRect, ImageRendering};
pub use self::length::{AbsoluteLength, CalcLengthPercentage, CharacterWidth};
pub use self::length::{FontRelativeLength, Length, LengthOrNumber, NonNegativeLengthOrNumber};
pub use self::length::{LengthOrAuto, LengthPercentage, LengthPercentageOrAuto};

View File

@ -232,6 +232,7 @@ include = [
"RuleChangeKind",
"PageSize",
"DProperty",
"ImageRendering",
]
item_types = ["enums", "structs", "unions", "typedefs", "functions", "constants"]
renaming_overrides_prefixing = true