mirror of
https://github.com/servo/servo.git
synced 2025-08-08 23:15:33 +01:00
Clamp some filter functions to one if the values over 100%.
For grayscale, invert, opacity, and sepia, "values of amount over 100% are allowed but UAs must clamp the values to 1" [1]-[4], so we clamp its value in the parser. [1] https://drafts.fxtf.org/filter-effects/#funcdef-filter-grayscale [2] https://drafts.fxtf.org/filter-effects/#funcdef-filter-invert [3] https://drafts.fxtf.org/filter-effects/#funcdef-filter-opacity [4] https://drafts.fxtf.org/filter-effects/#funcdef-filter-sepia
This commit is contained in:
parent
cad3aff508
commit
e719df53c0
4 changed files with 62 additions and 7 deletions
|
@ -216,6 +216,15 @@ impl Number {
|
|||
-> Result<Number, ParseError<'i>> {
|
||||
parse_number_with_clamping_mode(context, input, AllowedNumericType::AtLeastOne)
|
||||
}
|
||||
|
||||
/// Clamp to 1.0 if the value is over 1.0.
|
||||
#[inline]
|
||||
pub fn clamp_to_one(self) -> Self {
|
||||
Number {
|
||||
value: self.value.min(1.),
|
||||
calc_clamping_mode: self.calc_clamping_mode,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ToComputedValue for Number {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue