Index: third_party/WebKit/Source/core/dom/Document.cpp |
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp |
index b0a7d6840732c2405363ac2f822c1367ee20aece..7581cf8ad284ef0156d49f6971a12a9830906f37 100644 |
--- a/third_party/WebKit/Source/core/dom/Document.cpp |
+++ b/third_party/WebKit/Source/core/dom/Document.cpp |
@@ -83,6 +83,7 @@ |
#include "core/dom/NodeChildRemovalTracker.h" |
#include "core/dom/NodeComputedStyle.h" |
#include "core/dom/NodeFilter.h" |
+#include "core/dom/NodeIntersectionObserverData.h" |
#include "core/dom/NodeIterator.h" |
#include "core/dom/NodeRareData.h" |
#include "core/dom/NodeTraversal.h" |
@@ -609,6 +610,9 @@ void Document::dispose() |
if (svgExtensions()) |
accessSVGExtensions().pauseAnimations(); |
+ if (m_intersectionObserverData) |
+ m_intersectionObserverData->dispose(); |
+ |
m_lifecycle.advanceTo(DocumentLifecycle::Disposed); |
DocumentLifecycleNotifier::notifyDocumentWasDisposed(); |
@@ -5076,6 +5080,13 @@ IntersectionObserverController& Document::ensureIntersectionObserverController() |
return *m_intersectionObserverController; |
} |
+NodeIntersectionObserverData& Document::ensureIntersectionObserverData() |
+{ |
+ if (!m_intersectionObserverData) |
+ m_intersectionObserverData = new NodeIntersectionObserverData(); |
+ return *m_intersectionObserverData; |
+} |
+ |
void Document::reportBlockedScriptExecutionToInspector(const String& directiveText) |
{ |
InspectorInstrumentation::scriptExecutionBlockedByCSP(this, directiveText); |