Changeset 241432 in webkit


Ignore:
Timestamp:
Feb 13, 2019 5:34:43 AM (5 years ago)
Author:
graouts@webkit.org
Message:

Support simulated mouse events on iOS based on a PlatformTouchEvent
https://bugs.webkit.org/show_bug.cgi?id=194501
<rdar://problem/46910790>

Reviewed by Dean Jackson.

Source/WebCore:

Add support for two new internal runtime flags to control whether simulated mouse events should be dipatched along with touch events and
whether simulated mousemove events dispatched should automatically trigger the behavior preventDefault() would also trigger. To facilitate
that, we allow for a MouseEvent to be created, much like a PointerEvent, based on a PlatformTouchEvent. Then, we set a flag on Event within
EventTarget::innerInvokeEventListeners() to see whether any page code has been evaluated as a result of a mousemove event being dispatched.
Finally, we also track mouse events when invalidating touch regions provided the required internal runtime flag is on.

Test: fast/events/touch/ios/mouse-events-dispatch-with-touch.html

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Event.cpp:
  • dom/Event.h:

(WebCore::Event::hasEncounteredListener const):
(WebCore::Event::setHasEncounteredListener):

  • dom/EventNames.h:

(WebCore::EventNames::isTouchRelatedEventType const):
(WebCore::EventNames::touchRelatedEventNames const):
(WebCore::EventNames::extendedTouchRelatedEventNames const):
(WebCore::EventNames::isTouchEventType const): Deleted.
(WebCore::EventNames::touchAndPointerEventNames const): Deleted.

  • dom/EventTarget.cpp:

(WebCore::EventTarget::innerInvokeEventListeners):

  • dom/MouseEvent.h:
  • dom/Node.cpp:

(WebCore::Node::moveNodeToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):

  • dom/ios/MouseEventIOS.cpp: Added.

(WebCore::mouseEventType):
(WebCore::MouseEvent::create):

  • dom/ios/PointerEventIOS.cpp:

(WebCore::pointerEventType):
(WebCore::PointerEvent::create):
(WebCore::eventType): Deleted.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):

  • page/EventHandler.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::mouseEventsSimulationEnabled const):
(WebCore::RuntimeEnabledFeatures::setMouseEventsSimulationEnabled):
(WebCore::RuntimeEnabledFeatures::mousemoveEventHandlingPreventsDefaultEnabled const):
(WebCore::RuntimeEnabledFeatures::setMousemoveEventHandlingPreventsDefaultEnabled):

Source/WebKit:

Add two new internal runtime flags to control whether simulated mouse events should be dipatched along with touch events and whether
simulated mousemove events dispatched should automatically trigger the behavior preventDefault() would also trigger. We also ensure
that we correctly create touch tracking regions for mouse events.

  • Shared/WebPreferences.yaml:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateTouchEventTracking):

LayoutTests:

Add a new test to check that we correctly dispatch mouse events as touches occur.

  • fast/events/touch/ios/mouse-events-dispatch-with-touch-expected.txt: Added.
  • fast/events/touch/ios/mouse-events-dispatch-with-touch.html: Added.
  • pointerevents/utils.js:

(prototype.handleEvent):
(prototype._handlePointerEvent):
(prototype._handleMouseEvent):

