Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(911)

Unified Diff: Source/core/dom/ScriptExecutionContext.cpp

Issue 19494002: Distinguish actions registered with setTimeout() and setInterval(). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase again. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/ScriptExecutionContext.h ('k') | Source/core/page/DOMTimer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/ScriptExecutionContext.cpp
diff --git a/Source/core/dom/ScriptExecutionContext.cpp b/Source/core/dom/ScriptExecutionContext.cpp
index b292094975aa0776c66a6c9346e75d05ebe31c9b..185b1aa7d376309c34a031741f1cc9002fead17a 100644
--- a/Source/core/dom/ScriptExecutionContext.cpp
+++ b/Source/core/dom/ScriptExecutionContext.cpp
@@ -259,7 +259,7 @@ int ScriptExecutionContext::circularSequentialID()
return m_circularSequentialID;
}
-int ScriptExecutionContext::installNewTimeout(PassOwnPtr<ScheduledAction> action, int timeout, bool singleShot)
+int ScriptExecutionContext::installNewTimeout(DOMTimer::Type timerType, PassOwnPtr<ScheduledAction> action, int timeout)
{
int timeoutID;
while (true) {
@@ -267,20 +267,25 @@ 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)
+bool ScriptExecutionContext::removeTimeoutByIDIfTypeMatches(DOMTimer::Type timerType, int timeoutID)
{
if (timeoutID <= 0)
- return;
- m_timeouts.remove(timeoutID);
+ return false;
+ TimeoutMap::iterator iter = m_timeouts.find(timeoutID);
+ if (iter != m_timeouts.end() && iter->value->type() == timerType) {
+ m_timeouts.remove(iter);
+ return true;
+ }
+ return false;
}
PublicURLManager& ScriptExecutionContext::publicURLManager()
« no previous file with comments | « Source/core/dom/ScriptExecutionContext.h ('k') | Source/core/page/DOMTimer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698