Index: Source/core/svg/animation/SVGSMILElement.cpp |
diff --git a/Source/core/svg/animation/SVGSMILElement.cpp b/Source/core/svg/animation/SVGSMILElement.cpp |
index 20ac8cd39ffdb471d997eb0b5a7583e4c6bd64b5..8e3ee0e6307a00ca144e58e03039f7be48046f80 100644 |
--- a/Source/core/svg/animation/SVGSMILElement.cpp |
+++ b/Source/core/svg/animation/SVGSMILElement.cpp |
@@ -1020,7 +1020,7 @@ SVGSMILElement::RestartedInterval SVGSMILElement::maybeRestartInterval(SMILTime |
} |
if (elapsed >= m_intervalEnd) { |
- if (resolveNextInterval()) |
+ if (resolveNextInterval() && elapsed >= m_intervalBegin) |
return DidRestartInterval; |
} |
return DidNotRestartInterval; |
@@ -1197,7 +1197,7 @@ bool SVGSMILElement::progress(SMILTime elapsed, SVGSMILElement* resultElement, b |
if ((oldActiveState == Active && m_activeState != Active) || restartedInterval == DidRestartInterval) { |
smilEndEventSender().dispatchEventSoon(this); |
endedActiveInterval(); |
- if (restartedInterval == DidNotRestartInterval && m_activeState != Frozen && this == resultElement) |
+ if (!animationIsContributing && this == resultElement) |
clearAnimatedType(m_targetElement); |
} |