Index: Source/core/dom/Node.cpp |
diff --git a/Source/core/dom/Node.cpp b/Source/core/dom/Node.cpp |
index cd07aa30ef859ee7d59b7dbc96a1a43bc501a7fb..537bf2ee8888bbbae8d9a294206e79fcfbea6ff5 100644 |
--- a/Source/core/dom/Node.cpp |
+++ b/Source/core/dom/Node.cpp |
@@ -327,10 +327,8 @@ void Node::willBeDeletedFromDocument() |
Document& document = this->document(); |
- if (hasEventTargetData()) { |
+ if (hasEventTargetData()) |
clearEventTargetData(); |
- document.didClearTouchEventHandlers(this); |
- } |
if (document.frameHost()) |
document.frameHost()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); |
@@ -1857,19 +1855,12 @@ void Node::didMoveToNewDocument(Document& oldDocument) |
oldDocument.markers().removeMarkers(this); |
oldDocument.updateRangesAfterNodeMovedToAnotherDocument(*this); |
- |
- if (const TouchEventTargetSet* touchHandlers = oldDocument.touchEventTargets()) { |
- while (touchHandlers->contains(this)) { |
- oldDocument.didRemoveTouchEventHandler(this); |
- document().didAddTouchEventHandler(this); |
- } |
- } |
- if (oldDocument.frameHost() != document().frameHost()) { |
- if (oldDocument.frameHost()) |
- oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfFrameHost(*this); |
- if (document().frameHost()) |
- document().frameHost()->eventHandlerRegistry().didMoveIntoFrameHost(*this); |
- } |
+ if (oldDocument.frameHost() && !document().frameHost()) |
+ oldDocument.frameHost()->eventHandlerRegistry().didMoveOutOfFrameHost(*this); |
+ else if (document().frameHost() && !oldDocument.frameHost()) |
+ document().frameHost()->eventHandlerRegistry().didMoveIntoFrameHost(*this); |
+ else if (oldDocument.frameHost() != document().frameHost()) |
+ EventHandlerRegistry::didMoveBetweenFrameHosts(*this, oldDocument.frameHost(), document().frameHost()); |
if (WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration> >* registry = mutationObserverRegistry()) { |
for (size_t i = 0; i < registry->size(); ++i) { |
@@ -1891,8 +1882,6 @@ static inline bool tryAddEventListener(Node* targetNode, const AtomicString& eve |
Document& document = targetNode->document(); |
document.addListenerTypeIfNeeded(eventType); |
- if (isTouchEventType(eventType)) |
- document.didAddTouchEventHandler(targetNode); |
if (document.frameHost()) |
document.frameHost()->eventHandlerRegistry().didAddEventHandler(*targetNode, eventType); |
@@ -1912,8 +1901,6 @@ static inline bool tryRemoveEventListener(Node* targetNode, const AtomicString& |
// FIXME: Notify Document that the listener has vanished. We need to keep track of a number of |
// listeners for each type, not just a bool - see https://bugs.webkit.org/show_bug.cgi?id=33861 |
Document& document = targetNode->document(); |
- if (isTouchEventType(eventType)) |
- document.didRemoveTouchEventHandler(targetNode); |
if (document.frameHost()) |
document.frameHost()->eventHandlerRegistry().didRemoveEventHandler(*targetNode, eventType); |
@@ -1930,7 +1917,6 @@ void Node::removeAllEventListeners() |
if (hasEventListeners() && document().frameHost()) |
document().frameHost()->eventHandlerRegistry().didRemoveAllEventHandlers(*this); |
EventTarget::removeAllEventListeners(); |
- document().didClearTouchEventHandlers(this); |
} |
void Node::removeAllEventListenersRecursively() |