Auto merge of #14851 - hiikezoe:float-iteration-count-rebased, r=emilio

animation-iteration-count property is a number instead of integer.

<!-- Please describe your changes on the following line: -->
This is a revised PR  for #14732.
@emilio?
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [X] There are tests for these changes

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14851)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-01-05 03:44:20 -08:00 committed by GitHub
commit 1d9bbfa07b
4 changed files with 31 additions and 8 deletions

View file

@ -32,7 +32,7 @@ pub enum KeyframesIterationState {
/// Infinite iterations, so no need to track a state.
Infinite,
/// Current and max iterations.
Finite(u32, u32),
Finite(f32, f32),
}
/// This structure represents wether an animation is actually running.
@ -92,7 +92,7 @@ impl KeyframesAnimationState {
}
if let KeyframesIterationState::Finite(ref mut current, ref max) = self.iteration_state {
*current += 1;
*current += 1.0;
// NB: This prevent us from updating the direction, which might be
// needed for the correct handling of animation-fill-mode.
if *current >= *max {
@ -474,7 +474,7 @@ pub fn maybe_start_animations(context: &SharedStyleContext,
let duration = box_style.animation_duration_mod(i).seconds();
let iteration_state = match box_style.animation_iteration_count_mod(i) {
AnimationIterationCount::Infinite => KeyframesIterationState::Infinite,
AnimationIterationCount::Number(n) => KeyframesIterationState::Finite(0, n),
AnimationIterationCount::Number(n) => KeyframesIterationState::Finite(0.0, n),
};
let animation_direction = box_style.animation_direction_mod(i);