<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Force mouse events should go through normal mouse event handling code paths"
href="https://bugs.webkit.org/show_bug.cgi?id=143749#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Force mouse events should go through normal mouse event handling code paths"
href="https://bugs.webkit.org/show_bug.cgi?id=143749">bug 143749</a>
from <span class="vcard"><a class="email" href="mailto:simon.fraser@apple.com" title="Simon Fraser (smfr) <simon.fraser@apple.com>"> <span class="fn">Simon Fraser (smfr)</span></a>
</span></b>
<pre>Comment on <span class=""><a href="attachment.cgi?id=250777&action=diff" name="attach_250777" title="Patch">attachment 250777</a> <a href="attachment.cgi?id=250777&action=edit" title="Patch">[details]</a></span>
Patch
View in context: <a href="https://bugs.webkit.org/attachment.cgi?id=250777&action=review">https://bugs.webkit.org/attachment.cgi?id=250777&action=review</a>
I would love to see some testing added in this page. I worry that if we don't add testing now, we'll never add it.
<span class="quote">> Source/WebCore/dom/Element.cpp:257
> + if (platformEvent.type() == PlatformEvent::MouseForceChanged && !document().hasListenerType(Document::FORCECHANGED_LISTENER))
> + return false;
> + if (platformEvent.type() == PlatformEvent::MouseForceDown && !document().hasListenerType(Document::FORCEDOWN_LISTENER))
> + return false;
> + if (platformEvent.type() == PlatformEvent::MouseForceUp && !document().hasListenerType(Document::FORCEUP_LISTENER))
> + return false;</span >
A little helper that maps Document::*_LISTENER to PlatformEvent::Mouse* types would make this cleaner.
<span class="quote">> Source/WebCore/page/EventHandler.cpp:2116
> + if (m_frameSetBeingResized)
> + return !dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, m_frameSetBeingResized.get(), false, 0, event, false);</span >
Weird. What's this about?
<span class="quote">> Source/WebCore/page/EventHandler.cpp:2135
> + if (m_frameSetBeingResized) {
> + dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + return !dispatchMouseEvent(eventNames().webkitmouseforcedownEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + }</span >
Same.
<span class="quote">> Source/WebCore/page/EventHandler.cpp:2164
> +bool EventHandler::handleMouseForceUpEvent(const PlatformMouseEvent& event)
> +{
> + RefPtr<FrameView> protector(m_frame.view());
> +
> + setLastKnownMousePosition(event);
> +
> + if (m_frameSetBeingResized) {
> + dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + return !dispatchMouseEvent(eventNames().webkitmouseforceupEvent, m_frameSetBeingResized.get(), false, 0, event, false);
> + }
> +
> + HitTestRequest::HitTestRequestType hitType = HitTestRequest::DisallowShadowContent | HitTestRequest::Active;
> +
> + HitTestRequest request(hitType);
> + MouseEventWithHitTestResults mouseEvent = prepareMouseEvent(request, event);
> +
> + dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, mouseEvent.targetNode(), false, 0, event, false);
> + return !dispatchMouseEvent(eventNames().webkitmouseforceupEvent, mouseEvent.targetNode(), false, 0, event, false);
> +}</span >
Lots of very similar-looking code here. Can it be shared?
<span class="quote">> Source/WebCore/page/EventHandler.cpp:2178
> +bool EventHandler::handleMouseForceChangedEvent(const PlatformMouseEvent& )
> +{
> +}
> +
> +bool EventHandler::handleMouseForceDownEvent(const PlatformMouseEvent&)
> +{
> +}
> +
> +bool EventHandler::handleMouseForceUpEvent(const PlatformMouseEvent&)
> +{
> +}</span >
These need to return false.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>