diff --git a/servo/components/style/values/specified/font.rs b/servo/components/style/values/specified/font.rs index ecc2a78a4c3e..fb59a53cef04 100644 --- a/servo/components/style/values/specified/font.rs +++ b/servo/components/style/values/specified/font.rs @@ -925,7 +925,7 @@ impl FontSize { // If the parent font was keyword-derived, this is too. // Tack the % onto the factor info = compose_keyword(pc.0); - base_size.resolve(context) * pc.0 + (base_size.resolve(context) * pc.0).normalized() }, FontSize::Length(LengthPercentage::Calc(ref calc)) => { let calc = calc.to_computed_value_zoomed(context, base_size); diff --git a/servo/components/style/values/specified/length.rs b/servo/components/style/values/specified/length.rs index 4fc841aea932..2eafa9fbd605 100644 --- a/servo/components/style/values/specified/length.rs +++ b/servo/components/style/values/specified/length.rs @@ -135,7 +135,7 @@ impl FontRelativeLength { base_size: FontBaseSize, ) -> computed::Length { let (reference_size, length) = self.reference_font_size_and_length(context, base_size); - reference_size * length + (reference_size * length).normalized() } /// Return reference font size. diff --git a/testing/web-platform/tests/css/css-fonts/infinite-size-crash.html b/testing/web-platform/tests/css/css-fonts/infinite-size-crash.html new file mode 100644 index 000000000000..d44cf4a37e26 --- /dev/null +++ b/testing/web-platform/tests/css/css-fonts/infinite-size-crash.html @@ -0,0 +1,20 @@ + + + + + + + + +