Index: Source/core/frame/EventHandlerRegistry.cpp |
diff --git a/Source/core/frame/EventHandlerRegistry.cpp b/Source/core/frame/EventHandlerRegistry.cpp |
index 6f4e357722d5279f9eba210a811468d49a9ad291..6fe2172161ec232bdd1a4b9cd95abaede96f6c3e 100644 |
--- a/Source/core/frame/EventHandlerRegistry.cpp |
+++ b/Source/core/frame/EventHandlerRegistry.cpp |
@@ -5,7 +5,6 @@ |
#include "config.h" |
#include "core/frame/EventHandlerRegistry.h" |
-#include "core/events/ThreadLocalEventNames.h" |
#include "core/frame/LocalDOMWindow.h" |
#include "core/frame/LocalFrame.h" |
#include "core/html/HTMLFrameOwnerElement.h" |
@@ -15,6 +14,32 @@ |
namespace blink { |
+namespace { |
+ |
+inline bool isTouchEventType(const AtomicString& eventType) |
+{ |
+ return eventType == EventTypeNames::touchstart |
+ || eventType == EventTypeNames::touchmove |
+ || eventType == EventTypeNames::touchend |
+ || eventType == EventTypeNames::touchcancel; |
+} |
+ |
+inline bool isPointerEventType(const AtomicString& eventType) |
+{ |
+ return eventType == EventTypeNames::gotpointercapture |
+ || eventType == EventTypeNames::lostpointercapture |
+ || eventType == EventTypeNames::pointercancel |
+ || eventType == EventTypeNames::pointerdown |
+ || eventType == EventTypeNames::pointerenter |
+ || eventType == EventTypeNames::pointerleave |
+ || eventType == EventTypeNames::pointermove |
+ || eventType == EventTypeNames::pointerout |
+ || eventType == EventTypeNames::pointerover |
+ || eventType == EventTypeNames::pointerup; |
+} |
+ |
+} // namespace |
+ |
EventHandlerRegistry::EventHandlerRegistry(FrameHost& frameHost) |
: m_frameHost(frameHost) |
{ |
@@ -33,6 +58,10 @@ bool EventHandlerRegistry::eventTypeToClass(const AtomicString& eventType, Event |
*result = WheelEvent; |
} else if (isTouchEventType(eventType)) { |
*result = TouchEvent; |
+ } else if (isPointerEventType(eventType)) { |
+ // The EventHandlerClass is still TouchEvent below since we are firing PointerEvents only from |
+ // EventHandler::handleTouchEvent for now. See crbug.com/476565. |
+ *result = TouchEvent; |
#if ENABLE(ASSERT) |
} else if (eventType == EventTypeNames::load || eventType == EventTypeNames::mousemove || eventType == EventTypeNames::touchstart) { |
*result = EventsForTesting; |