Commit 5db6ddad authored by haozhe's avatar haozhe Committed by Commit Bot

Fix direct access to iteration_duration

Directly accessing iteration_duration is unsafe since it is an optional
timing property.

Instead, this patch uses a getter function, which has the necessary
safeguards to prevent nullpot dereferencing.

Bug: 1084547
Change-Id: I617dfa8af9aee02253386ea9ee26934760a02cad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2225511
Commit-Queue: Hao Sheng <haozhes@chromium.org>
Reviewed-by: default avatarKevin Ellis <kevers@chromium.org>
Cr-Commit-Position: refs/heads/master@{#774696}
parent 028dfa85
......@@ -449,7 +449,7 @@ AnimationTimeDelta IterationElapsedTime(const AnimationEffect& effect,
: current_iteration;
const double iteration_start = effect.SpecifiedTiming().iteration_start;
const AnimationTimeDelta iteration_duration =
effect.SpecifiedTiming().iteration_duration.value();
effect.SpecifiedTiming().IterationDuration();
return iteration_duration * (iteration_boundary - iteration_start);
}
......@@ -1527,9 +1527,8 @@ void CSSAnimations::TransitionEventDelegate::OnEventCondition(
previous_phase_ == Timing::kPhaseAfter) {
// If the transition is progressing backwards it is considered to have
// started at the end position.
DCHECK(animation_node.SpecifiedTiming().iteration_duration.has_value());
EnqueueEvent(event_type_names::kTransitionstart,
animation_node.SpecifiedTiming().iteration_duration.value());
animation_node.SpecifiedTiming().IterationDuration());
}
}
......@@ -1538,9 +1537,8 @@ void CSSAnimations::TransitionEventDelegate::OnEventCondition(
(previous_phase_ == Timing::kPhaseActive ||
previous_phase_ == Timing::kPhaseBefore ||
previous_phase_ == Timing::kPhaseNone)) {
DCHECK(animation_node.SpecifiedTiming().iteration_duration.has_value());
EnqueueEvent(event_type_names::kTransitionend,
animation_node.SpecifiedTiming().iteration_duration.value());
animation_node.SpecifiedTiming().IterationDuration());
} else if (current_phase == Timing::kPhaseBefore &&
(previous_phase_ == Timing::kPhaseActive ||
previous_phase_ == Timing::kPhaseAfter)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment