| Index: Source/core/frame/DOMTimer.cpp
|
| diff --git a/Source/core/frame/DOMTimer.cpp b/Source/core/frame/DOMTimer.cpp
|
| index 26a2133bf75c9e0179ce192dd206f50cf9dbc406..f6a587ccf0066c100166bbf8d319afa5ec0378ec 100644
|
| --- a/Source/core/frame/DOMTimer.cpp
|
| +++ b/Source/core/frame/DOMTimer.cpp
|
| @@ -51,7 +51,8 @@ static inline bool shouldForwardUserGesture(int interval, int nestingLevel)
|
| {
|
| return UserGestureIndicator::processingUserGesture()
|
| && interval <= maxIntervalForUserGestureForwarding
|
| - && nestingLevel == 1; // Gestures should not be forwarded to nested timers.
|
| + && nestingLevel == 1
|
| + && !UserGestureIndicator::currentToken()->wasForwarded();
|
| }
|
|
|
| double DOMTimer::hiddenPageAlignmentInterval()
|
| @@ -114,6 +115,8 @@ void DOMTimer::fired()
|
| timerNestingLevel = m_nestingLevel;
|
| ASSERT(!context->activeDOMObjectsAreSuspended());
|
| // Only the first execution of a multi-shot timer should get an affirmative user gesture indicator.
|
| + if (m_userGestureToken)
|
| + m_userGestureToken->setForwarded();
|
| UserGestureIndicator gestureIndicator(m_userGestureToken.release());
|
|
|
| InspectorInstrumentationCookie cookie = InspectorInstrumentation::willFireTimer(context, m_timeoutID);
|
|
|