Index: third_party/WebKit/Source/core/dom/Node.cpp |
diff --git a/third_party/WebKit/Source/core/dom/Node.cpp b/third_party/WebKit/Source/core/dom/Node.cpp |
index caf5618827c3424f3f6e8939958d3761287ee1f4..f01be602d7b8dde6faa2f1a48c329083a977b58b 100644 |
--- a/third_party/WebKit/Source/core/dom/Node.cpp |
+++ b/third_party/WebKit/Source/core/dom/Node.cpp |
@@ -1808,6 +1808,14 @@ ExecutionContext* Node::getExecutionContext() const { |
return document().contextDocument(); |
} |
+void Node::willMoveToNewDocument(Document& oldDocument, Document& newDocument) { |
+ if (!oldDocument.frameHost() || |
+ oldDocument.frameHost() == newDocument.frameHost()) |
+ return; |
+ |
+ oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfFrameHost(*this); |
+} |
+ |
void Node::didMoveToNewDocument(Document& oldDocument) { |
TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled(oldDocument); |
@@ -1820,14 +1828,10 @@ void Node::didMoveToNewDocument(Document& oldDocument) { |
} |
oldDocument.markers().removeMarkers(this); |
- if (oldDocument.frameHost() && !document().frameHost()) |
- oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfFrameHost( |
- *this); |
- else if (document().frameHost() && !oldDocument.frameHost()) |
+ if (document().frameHost() && |
+ document().frameHost() != oldDocument.frameHost()) { |
document().frameHost()->eventHandlerRegistry().didMoveIntoFrameHost(*this); |
- else if (oldDocument.frameHost() != document().frameHost()) |
- EventHandlerRegistry::didMoveBetweenFrameHosts( |
- *this, oldDocument.frameHost(), document().frameHost()); |
+ } |
if (const HeapVector<TraceWrapperMember<MutationObserverRegistration>>* |
registry = mutationObserverRegistry()) { |