From fa01716c52d12ee1321c100d64ae5dce510937f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Thu, 15 Dec 2016 13:30:06 +0100 Subject: [PATCH] style: Avoid ending up with an invalid keyframe when inf or NaN are at play. --- components/style/keyframes.rs | 5 +++-- tests/wpt/mozilla/meta/MANIFEST.json | 6 ++++++ .../mozilla/keyframe-infinite-percentage.html | 15 +++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 tests/wpt/mozilla/tests/mozilla/keyframe-infinite-percentage.html diff --git a/components/style/keyframes.rs b/components/style/keyframes.rs index f458ae45f8e..c90e68a4630 100644 --- a/components/style/keyframes.rs +++ b/components/style/keyframes.rs @@ -50,10 +50,11 @@ impl KeyframePercentage { KeyframePercentage::new(1.) } else { let percentage = try!(input.expect_percentage()); - if percentage > 1. || percentage < 0. { + if percentage >= 0. && percentage <= 1. { + KeyframePercentage::new(percentage) + } else { return Err(()); } - KeyframePercentage::new(percentage) }; Ok(percentage) diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 3eb8fb2e3c3..df134a0abb9 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -8294,6 +8294,12 @@ "url": "/_mozilla/mozilla/iterable.html" } ], + "mozilla/keyframe-infinite-percentage.html": [ + { + "path": "mozilla/keyframe-infinite-percentage.html", + "url": "/_mozilla/mozilla/keyframe-infinite-percentage.html" + } + ], "mozilla/lenient_this.html": [ { "path": "mozilla/lenient_this.html", diff --git a/tests/wpt/mozilla/tests/mozilla/keyframe-infinite-percentage.html b/tests/wpt/mozilla/tests/mozilla/keyframe-infinite-percentage.html new file mode 100644 index 00000000000..36ba83eeac4 --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/keyframe-infinite-percentage.html @@ -0,0 +1,15 @@ + + +Shouldn't end up with an invalid keyframe when inf or nan are at play. + + + +