Index: third_party/WebKit/Source/core/events/TouchEvent.cpp |
diff --git a/third_party/WebKit/Source/core/events/TouchEvent.cpp b/third_party/WebKit/Source/core/events/TouchEvent.cpp |
index d0432eb0a0ee47adc8960b51c5f6131edc35afb3..27306e533cd0d05604d533b98d88f999a53b8ba8 100644 |
--- a/third_party/WebKit/Source/core/events/TouchEvent.cpp |
+++ b/third_party/WebKit/Source/core/events/TouchEvent.cpp |
@@ -197,43 +197,35 @@ void logTouchTargetHistogram(EventTarget* eventTarget, |
} // namespace |
TouchEvent::TouchEvent() |
- : m_causesScrollingIfUncanceled(false), |
- m_firstTouchMoveOrStart(false), |
- m_defaultPreventedBeforeCurrentTarget(false), |
+ : m_defaultPreventedBeforeCurrentTarget(false), |
m_currentTouchAction(TouchActionAuto) {} |
-TouchEvent::TouchEvent(TouchList* touches, |
+TouchEvent::TouchEvent(const WebTouchEvent& event, |
+ TouchList* touches, |
TouchList* targetTouches, |
TouchList* changedTouches, |
const AtomicString& type, |
AbstractView* view, |
- PlatformEvent::Modifiers modifiers, |
- bool cancelable, |
- bool causesScrollingIfUncanceled, |
- bool firstTouchMoveOrStart, |
- TimeTicks platformTimeStamp, |
- TouchAction currentTouchAction, |
- WebPointerProperties::PointerType pointerType) |
+ TouchAction currentTouchAction) |
// Pass a sourceCapabilities including the ability to fire touchevents when |
// creating this touchevent, which is always created from input device |
// capabilities from EventHandler. |
: UIEventWithKeyState( |
type, |
true, |
- cancelable, |
+ event.isCancelable(), |
view, |
0, |
- modifiers, |
- platformTimeStamp, |
+ static_cast<PlatformEvent::Modifiers>(event.modifiers()), |
+ TimeTicks::FromSeconds(event.timeStampSeconds()), |
InputDeviceCapabilities::firesTouchEventsSourceCapabilities()), |
m_touches(touches), |
m_targetTouches(targetTouches), |
m_changedTouches(changedTouches), |
- m_causesScrollingIfUncanceled(causesScrollingIfUncanceled), |
- m_firstTouchMoveOrStart(firstTouchMoveOrStart), |
m_defaultPreventedBeforeCurrentTarget(false), |
- m_currentTouchAction(currentTouchAction), |
- m_pointerType(pointerType) {} |
+ m_currentTouchAction(currentTouchAction) { |
+ m_nativeEvent.reset(new WebTouchEvent(event)); |
+} |
TouchEvent::TouchEvent(const AtomicString& type, |
const TouchEventInit& initializer) |
@@ -241,11 +233,7 @@ TouchEvent::TouchEvent(const AtomicString& type, |
m_touches(TouchList::create(initializer.touches())), |
m_targetTouches(TouchList::create(initializer.targetTouches())), |
m_changedTouches(TouchList::create(initializer.changedTouches())), |
- m_causesScrollingIfUncanceled(false), |
- m_firstTouchMoveOrStart(false), |
- m_defaultPreventedBeforeCurrentTarget(false), |
- m_currentTouchAction(TouchActionAuto), |
- m_pointerType(WebPointerProperties::PointerType::Unknown) {} |
+ m_currentTouchAction(TouchActionAuto) {} |
TouchEvent::~TouchEvent() {} |
@@ -315,10 +303,16 @@ void TouchEvent::preventDefault() { |
} |
} |
+bool TouchEvent::isTouchStartOrFirstTouchMove() const { |
+ if (!m_nativeEvent) |
+ return false; |
+ return m_nativeEvent->touchStartOrFirstTouchMove; |
+} |
+ |
void TouchEvent::doneDispatchingEventAtCurrentTarget() { |
// Do not log for non-cancelable events, events that don't block |
// scrolling, have more than one touch point or aren't on the main frame. |
- if (!cancelable() || !m_firstTouchMoveOrStart || |
+ if (!cancelable() || !isTouchStartOrFirstTouchMove() || |
!(m_touches && m_touches->length() == 1) || |
!(view() && view()->frame() && view()->frame()->isMainFrame())) |
return; |