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

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

Issue 206603002: Add EventHandlerRegistry (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Tests. Created 6 years, 9 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
Index: Source/core/dom/Node.cpp
diff --git a/Source/core/dom/Node.cpp b/Source/core/dom/Node.cpp
index 59a60dc30368c59a007a4977c004225c0132f7e4..63acabe064296b0230b8fa0ba63b82e5fc0e89d0 100644
--- a/Source/core/dom/Node.cpp
+++ b/Source/core/dom/Node.cpp
@@ -49,6 +49,7 @@
#include "core/dom/NodeTraversal.h"
#include "core/dom/ProcessingInstruction.h"
#include "core/dom/Range.h"
+#include "core/dom/ScrollEventHandlerController.h"
#include "core/dom/StaticNodeList.h"
#include "core/dom/TemplateContentDocumentFragment.h"
#include "core/dom/Text.h"
@@ -1919,17 +1920,25 @@ void Node::didMoveToNewDocument(Document& oldDocument)
}
const EventListenerVector& mousewheelListeners = getEventListeners(EventTypeNames::mousewheel);
- WheelController* oldController = WheelController::from(oldDocument);
- WheelController* newController = WheelController::from(document());
+ WheelController* oldWheelController = WheelController::from(oldDocument);
+ WheelController* newWheelController = WheelController::from(document());
for (size_t i = 0; i < mousewheelListeners.size(); ++i) {
- oldController->didRemoveWheelEventHandler(oldDocument);
- newController->didAddWheelEventHandler(document());
+ oldWheelController->didRemoveWheelEventHandler(oldDocument);
+ newWheelController->didAddWheelEventHandler(document());
}
const EventListenerVector& wheelListeners = getEventListeners(EventTypeNames::wheel);
for (size_t i = 0; i < wheelListeners.size(); ++i) {
- oldController->didRemoveWheelEventHandler(oldDocument);
- newController->didAddWheelEventHandler(document());
+ oldWheelController->didRemoveWheelEventHandler(oldDocument);
+ newWheelController->didAddWheelEventHandler(document());
+ }
+
+ const EventListenerVector& scrollListeners = getEventListeners(EventTypeNames::scroll);
+ ScrollEventHandlerController* oldScrollController = ScrollEventHandlerController::from(oldDocument);
+ ScrollEventHandlerController* newScrollController = ScrollEventHandlerController::from(document());
+ for (size_t i = 0; i < scrollListeners.size(); ++i) {
+ oldScrollController->didRemoveScrollEventHandler(oldDocument);
+ newScrollController->didAddScrollEventHandler(document());
}
if (const TouchEventTargetSet* touchHandlers = oldDocument.touchEventTargets()) {
@@ -1961,6 +1970,8 @@ static inline bool tryAddEventListener(Node* targetNode, const AtomicString& eve
document.addListenerTypeIfNeeded(eventType);
if (eventType == EventTypeNames::wheel || eventType == EventTypeNames::mousewheel)
WheelController::from(document)->didAddWheelEventHandler(document);
+ else if (eventType == EventTypeNames::scroll)
+ ScrollEventHandlerController::from(document)->didAddScrollEventHandler(document);
else if (isTouchEventType(eventType))
document.didAddTouchEventHandler(targetNode);
@@ -1982,6 +1993,8 @@ static inline bool tryRemoveEventListener(Node* targetNode, const AtomicString&
Document& document = targetNode->document();
if (eventType == EventTypeNames::wheel || eventType == EventTypeNames::mousewheel)
WheelController::from(document)->didRemoveWheelEventHandler(document);
+ else if (eventType == EventTypeNames::scroll)
+ ScrollEventHandlerController::from(document)->didRemoveScrollEventHandler(document);
else if (isTouchEventType(eventType))
document.didRemoveTouchEventHandler(targetNode);

Powered by Google App Engine
This is Rietveld 408576698