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

Unified Diff: trunk/Source/core/dom/Node.cpp

Issue 391483002: Revert 177812 "Migrate touch events to EventHandlerRegistry" (Closed) Base URL: svn://svn.chromium.org/blink/
Patch Set: Created 6 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 | « trunk/Source/core/dom/Document.cpp ('k') | trunk/Source/core/frame/EventHandlerRegistry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/Source/core/dom/Node.cpp
===================================================================
--- trunk/Source/core/dom/Node.cpp (revision 177995)
+++ trunk/Source/core/dom/Node.cpp (working copy)
@@ -329,6 +329,7 @@
if (hasEventTargetData()) {
clearEventTargetData();
+ document.didClearTouchEventHandlers(this);
if (document.frameHost())
document.frameHost()->eventHandlerRegistry().didRemoveAllEventHandlers(*this);
}
@@ -1942,13 +1943,20 @@
oldDocument.markers().removeMarkers(this);
oldDocument.updateRangesAfterNodeMovedToAnotherDocument(*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 (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 (WillBeHeapVector<OwnPtrWillBeMember<MutationObserverRegistration> >* registry = mutationObserverRegistry()) {
for (size_t i = 0; i < registry->size(); ++i) {
document().addMutationObserverTypes(registry->at(i)->mutationTypes());
@@ -1969,6 +1977,8 @@
Document& document = targetNode->document();
document.addListenerTypeIfNeeded(eventType);
+ if (isTouchEventType(eventType))
+ document.didAddTouchEventHandler(targetNode);
if (document.frameHost())
document.frameHost()->eventHandlerRegistry().didAddEventHandler(*targetNode, eventType);
@@ -1988,6 +1998,8 @@
// 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);
@@ -2004,6 +2016,7 @@
if (hasEventListeners() && document().frameHost())
document().frameHost()->eventHandlerRegistry().didRemoveAllEventHandlers(*this);
EventTarget::removeAllEventListeners();
+ document().didClearTouchEventHandlers(this);
}
void Node::removeAllEventListenersRecursively()
« no previous file with comments | « trunk/Source/core/dom/Document.cpp ('k') | trunk/Source/core/frame/EventHandlerRegistry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698