Location:
trunk
Files:
3 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r241430 r241432  
     12019-02-13  Antoine Quint  <graouts@apple.com>
     2
     3        Support simulated mouse events on iOS based on a PlatformTouchEvent
     4        https://bugs.webkit.org/show_bug.cgi?id=194501
     5        <rdar://problem/46910790>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Add a new test to check that we correctly dispatch mouse events as touches occur.
     10
     11        * fast/events/touch/ios/mouse-events-dispatch-with-touch-expected.txt: Added.
     12        * fast/events/touch/ios/mouse-events-dispatch-with-touch.html: Added.
     13        * pointerevents/utils.js:
     14        (prototype.handleEvent):
     15        (prototype._handlePointerEvent):
     16        (prototype._handleMouseEvent):
     17
    1182019-02-13  Fujii Hironori  <Hironori.Fujii@sony.com>
    219
  • trunk/LayoutTests/pointerevents/utils.js

    r240632 r241432  
    4747    handleEvent(event)
    4848    {
     49        if (event instanceof PointerEvent)
     50            this._handlePointerEvent(event);
     51        else if (event instanceof MouseEvent)
     52            this._handleMouseEvent(event);
     53    }
     54
     55    _handlePointerEvent(event)
     56    {
    4957        if (!this.pointerIdToTouchIdMap[event.pointerId])
    5058            this.pointerIdToTouchIdMap[event.pointerId] = Object.keys(this.pointerIdToTouchIdMap).length + 1;
    5159
    52         const id = this.pointerIdToTouchIdMap[event.pointerId];
    5360        this.events.push({
    54             id,
     61            id: this.pointerIdToTouchIdMap[event.pointerId],
    5562            type: event.type,
    5663            x: event.clientX,
    5764            y: event.clientY,
    5865            isPrimary: event.isPrimary
     66        });
     67    }
     68
     69    _handleMouseEvent(event)
     70    {
     71        this.events.push({
     72            type: event.type,
     73            x: event.clientX,
     74            y: event.clientY,
    5975        });
    6076    }
  • trunk/Source/WebCore/ChangeLog

    r241402 r241432  
     12019-02-13  Antoine Quint  <graouts@apple.com>
     2
     3        Support simulated mouse events on iOS based on a PlatformTouchEvent
     4        https://bugs.webkit.org/show_bug.cgi?id=194501
     5        <rdar://problem/46910790>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Add support for two new internal runtime flags to control whether simulated mouse events should be dipatched along with touch events and
     10        whether simulated mousemove events dispatched should automatically trigger the behavior preventDefault() would also trigger. To facilitate
     11        that, we allow for a MouseEvent to be created, much like a PointerEvent, based on a PlatformTouchEvent. Then, we set a flag on Event within
     12        EventTarget::innerInvokeEventListeners() to see whether any page code has been evaluated as a result of a mousemove event being dispatched.
     13        Finally, we also track mouse events when invalidating touch regions provided the required internal runtime flag is on.
     14
     15        Test: fast/events/touch/ios/mouse-events-dispatch-with-touch.html
     16
     17        * SourcesCocoa.txt:
     18        * WebCore.xcodeproj/project.pbxproj:
     19        * dom/Event.cpp:
     20        * dom/Event.h:
     21        (WebCore::Event::hasEncounteredListener const):
     22        (WebCore::Event::setHasEncounteredListener):
     23        * dom/EventNames.h:
     24        (WebCore::EventNames::isTouchRelatedEventType const):
     25        (WebCore::EventNames::touchRelatedEventNames const):
     26        (WebCore::EventNames::extendedTouchRelatedEventNames const):
     27        (WebCore::EventNames::isTouchEventType const): Deleted.
     28        (WebCore::EventNames::touchAndPointerEventNames const): Deleted.
     29        * dom/EventTarget.cpp:
     30        (WebCore::EventTarget::innerInvokeEventListeners):
     31        * dom/MouseEvent.h:
     32        * dom/Node.cpp:
     33        (WebCore::Node::moveNodeToNewDocument):
     34        (WebCore::tryAddEventListener):
     35        (WebCore::tryRemoveEventListener):
     36        (WebCore::Node::defaultEventHandler):
     37        * dom/ios/MouseEventIOS.cpp: Added.
     38        (WebCore::mouseEventType):
     39        (WebCore::MouseEvent::create):
     40        * dom/ios/PointerEventIOS.cpp:
     41        (WebCore::pointerEventType):
     42        (WebCore::PointerEvent::create):
     43        (WebCore::eventType): Deleted.
     44        * page/DOMWindow.cpp:
     45        (WebCore::DOMWindow::addEventListener):
     46        (WebCore::DOMWindow::removeEventListener):
     47        * page/EventHandler.h:
     48        * page/RuntimeEnabledFeatures.h:
     49        (WebCore::RuntimeEnabledFeatures::mouseEventsSimulationEnabled const):
     50        (WebCore::RuntimeEnabledFeatures::setMouseEventsSimulationEnabled):
     51        (WebCore::RuntimeEnabledFeatures::mousemoveEventHandlingPreventsDefaultEnabled const):
     52        (WebCore::RuntimeEnabledFeatures::setMousemoveEventHandlingPreventsDefaultEnabled):
     53
    1542019-02-13  Carlos Garcia Campos  <cgarcia@igalia.com>
    255
  • trunk/Source/WebCore/SourcesCocoa.txt

    r241321 r241432  
    7272dom/DataTransferMac.mm
    7373
     74dom/ios/MouseEventIOS.cpp
    7475dom/ios/PointerEventIOS.cpp
    7576dom/ios/TouchEvents.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r241328 r241432  
    94339433                71C916071D1483A300ACA47D /* UserInterfaceLayoutDirection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserInterfaceLayoutDirection.h; sourceTree = "<group>"; };
    94349434                71CC7A1F152A0BFE009EEAF9 /* SVGAnimatedEnumeration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGAnimatedEnumeration.cpp; sourceTree = "<group>"; };
     9435                71CE2C512209DC7F00C494BD /* MouseEventIOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseEventIOS.cpp; sourceTree = "<group>"; };
    94359436                71D02D901DB55C4E00DD5CF5 /* main.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = main.js; sourceTree = "<group>"; };
    94369437                71D02D921DB55C4E00DD5CF5 /* media-controller.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = "media-controller.js"; sourceTree = "<group>"; };
     
    2606726068                        isa = PBXGroup;
    2606826069                        children = (
     26070                                71CE2C512209DC7F00C494BD /* MouseEventIOS.cpp */,
    2606926071                                315574CC218F66D000D88F66 /* PointerEventIOS.cpp */,
    2607026072                                A1DE712B18612AC100734192 /* TouchEvents.cpp */,
  • trunk/Source/WebCore/dom/Event.cpp

    r237431 r241432  
    4747    , m_isTrusted { isTrusted == IsTrusted::Yes }
    4848    , m_isExecutingPassiveEventListener { false }
     49    , m_hasEncounteredListener { false }
    4950    , m_eventPhase { NONE }
    5051    , m_type { type }
  • trunk/Source/WebCore/dom/Event.h

    r236378 r241432  
    129129    void setInPassiveListener(bool value) { m_isExecutingPassiveEventListener = value; }
    130130
     131    bool hasEncounteredListener() const { return m_hasEncounteredListener; }
     132    void setHasEncounteredListener() { m_hasEncounteredListener = true; }
     133
    131134    bool cancelBubble() const { return propagationStopped(); }
    132135    void setCancelBubble(bool);
     
    167170    unsigned m_isTrusted : 1;
    168171    unsigned m_isExecutingPassiveEventListener : 1;
     172    unsigned m_hasEncounteredListener : 1;
    169173
    170174    unsigned m_eventPhase : 2;
  • trunk/Source/WebCore/dom/EventNames.h

    r240634 r241432  
    2626#include <functional>
    2727#include <wtf/text/AtomicString.h>
     28
     29#if ENABLE(TOUCH_EVENTS)
     30#include "RuntimeEnabledFeatures.h"
     31#endif
    2832
    2933namespace WebCore {
     
    356360    bool isWheelEventType(const AtomicString& eventType) const;
    357361    bool isGestureEventType(const AtomicString& eventType) const;
    358     bool isTouchEventType(const AtomicString& eventType) const;
     362    bool isTouchRelatedEventType(const AtomicString& eventType) const;
    359363    bool isTouchScrollBlockingEventType(const AtomicString& eventType) const;
    360364#if ENABLE(GAMEPAD)
     
    362366#endif
    363367
    364     std::array<std::reference_wrapper<const AtomicString>, 9> touchAndPointerEventNames() const;
     368    std::array<std::reference_wrapper<const AtomicString>, 9> touchRelatedEventNames() const;
     369    std::array<std::reference_wrapper<const AtomicString>, 12> extendedTouchRelatedEventNames() const;
    365370    std::array<std::reference_wrapper<const AtomicString>, 3> gestureEventNames() const;
    366371
     
    390395}
    391396
    392 inline bool EventNames::isTouchEventType(const AtomicString& eventType) const
    393 {
     397inline bool EventNames::isTouchRelatedEventType(const AtomicString& eventType) const
     398{
     399#if ENABLE(TOUCH_EVENTS)
     400    if (RuntimeEnabledFeatures::sharedFeatures().mouseEventsSimulationEnabled()) {
     401        if (eventType == mousedownEvent || eventType == mousemoveEvent || eventType == mouseupEvent)
     402            return true;
     403    }
     404#endif
    394405    return eventType == touchstartEvent
    395406        || eventType == touchmoveEvent
     
    409420}
    410421
    411 inline std::array<std::reference_wrapper<const AtomicString>, 9> EventNames::touchAndPointerEventNames() const
     422inline std::array<std::reference_wrapper<const AtomicString>, 9> EventNames::touchRelatedEventNames() const
    412423{
    413424    return { { touchstartEvent, touchmoveEvent, touchendEvent, touchcancelEvent, touchforcechangeEvent, pointerdownEvent, pointermoveEvent, pointerupEvent, pointercancelEvent } };
    414425}
    415426
     427inline std::array<std::reference_wrapper<const AtomicString>, 12> EventNames::extendedTouchRelatedEventNames() const
     428{
     429    return { { touchstartEvent, touchmoveEvent, touchendEvent, touchcancelEvent, touchforcechangeEvent, pointerdownEvent, pointermoveEvent, pointerupEvent, pointercancelEvent, mousedownEvent, mousemoveEvent, mouseupEvent } };
     430}
     431   
    416432inline std::array<std::reference_wrapper<const AtomicString>, 3> EventNames::gestureEventNames() const
    417433{
  • trunk/Source/WebCore/dom/EventTarget.cpp

    r240641 r241432  
    3636#include "EventNames.h"
    3737#include "HTMLBodyElement.h"
     38#include "HTMLHtmlElement.h"
    3839#include "InspectorInstrumentation.h"
    3940#include "JSEventListener.h"
     41#include "RuntimeEnabledFeatures.h"
    4042#include "ScriptController.h"
    4143#include "ScriptDisallowedScope.h"
     
    300302        InspectorInstrumentation::didHandleEvent(context);
    301303
     304#if ENABLE(TOUCH_EVENTS)
     305        if (RuntimeEnabledFeatures::sharedFeatures().mousemoveEventHandlingPreventsDefaultEnabled() && event.type() == eventNames().mousemoveEvent) {
     306            if (is<Element>(event.currentTarget())) {
     307                auto* element = downcast<Element>(event.currentTarget());
     308                if (!is<HTMLBodyElement>(element) && !is<HTMLHtmlElement>(element))
     309                    event.setHasEncounteredListener();
     310            }
     311        }
     312#endif
     313
    302314        if (registeredListener->isPassive())
    303315            event.setInPassiveListener(false);
  • trunk/Source/WebCore/dom/MouseEvent.h

    r235335 r241432  
    2727#include "MouseRelatedEvent.h"
    2828
     29#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY)
     30#include "PlatformTouchEventIOS.h"
     31#endif
     32
    2933namespace WebCore {
    3034
     
    4852
    4953    static Ref<MouseEvent> create(const AtomicString& eventType, const MouseEventInit&);
     54
     55#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY)
     56    static Ref<MouseEvent> create(const PlatformTouchEvent&, unsigned touchIndex, Ref<WindowProxy>&&);
     57#endif
    5058
    5159    virtual ~MouseEvent();
  • trunk/Source/WebCore/dom/Node.cpp

    r240237 r241432  
    20802080
    20812081        unsigned numTouchEventListeners = 0;
    2082         for (auto& name : eventNames().touchAndPointerEventNames())
    2083             numTouchEventListeners += eventListeners(name).size();
     2082#if ENABLE(TOUCH_EVENTS)
     2083        if (RuntimeEnabledFeatures::sharedFeatures().mouseEventsSimulationEnabled()) {
     2084            for (auto& name : eventNames().extendedTouchRelatedEventNames())
     2085                numTouchEventListeners += eventListeners(name).size();
     2086        } else {
     2087#endif
     2088            for (auto& name : eventNames().touchRelatedEventNames())
     2089                numTouchEventListeners += eventListeners(name).size();
     2090#if ENABLE(TOUCH_EVENTS)
     2091        }
     2092#endif
    20842093
    20852094        for (unsigned i = 0; i < numTouchEventListeners; ++i) {
     
    21262135    if (eventNames().isWheelEventType(eventType))
    21272136        targetNode->document().didAddWheelEventHandler(*targetNode);
    2128     else if (eventNames().isTouchEventType(eventType))
     2137    else if (eventNames().isTouchRelatedEventType(eventType))
    21292138        targetNode->document().didAddTouchEventHandler(*targetNode);
    21302139
     
    21412150
    21422151#if ENABLE(TOUCH_EVENTS)
    2143     if (eventNames().isTouchEventType(eventType))
     2152    if (eventNames().isTouchRelatedEventType(eventType))
    21442153        targetNode->document().addTouchEventListener(*targetNode);
    21452154#endif
     
    21682177    if (eventNames().isWheelEventType(eventType))
    21692178        targetNode->document().didRemoveWheelEventHandler(*targetNode);
    2170     else if (eventNames().isTouchEventType(eventType))
     2179    else if (eventNames().isTouchRelatedEventType(eventType))
    21712180        targetNode->document().didRemoveTouchEventHandler(*targetNode);
    21722181
     
    21822191
    21832192#if ENABLE(TOUCH_EVENTS)
    2184     if (eventNames().isTouchEventType(eventType))
     2193    if (eventNames().isTouchRelatedEventType(eventType))
    21852194        targetNode->document().removeTouchEventListener(*targetNode);
    21862195#endif
     
    24782487                frame->eventHandler().defaultWheelEventHandler(startNode, downcast<WheelEvent>(event));
    24792488#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS_FAMILY)
    2480     } else if (is<TouchEvent>(event) && eventNames().isTouchEventType(eventType)) {
     2489    } else if (is<TouchEvent>(event) && eventNames().isTouchRelatedEventType(eventType)) {
    24812490        RenderObject* renderer = this->renderer();
    24822491        while (renderer && (!is<RenderBox>(*renderer) || !downcast<RenderBox>(*renderer).canBeScrolledAndHasScrollableArea()))
  • trunk/Source/WebCore/dom/ios/PointerEventIOS.cpp

    r240943 r241432  
    3333namespace WebCore {
    3434
    35 static AtomicString eventType(PlatformTouchPoint::TouchPhaseType phase)
     35static AtomicString pointerEventType(PlatformTouchPoint::TouchPhaseType phase)
    3636{
    3737    switch (phase) {
     
    6161{
    6262    auto phase = event.touchPhaseAtIndex(index);
    63     return adoptRef(*new PointerEvent(eventType(phase), event, phaseIsCancelable(phase), index, isPrimary, WTFMove(view)));
     63    return adoptRef(*new PointerEvent(pointerEventType(phase), event, phaseIsCancelable(phase), index, isPrimary, WTFMove(view)));
    6464}
    6565
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r240661 r241432  
    18121812        if (eventNames().isWheelEventType(eventType))
    18131813            document->didAddWheelEventHandler(*document);
    1814         else if (eventNames().isTouchEventType(eventType))
     1814        else if (eventNames().isTouchRelatedEventType(eventType))
    18151815            document->didAddTouchEventHandler(*document);
    18161816        else if (eventType == eventNames().storageEvent)
     
    18271827#endif
    18281828#if ENABLE(IOS_TOUCH_EVENTS)
    1829     else if (eventNames().isTouchEventType(eventType))
     1829    else if (eventNames().isTouchRelatedEventType(eventType))
    18301830        ++m_touchAndGestureEventListenerCount;
    18311831#endif
     
    19211921        if (eventNames().isWheelEventType(eventType))
    19221922            document->didRemoveWheelEventHandler(*document);
    1923         else if (eventNames().isTouchEventType(eventType))
     1923        else if (eventNames().isTouchRelatedEventType(eventType))
    19241924            document->didRemoveTouchEventHandler(*document);
    19251925    }
     
    19501950#endif
    19511951#if ENABLE(IOS_TOUCH_EVENTS)
    1952     else if (eventNames().isTouchEventType(eventType)) {
     1952    else if (eventNames().isTouchRelatedEventType(eventType)) {
    19531953        ASSERT(m_touchAndGestureEventListenerCount > 0);
    19541954        --m_touchAndGestureEventListenerCount;
  • trunk/Source/WebCore/page/EventHandler.h

    r240491 r241432  
    607607#endif
    608608
     609#if ENABLE(IOS_TOUCH_EVENTS)
     610    unsigned touchIdentifierForMouseEvents { 0 };
     611#endif
     612
    609613    double m_maxMouseMovedDuration { 0 };
    610614    bool m_didStartDrag { false };
  • trunk/Source/WebCore/page/RuntimeEnabledFeatures.h

    r240444 r241432  
    345345    void setAdClickAttributionEnabled(bool isEnabled) { m_adClickAttributionEnabled = isEnabled; }
    346346
     347#if ENABLE(TOUCH_EVENTS)
     348    bool mouseEventsSimulationEnabled() const { return m_mouseEventsSimulationEnabled; }
     349    void setMouseEventsSimulationEnabled(bool isEnabled) { m_mouseEventsSimulationEnabled = isEnabled; }
     350
     351    bool mousemoveEventHandlingPreventsDefaultEnabled() const { return m_mousemoveEventHandlingPreventsDefaultEnabled; }
     352    void setMousemoveEventHandlingPreventsDefaultEnabled(bool isEnabled) { m_mousemoveEventHandlingPreventsDefaultEnabled = isEnabled; }
     353#endif
     354   
    347355    WEBCORE_EXPORT static RuntimeEnabledFeatures& sharedFeatures();
    348356
     
    522530    bool m_adClickAttributionEnabled { false };
    523531
     532#if ENABLE(TOUCH_EVENTS)
     533    bool m_mouseEventsSimulationEnabled { false };
     534    bool m_mousemoveEventHandlingPreventsDefaultEnabled { false };
     535#endif
     536
    524537    friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
    525538};
  • trunk/Source/WebKit/ChangeLog

    r241401 r241432  
     12019-02-13  Antoine Quint  <graouts@apple.com>
     2
     3        Support simulated mouse events on iOS based on a PlatformTouchEvent
     4        https://bugs.webkit.org/show_bug.cgi?id=194501
     5        <rdar://problem/46910790>
     6
     7        Reviewed by Dean Jackson.
     8
     9        Add two new internal runtime flags to control whether simulated mouse events should be dipatched along with touch events and whether
     10        simulated mousemove events dispatched should automatically trigger the behavior preventDefault() would also trigger. We also ensure
     11        that we correctly create touch tracking regions for mouse events.
     12
     13        * Shared/WebPreferences.yaml:
     14        * UIProcess/WebPageProxy.cpp:
     15        (WebKit::WebPageProxy::updateTouchEventTracking):
     16
    1172019-02-13  Ryosuke Niwa  <rniwa@webkit.org>
    218
  • trunk/Source/WebKit/Shared/WebPreferences.yaml

    r241320 r241432  
    15421542  category: internal
    15431543
     1544MouseEventsSimulationEnabled:
     1545  type: bool
     1546  defaultValue: false
     1547  humanReadableName: "Mouse events simulation"
     1548  humanReadableDescription: "Enable mouse events dispatch along with touch events on iOS"
     1549  webcoreBinding: RuntimeEnabledFeatures
     1550  category: internal
     1551  condition: ENABLE(TOUCH_EVENTS)
     1552
     1553MousemoveEventHandlingPreventsDefaultEnabled:
     1554  type: bool
     1555  defaultValue: false
     1556  humanReadableName: "Prevent default for mousemove events"
     1557  humanReadableDescription: "Allows handling of mousemove events to implicitly call preventDefault() on iOS"
     1558  webcoreBinding: RuntimeEnabledFeatures
     1559  category: internal
     1560  condition: ENABLE(TOUCH_EVENTS)
     1561
    15441562# Deprecated
    15451563
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r241351 r241432  
    25102510        updateTrackingType(m_touchAndPointerEventTracking.touchMoveTracking, names.pointermoveEvent);
    25112511        updateTrackingType(m_touchAndPointerEventTracking.touchEndTracking, names.pointerupEvent);
     2512        updateTrackingType(m_touchAndPointerEventTracking.touchStartTracking, names.mousedownEvent);
     2513        updateTrackingType(m_touchAndPointerEventTracking.touchMoveTracking, names.mousemoveEvent);
     2514        updateTrackingType(m_touchAndPointerEventTracking.touchEndTracking, names.mouseupEvent);
    25122515    }
    25132516#else
Note: See TracChangeset for help on using the changeset viewer.