Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index f18cc7d8cf3952aaeab7152d10290a11ae22f8cd..fd03bf53cad5acbd6c55051f310ab4ae6a39fac9 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -92,6 +92,7 @@ |
#include "core/dom/ProcessingInstruction.h" |
#include "core/dom/ScriptRunner.h" |
#include "core/dom/ScriptedAnimationController.h" |
+#include "core/dom/ScriptedIdleTaskController.h" |
#include "core/dom/SelectorQuery.h" |
#include "core/dom/StaticNodeList.h" |
#include "core/dom/StyleEngine.h" |
@@ -591,6 +592,8 @@ void Document::dispose() |
m_scriptedAnimationController->clearDocumentPointer(); |
m_scriptedAnimationController.clear(); |
+ m_scriptedIdleTaskController.clear(); |
+ |
if (svgExtensions()) |
accessSVGExtensions().pauseAnimations(); |
@@ -2147,6 +2150,8 @@ void Document::detach(const AttachContext& context) |
m_scriptedAnimationController->clearDocumentPointer(); |
m_scriptedAnimationController.clear(); |
+ m_scriptedIdleTaskController.clear(); |
+ |
if (svgExtensions()) |
accessSVGExtensions().pauseAnimations(); |
@@ -5241,6 +5246,26 @@ void Document::serviceScriptedAnimations(double monotonicAnimationStartTime) |
m_scriptedAnimationController->serviceScriptedAnimations(monotonicAnimationStartTime); |
} |
+ScriptedIdleTaskController& Document::ensureScriptedIdleTaskController() |
+{ |
+ if (!m_scriptedIdleTaskController) { |
jochen (gone - plz use gerrit)
2015/07/31 09:19:19
no { }
rmcilroy
2015/08/11 16:30:51
Done.
|
+ m_scriptedIdleTaskController = ScriptedIdleTaskController::create(this, loader()->timing()); |
+ } |
+ return *m_scriptedIdleTaskController; |
+} |
+ |
+int Document::requestIdleCallback(IdleRequestCallback* callback, double timeout) |
+{ |
+ return ensureScriptedIdleTaskController().registerCallback(callback, timeout); |
+} |
+ |
+void Document::cancelIdleCallback(int id) |
+{ |
+ if (!m_scriptedIdleTaskController) |
+ return; |
jochen (gone - plz use gerrit)
2015/07/31 09:19:19
that should be unreachable, no?
rmcilroy
2015/08/11 16:30:51
If the page calls cancelIdleCallback (with a rando
|
+ m_scriptedIdleTaskController->cancelCallback(id); |
+} |
+ |
PassRefPtrWillBeRawPtr<Touch> Document::createTouch(DOMWindow* window, EventTarget* target, int identifier, double pageX, double pageY, double screenX, double screenY, double radiusX, double radiusY, float rotationAngle, float force) const |
{ |
// Match behavior from when these types were integers, and avoid surprises from someone explicitly |
@@ -5769,6 +5794,7 @@ DEFINE_TRACE(Document) |
visitor->trace(m_styleSheetList); |
visitor->trace(m_mediaQueryMatcher); |
visitor->trace(m_scriptedAnimationController); |
+ visitor->trace(m_scriptedIdleTaskController); |
visitor->trace(m_textAutosizer); |
visitor->trace(m_registrationContext); |
visitor->trace(m_customElementMicrotaskRunQueue); |