| Index: Source/core/dom/ScriptExecutionContext.cpp
|
| diff --git a/Source/core/dom/ScriptExecutionContext.cpp b/Source/core/dom/ScriptExecutionContext.cpp
|
| index 63180d9efa647be2711cd4c41c70e30ed69864e4..5ede6e72c1ace47b4e9c2cbb755eb0fe85ce0330 100644
|
| --- a/Source/core/dom/ScriptExecutionContext.cpp
|
| +++ b/Source/core/dom/ScriptExecutionContext.cpp
|
| @@ -280,7 +280,7 @@ int ScriptExecutionContext::circularSequentialID()
|
| return m_circularSequentialID;
|
| }
|
|
|
| -int ScriptExecutionContext::installNewTimeout(PassOwnPtr<ScheduledAction> action, int timeout, bool singleShot)
|
| +int ScriptExecutionContext::installNewTimeout(DOMTimer::TimerType timerType, PassOwnPtr<ScheduledAction> action, int timeout)
|
| {
|
| int timeoutID;
|
| while (true) {
|
| @@ -288,20 +288,22 @@ int ScriptExecutionContext::installNewTimeout(PassOwnPtr<ScheduledAction> action
|
| if (!m_timeouts.contains(timeoutID))
|
| break;
|
| }
|
| - TimeoutMap::AddResult result = m_timeouts.add(timeoutID, DOMTimer::create(this, action, timeout, singleShot, timeoutID));
|
| + TimeoutMap::AddResult result = m_timeouts.add(timeoutID, DOMTimer::create(this, timerType, action, timeout, timeoutID));
|
| ASSERT(result.isNewEntry);
|
| DOMTimer* timer = result.iterator->value.get();
|
|
|
| timer->suspendIfNeeded();
|
|
|
| - return timer->timeoutID();
|
| + return timeoutID;
|
| }
|
|
|
| -void ScriptExecutionContext::removeTimeoutByID(int timeoutID)
|
| +void ScriptExecutionContext::removeTimeoutByIDIfTypeMatches(DOMTimer::TimerType timerType, int timeoutID)
|
| {
|
| if (timeoutID <= 0)
|
| return;
|
| - m_timeouts.remove(timeoutID);
|
| + TimeoutMap::iterator iter = m_timeouts.find(timeoutID);
|
| + if (iter != m_timeouts.end() && iter->value->timerType() == timerType)
|
| + m_timeouts.remove(iter);
|
| }
|
|
|
| PublicURLManager& ScriptExecutionContext::publicURLManager()
|
|
|