<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[182956] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/182956">182956</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-04-17 10:33:21 -0700 (Fri, 17 Apr 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/182912">r182912</a> and <a href="http://trac.webkit.org/projects/webkit/changeset/182920">r182920</a>.
https://bugs.webkit.org/show_bug.cgi?id=143881

Build breakage in some configurations (Requested by ap on
#webkit).

Reverted changesets:

&quot;Force mouse events should go through normal mouse event
handling code paths&quot;
https://bugs.webkit.org/show_bug.cgi?id=143749
http://trac.webkit.org/changeset/182912

http://trac.webkit.org/changeset/182920</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformeflTestExpectations">trunk/LayoutTests/platform/efl/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformgtkTestExpectations">trunk/LayoutTests/platform/gtk/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformiossimulatorTestExpectations">trunk/LayoutTests/platform/ios-simulator/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacmavericksTestExpectations">trunk/LayoutTests/platform/mac-mavericks/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformwinTestExpectations">trunk/LayoutTests/platform/win/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDocumentcpp">trunk/Source/WebCore/dom/Document.cpp</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlercpp">trunk/Source/WebCore/page/EventHandler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageEventHandlerh">trunk/Source/WebCore/page/EventHandler.h</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformEventh">trunk/Source/WebCore/platform/PlatformEvent.h</a></li>
<li><a href="#trunkSourceWebCorereplayUserInputBridgecpp">trunk/Source/WebCore/replay/UserInputBridge.cpp</a></li>
<li><a href="#trunkSourceWebCorereplayUserInputBridgeh">trunk/Source/WebCore/replay/UserInputBridge.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedNativeWebMouseEventh">trunk/Source/WebKit2/Shared/NativeWebMouseEvent.h</a></li>
<li><a href="#trunkSourceWebKit2SharedWebEventh">trunk/Source/WebKit2/Shared/WebEvent.h</a></li>
<li><a href="#trunkSourceWebKit2SharedWebEventConversioncpp">trunk/Source/WebKit2/Shared/WebEventConversion.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedmacNativeWebMouseEventMacmm">trunk/Source/WebKit2/Shared/mac/NativeWebMouseEventMac.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedmacWebEventFactoryh">trunk/Source/WebKit2/Shared/mac/WebEventFactory.h</a></li>
<li><a href="#trunkSourceWebKit2SharedmacWebEventFactorymm">trunk/Source/WebKit2/Shared/mac/WebEventFactory.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsNetscapex11NetscapePluginX11cpp">trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPageh">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagemessagesin">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacWebPageMacmm">trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsWebKitTestRunnerEventSenderProxyh">trunk/Tools/WebKitTestRunner/EventSenderProxy.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleBindingsEventSendingControlleridl">trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleEventSendingControllercpp">trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleEventSendingControllerh">trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h</a></li>
<li><a href="#trunkToolsWebKitTestRunnerTestControllercpp">trunk/Tools/WebKitTestRunner/TestController.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnermacEventSenderProxymm">trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfasteventsmouseforcechangedexpectedtxt">trunk/LayoutTests/fast/events/mouse-force-changed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsmouseforcechangedhtml">trunk/LayoutTests/fast/events/mouse-force-changed.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmouseforcedownexpectedtxt">trunk/LayoutTests/fast/events/mouse-force-down-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsmouseforcedownhtml">trunk/LayoutTests/fast/events/mouse-force-down.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsmouseforceupexpectedtxt">trunk/LayoutTests/fast/events/mouse-force-up-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsmouseforceuphtml">trunk/LayoutTests/fast/events/mouse-force-up.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/ChangeLog        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-04-17  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r182912 and r182920.
+        https://bugs.webkit.org/show_bug.cgi?id=143881
+
+        Build breakage in some configurations (Requested by ap on
+        #webkit).
+
+        Reverted changesets:
+
+        &quot;Force mouse events should go through normal mouse event
+        handling code paths&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=143749
+        http://trac.webkit.org/changeset/182912
+
+        http://trac.webkit.org/changeset/182920
+
</ins><span class="cx"> 2015-04-17  Marcos Chavarría Teijeiro  &lt;chavarria1991@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] Gardening 17th April.
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsmouseforcechangedexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/mouse-force-changed-expected.txt (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/mouse-force-changed-expected.txt        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/fast/events/mouse-force-changed-expected.txt        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1 +0,0 @@
</span><del>-Success! The mouseforcechanged event was dispatched.
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmouseforcechangedhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/mouse-force-changed.html (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/mouse-force-changed.html        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/fast/events/mouse-force-changed.html        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,43 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-#forceSensor {
-    width: 200px;
-    height: 200px;
-    border: 2px solid black;
-}
-&lt;/style&gt;
-&lt;script&gt;
-
-function forceChanged()
-{
-    var console = document.getElementById(&quot;console&quot;);
-    console.innerHTML = &quot;Success! The mouseforcechanged event was dispatched.&quot;;
-    testRunner.notifyDone();
-}
-
-function startTest()
-{
-    var forceSensor = document.getElementById(&quot;forceSensor&quot;);
-    forceSensor.addEventListener(&quot;webkitmouseforcechanged&quot;, forceChanged, false);
-
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
-
-    if (window.eventSender) {
-        eventSender.mouseMoveTo(100, 100);
-        eventSender.mouseForceChanged(1.5);
-    }
-}
-&lt;/script&gt;
-&lt;/head&gt;
-
-&lt;body onload=&quot;startTest()&quot;&gt;
-
-&lt;div id=&quot;forceSensor&quot;&gt;&lt;/div&gt;
-&lt;pre id=&quot;console&quot;&gt;Failed. This test must be run in the test harness.&lt;/pre&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsmouseforcedownexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/mouse-force-down-expected.txt (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/mouse-force-down-expected.txt        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/fast/events/mouse-force-down-expected.txt        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1 +0,0 @@
</span><del>-Success! The mouseforcedown event was dispatched.
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmouseforcedownhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/mouse-force-down.html (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/mouse-force-down.html        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/fast/events/mouse-force-down.html        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,43 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-#forceSensor {
-    width: 200px;
-    height: 200px;
-    border: 2px solid black;
-}
-&lt;/style&gt;
-&lt;script&gt;
-
-function forceDown()
-{
-    var console = document.getElementById(&quot;console&quot;);
-    console.innerHTML = &quot;Success! The mouseforcedown event was dispatched.&quot;;
-    testRunner.notifyDone();
-}
-
-function startTest()
-{
-    var forceSensor = document.getElementById(&quot;forceSensor&quot;);
-    forceSensor.addEventListener(&quot;webkitmouseforcedown&quot;, forceDown, false);
-
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
-
-    if (window.eventSender) {
-        eventSender.mouseMoveTo(100, 100);
-        eventSender.mouseForceDown();
-    }
-}
-&lt;/script&gt;
-&lt;/head&gt;
-
-&lt;body onload=&quot;startTest()&quot;&gt;
-
-&lt;div id=&quot;forceSensor&quot;&gt;&lt;/div&gt;
-&lt;pre id=&quot;console&quot;&gt;Failed. This test must be run in the test harness.&lt;/pre&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsmouseforceupexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/mouse-force-up-expected.txt (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/mouse-force-up-expected.txt        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/fast/events/mouse-force-up-expected.txt        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1 +0,0 @@
</span><del>-Success! The mouseforceup event was dispatched.
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsmouseforceuphtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/mouse-force-up.html (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/mouse-force-up.html        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/fast/events/mouse-force-up.html        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-#forceSensor {
-    width: 200px;
-    height: 200px;
-    border: 2px solid black;
-}
-&lt;/style&gt;
-&lt;script&gt;
-
-function forceUp()
-{
-    var console = document.getElementById(&quot;console&quot;);
-    console.innerHTML = &quot;Success! The mouseforceup event was dispatched.&quot;;
-    testRunner.notifyDone();
-}
-
-function startTest()
-{
-    var forceSensor = document.getElementById(&quot;forceSensor&quot;);
-    forceSensor.addEventListener(&quot;webkitmouseforceup&quot;, forceUp, false);
-
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
-
-    if (window.eventSender) {
-        eventSender.mouseMoveTo(100, 100);
-        eventSender.mouseForceDown();
-        eventSender.mouseForceUp();
-    }
-}
-&lt;/script&gt;
-&lt;/head&gt;
-
-&lt;body onload=&quot;startTest()&quot;&gt;
-
-&lt;div id=&quot;forceSensor&quot;&gt;&lt;/div&gt;
-&lt;pre id=&quot;console&quot;&gt;Failed. This test must be run in the test harness.&lt;/pre&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformeflTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/TestExpectations (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/TestExpectations        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/platform/efl/TestExpectations        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -68,11 +68,6 @@
</span><span class="cx"> animations/trigger-container-scroll-simple.html [ Skip ]
</span><span class="cx"> animations/trigger-container-scroll-boundaries.html [ Skip ]
</span><span class="cx"> 
</span><del>-# No support for force events
-fast/events/mouse-force-changed.html [ Skip ]
-fast/events/mouse-force-down.html [ Skip ]
-fast/events/mouse-force-up.html [ Skip ]
-
</del><span class="cx"> # ----------------------------------------
</span><span class="cx"> # Tests which also fail in other platforms
</span><span class="cx"> # ----------------------------------------
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/platform/gtk/TestExpectations        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -638,11 +638,6 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/143703 fast/forms/listbox-visible-size.html [ Failure ]
</span><span class="cx"> 
</span><del>-# No support for force events
-fast/events/mouse-force-changed.html [ Skip ]
-fast/events/mouse-force-down.html [ Skip ]
-fast/events/mouse-force-up.html [ Skip ]
-
</del><span class="cx"> #////////////////////////////////////////////////////////////////////////////////////////
</span><span class="cx"> # End of Expected failures
</span><span class="cx"> #////////////////////////////////////////////////////////////////////////////////////////
</span></span></pre></div>
<a id="trunkLayoutTestsplatformiossimulatorTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/ios-simulator/TestExpectations        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -204,11 +204,6 @@
</span><span class="cx"> http/tests/local/fileapi/send-dragged-file.html
</span><span class="cx"> http/tests/local/fileapi/send-sliced-dragged-file.html
</span><span class="cx"> 
</span><del>-# No support for force events
-fast/events/mouse-force-changed.html [ Skip ]
-fast/events/mouse-force-down.html [ Skip ]
-fast/events/mouse-force-up.html [ Skip ]
-
</del><span class="cx"> ###
</span><span class="cx"> # Known failures
</span><span class="cx"> ##
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacmavericksTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-mavericks/TestExpectations (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-mavericks/TestExpectations        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/platform/mac-mavericks/TestExpectations        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,7 +1,2 @@
</span><span class="cx"> # https://bugs.webkit.org/show_bug.cgi?id=143258
</span><span class="cx"> http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html
</span><del>-
-# No support for force events
-fast/events/mouse-force-changed.html [ Skip ]
-fast/events/mouse-force-down.html [ Skip ]
-fast/events/mouse-force-up.html [ Skip ]
</del></span></pre></div>
<a id="trunkLayoutTestsplatformwinTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/TestExpectations (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/TestExpectations        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/LayoutTests/platform/win/TestExpectations        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -603,11 +603,6 @@
</span><span class="cx"> animations/trigger-container-scroll-simple.html [ Skip ]
</span><span class="cx"> animations/trigger-container-scroll-boundaries.html [ Skip ]
</span><span class="cx"> 
</span><del>-# No support for force events
-fast/events/mouse-force-changed.html [ Skip ]
-fast/events/mouse-force-down.html [ Skip ]
-fast/events/mouse-force-up.html [ Skip ]
-
</del><span class="cx"> ################################################################################
</span><span class="cx"> ###########    End Missing Functionality Prevents Testing         ##############
</span><span class="cx"> ################################################################################
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/ChangeLog        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-04-17  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r182912 and r182920.
+        https://bugs.webkit.org/show_bug.cgi?id=143881
+
+        Build breakage in some configurations (Requested by ap on
+        #webkit).
+
+        Reverted changesets:
+
+        &quot;Force mouse events should go through normal mouse event
+        handling code paths&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=143749
+        http://trac.webkit.org/changeset/182912
+
+        http://trac.webkit.org/changeset/182920
+
</ins><span class="cx"> 2015-04-17  Said Abou-Hallawa  &lt;sabouhallawa@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix review comments for https://bugs.webkit.org/show_bug.cgi?id=143590
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/dom/Document.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -3966,22 +3966,6 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool Document::hasListenerTypeForEventType(PlatformEvent::Type eventType) const
-{
-    switch (eventType) {
-    case PlatformEvent::MouseForceChanged:
-        return m_listenerTypes &amp; Document::FORCECHANGED_LISTENER;
-    case PlatformEvent::MouseForceDown:
-        return m_listenerTypes &amp; Document::FORCEDOWN_LISTENER;
-    case PlatformEvent::MouseForceUp:
-        return m_listenerTypes &amp; Document::FORCEUP_LISTENER;
-    case PlatformEvent::MouseScroll:
-        return m_listenerTypes &amp; Document::SCROLL_LISTENER;
-    default:
-        return false;
-    }
-}
-
</del><span class="cx"> void Document::addListenerTypeIfNeeded(const AtomicString&amp; eventType)
</span><span class="cx"> {
</span><span class="cx">     if (eventType == eventNames().DOMSubtreeModifiedEvent)
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/dom/Document.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> #include &quot;FontSelector.h&quot;
</span><span class="cx"> #include &quot;MutationObserver.h&quot;
</span><span class="cx"> #include &quot;PageVisibilityState.h&quot;
</span><del>-#include &quot;PlatformEvent.h&quot;
</del><span class="cx"> #include &quot;PlatformScreen.h&quot;
</span><span class="cx"> #include &quot;ReferrerPolicy.h&quot;
</span><span class="cx"> #include &quot;Region.h&quot;
</span><span class="lines">@@ -781,7 +780,6 @@
</span><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     bool hasListenerType(ListenerType listenerType) const { return (m_listenerTypes &amp; listenerType); }
</span><del>-    bool hasListenerTypeForEventType(PlatformEvent::Type) const;
</del><span class="cx">     void addListenerTypeIfNeeded(const AtomicString&amp; eventType);
</span><span class="cx"> 
</span><span class="cx">     bool hasMutationObserversOfType(MutationObserver::MutationType type) const
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/dom/Element.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -244,19 +244,11 @@
</span><span class="cx">     return computeEditability(UserSelectAllIsAlwaysNonEditable, ShouldUpdateStyle::Update) != Editability::ReadOnly;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool isForceEvent(const PlatformMouseEvent&amp; platformEvent)
-{
-    return platformEvent.type() == PlatformEvent::MouseForceChanged || platformEvent.type() == PlatformEvent::MouseForceDown || platformEvent.type() == PlatformEvent::MouseForceUp;
-}
-
</del><span class="cx"> bool Element::dispatchMouseEvent(const PlatformMouseEvent&amp; platformEvent, const AtomicString&amp; eventType, int detail, Element* relatedTarget)
</span><span class="cx"> {
</span><span class="cx">     if (isDisabledFormControl())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (isForceEvent(platformEvent) &amp;&amp; !document().hasListenerTypeForEventType(platformEvent.type()))
-        return false;
-
</del><span class="cx">     RefPtr&lt;MouseEvent&gt; mouseEvent = MouseEvent::create(eventType, document().defaultView(), platformEvent, detail, relatedTarget);
</span><span class="cx"> 
</span><span class="cx">     if (mouseEvent-&gt;type().isEmpty())
</span><span class="lines">@@ -2261,6 +2253,54 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void Element::dispatchMouseForceChanged(float force)
+{
+    if (!document().hasListenerType(Document::FORCECHANGED_LISTENER))
+        return;
+
+    Frame* frame = document().frame();
+    if (!frame)
+        return;
+
+    PlatformMouseEvent platformMouseEvent(frame-&gt;eventHandler().lastKnownMousePosition(), frame-&gt;eventHandler().lastKnownMouseGlobalPosition(), NoButton, PlatformEvent::NoType, 1, false, false, false, false, WTF::currentTime(), force);
+    RefPtr&lt;MouseEvent&gt; mouseForceChangedEvent =  MouseEvent::create(eventNames().webkitmouseforcechangedEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
+
+    mouseForceChangedEvent-&gt;setTarget(this);
+    dispatchEvent(mouseForceChangedEvent);
+}
+
+void Element::dispatchMouseForceDown()
+{
+    if (!document().hasListenerType(Document::FORCEDOWN_LISTENER))
+        return;
+
+    Frame* frame = document().frame();
+    if (!frame)
+        return;
+
+    PlatformMouseEvent platformMouseEvent(frame-&gt;eventHandler().lastKnownMousePosition(), frame-&gt;eventHandler().lastKnownMouseGlobalPosition(), NoButton, PlatformEvent::NoType, 1, false, false, false, false, WTF::currentTime(), ForceAtForceClick);
+    RefPtr&lt;MouseEvent&gt; mouseForceDownEvent =  MouseEvent::create(eventNames().webkitmouseforcedownEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
+
+    mouseForceDownEvent-&gt;setTarget(this);
+    dispatchEvent(mouseForceDownEvent);
+}
+
+void Element::dispatchMouseForceUp()
+{
+    if (!document().hasListenerType(Document::FORCEUP_LISTENER))
+        return;
+
+    Frame* frame = document().frame();
+    if (!frame)
+        return;
+
+    PlatformMouseEvent platformMouseEvent(frame-&gt;eventHandler().lastKnownMousePosition(), frame-&gt;eventHandler().lastKnownMouseGlobalPosition(), NoButton, PlatformEvent::NoType, 1, false, false, false, false, WTF::currentTime(), ForceAtForceClick);
+    RefPtr&lt;MouseEvent&gt; mouseForceUpEvent =  MouseEvent::create(eventNames().webkitmouseforceupEvent, document().defaultView(), platformMouseEvent, 0, nullptr);
+
+    mouseForceUpEvent-&gt;setTarget(this);
+    dispatchEvent(mouseForceUpEvent);
+}
+
</ins><span class="cx"> void Element::dispatchMouseForceClick()
</span><span class="cx"> {
</span><span class="cx">     if (!document().hasListenerType(Document::FORCECLICK_LISTENER))
</span><span class="lines">@@ -2300,6 +2340,18 @@
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void Element::dispatchMouseForceChanged(float)
+{
+}
+
+void Element::dispatchMouseForceDown()
+{
+}
+
+void Element::dispatchMouseForceUp()
+{
+}
+
</ins><span class="cx"> void Element::dispatchMouseForceClick()
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/dom/Element.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -469,6 +469,9 @@
</span><span class="cx">     virtual void dispatchBlurEvent(RefPtr&lt;Element&gt;&amp;&amp; newFocusedElement);
</span><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT bool dispatchMouseForceWillBegin();
</span><ins>+    WEBCORE_EXPORT void dispatchMouseForceChanged(float force);
+    WEBCORE_EXPORT void dispatchMouseForceDown();
+    WEBCORE_EXPORT void dispatchMouseForceUp();
</ins><span class="cx">     WEBCORE_EXPORT void dispatchMouseForceClick();
</span><span class="cx">     WEBCORE_EXPORT void dispatchMouseForceCancelled();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/page/EventHandler.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -2104,33 +2104,6 @@
</span><span class="cx">     return swallowMouseUpEvent || swallowClickEvent || swallowMouseReleaseEvent;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(MOUSE_FORCE_EVENTS)
-bool EventHandler::handleMouseForceEvent(const PlatformMouseEvent&amp; event)
-{
-    RefPtr&lt;FrameView&gt; protector(m_frame.view());
-
-    setLastKnownMousePosition(event);
-
-    HitTestRequest::HitTestRequestType hitType = HitTestRequest::DisallowShadowContent | HitTestRequest::Active;
-
-    HitTestRequest request(hitType);
-    MouseEventWithHitTestResults mouseEvent = prepareMouseEvent(request, event);
-
-    bool swallowedEvent = !dispatchMouseEvent(eventNames().webkitmouseforcechangedEvent, mouseEvent.targetNode(), false, 0, event, false);
-    if (event.type() == PlatformEvent::MouseForceDown)
-        swallowedEvent |= !dispatchMouseEvent(eventNames().webkitmouseforcedownEvent, mouseEvent.targetNode(), false, 0, event, false);
-    if (event.type() == PlatformEvent::MouseForceUp)
-        swallowedEvent |= !dispatchMouseEvent(eventNames().webkitmouseforceupEvent, mouseEvent.targetNode(), false, 0, event, false);
-
-    return swallowedEvent;
-}
-#else
-bool EventHandler::handleMouseForceEvent(const PlatformMouseEvent&amp; )
-{
-    return false;
-}
-#endif // #if ENABLE(MOUSE_FORCE_EVENTS)
-
</del><span class="cx"> bool EventHandler::handlePasteGlobalSelection(const PlatformMouseEvent&amp; platformMouseEvent)
</span><span class="cx"> {
</span><span class="cx">     // If the event was a middle click, attempt to copy global selection in after
</span></span></pre></div>
<a id="trunkSourceWebCorepageEventHandlerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/EventHandler.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/EventHandler.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/page/EventHandler.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -202,7 +202,6 @@
</span><span class="cx">     WEBCORE_EXPORT bool handleMousePressEvent(const PlatformMouseEvent&amp;);
</span><span class="cx">     bool handleMouseMoveEvent(const PlatformMouseEvent&amp;, HitTestResult* hoveredNode = 0, bool onlyUpdateScrollbars = false);
</span><span class="cx">     WEBCORE_EXPORT bool handleMouseReleaseEvent(const PlatformMouseEvent&amp;);
</span><del>-    bool handleMouseForceEvent(const PlatformMouseEvent&amp;);
</del><span class="cx">     WEBCORE_EXPORT bool handleWheelEvent(const PlatformWheelEvent&amp;);
</span><span class="cx">     void defaultWheelEventHandler(Node*, WheelEvent*);
</span><span class="cx">     bool handlePasteGlobalSelection(const PlatformMouseEvent&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformEvent.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformEvent.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/platform/PlatformEvent.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -43,9 +43,6 @@
</span><span class="cx">         MouseMoved,
</span><span class="cx">         MousePressed,
</span><span class="cx">         MouseReleased,
</span><del>-        MouseForceChanged,
-        MouseForceDown,
-        MouseForceUp,
</del><span class="cx">         MouseScroll,
</span><span class="cx"> 
</span><span class="cx">         // PlatformWheelEvent
</span></span></pre></div>
<a id="trunkSourceWebCorereplayUserInputBridgecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/replay/UserInputBridge.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/replay/UserInputBridge.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/replay/UserInputBridge.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -147,11 +147,6 @@
</span><span class="cx">     return m_page.mainFrame().eventHandler().passMouseMovedEventToScrollbars(mouseEvent);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool UserInputBridge::handleMouseForceEvent(const PlatformMouseEvent&amp; mouseEvent, InputSource)
-{
-    return m_page.mainFrame().eventHandler().handleMouseForceEvent(mouseEvent);
-}
-
</del><span class="cx"> bool UserInputBridge::handleKeyEvent(const PlatformKeyboardEvent&amp; keyEvent, InputSource inputSource)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(WEB_REPLAY)
</span></span></pre></div>
<a id="trunkSourceWebCorereplayUserInputBridgeh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/replay/UserInputBridge.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/replay/UserInputBridge.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebCore/replay/UserInputBridge.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -78,7 +78,6 @@
</span><span class="cx">     WEBCORE_EXPORT bool handleMouseReleaseEvent(const PlatformMouseEvent&amp;, InputSource source = InputSource::User);
</span><span class="cx">     WEBCORE_EXPORT bool handleMouseMoveEvent(const PlatformMouseEvent&amp;, InputSource source = InputSource::User);
</span><span class="cx">     WEBCORE_EXPORT bool handleMouseMoveOnScrollbarEvent(const PlatformMouseEvent&amp;, InputSource source = InputSource::User);
</span><del>-    WEBCORE_EXPORT bool handleMouseForceEvent(const PlatformMouseEvent&amp;, InputSource = InputSource::User);
</del><span class="cx">     WEBCORE_EXPORT bool handleWheelEvent(const PlatformWheelEvent&amp;, InputSource source = InputSource::User);
</span><span class="cx">     WEBCORE_EXPORT bool handleKeyEvent(const PlatformKeyboardEvent&amp;, InputSource source = InputSource::User);
</span><span class="cx">     WEBCORE_EXPORT bool handleAccessKeyEvent(const PlatformKeyboardEvent&amp;, InputSource source = InputSource::User);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/ChangeLog        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-04-17  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r182912 and r182920.
+        https://bugs.webkit.org/show_bug.cgi?id=143881
+
+        Build breakage in some configurations (Requested by ap on
+        #webkit).
+
+        Reverted changesets:
+
+        &quot;Force mouse events should go through normal mouse event
+        handling code paths&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=143749
+        http://trac.webkit.org/changeset/182912
+
+        http://trac.webkit.org/changeset/182920
+
</ins><span class="cx"> 2015-04-17  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Network Cache: Read resource record and body in parallel
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedNativeWebMouseEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/NativeWebMouseEvent.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/NativeWebMouseEvent.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/Shared/NativeWebMouseEvent.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> class NativeWebMouseEvent : public WebMouseEvent {
</span><span class="cx"> public:
</span><span class="cx"> #if USE(APPKIT)
</span><del>-    NativeWebMouseEvent(NSEvent *, NSEvent *lastPressureEvent, NSView *);
</del><ins>+    NativeWebMouseEvent(NSEvent *, NSEvent *pressureEvent, NSView *);
</ins><span class="cx"> #elif PLATFORM(GTK)
</span><span class="cx">     NativeWebMouseEvent(const NativeWebMouseEvent&amp;);
</span><span class="cx">     NativeWebMouseEvent(GdkEvent*, int);
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebEventh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebEvent.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebEvent.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/Shared/WebEvent.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -58,9 +58,6 @@
</span><span class="cx">         MouseDown,
</span><span class="cx">         MouseUp,
</span><span class="cx">         MouseMove,
</span><del>-        MouseForceChanged,
-        MouseForceDown,
-        MouseForceUp,
</del><span class="cx"> 
</span><span class="cx">         // WebWheelEvent
</span><span class="cx">         Wheel,
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebEventConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebEventConversion.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebEventConversion.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/Shared/WebEventConversion.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -48,18 +48,6 @@
</span><span class="cx">             m_type = WebCore::PlatformEvent::MouseMoved;
</span><span class="cx">             m_force = webEvent.force();
</span><span class="cx">             break;
</span><del>-        case WebEvent::MouseForceChanged:
-            m_type = WebCore::PlatformEvent::MouseForceChanged;
-            m_force = webEvent.force();
-            break;
-        case WebEvent::MouseForceDown:
-            m_type = WebCore::PlatformEvent::MouseForceDown;
-            m_force = WebCore::ForceAtForceClick;
-            break;
-        case WebEvent::MouseForceUp:
-            m_type = WebCore::PlatformEvent::MouseForceUp;
-            m_force = WebCore::ForceAtForceClick;
-            break;
</del><span class="cx">         default:
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacNativeWebMouseEventMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/NativeWebMouseEventMac.mm (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/NativeWebMouseEventMac.mm        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/Shared/mac/NativeWebMouseEventMac.mm        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -32,8 +32,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-NativeWebMouseEvent::NativeWebMouseEvent(NSEvent *event, NSEvent *lastPressureEvent, NSView *view)
-    : WebMouseEvent(WebEventFactory::createWebMouseEvent(event, lastPressureEvent, view))
</del><ins>+NativeWebMouseEvent::NativeWebMouseEvent(NSEvent *event, NSEvent *pressureEvent, NSView *view)
+    : WebMouseEvent(WebEventFactory::createWebMouseEvent(event, pressureEvent, view))
</ins><span class="cx">     , m_nativeEvent(event)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacWebEventFactoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/WebEventFactory.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/WebEventFactory.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/Shared/mac/WebEventFactory.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> class WebEventFactory {
</span><span class="cx"> public:
</span><span class="cx"> #if USE(APPKIT)
</span><del>-    static WebMouseEvent createWebMouseEvent(NSEvent *, NSEvent *lastPressureEvent, NSView *windowView);
</del><ins>+    static WebMouseEvent createWebMouseEvent(NSEvent *, NSEvent *pressureEvent, NSView *windowView);
</ins><span class="cx">     static WebWheelEvent createWebWheelEvent(NSEvent *, NSView *windowView);
</span><span class="cx">     static WebKeyboardEvent createWebKeyboardEvent(NSEvent *, bool handledByInputMethod, const Vector&lt;WebCore::KeypressCommand&gt;&amp;);
</span><span class="cx">     static bool shouldBeHandledAsContextClick(const WebCore::PlatformMouseEvent&amp;);
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacWebEventFactorymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/WebEventFactory.mm (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/WebEventFactory.mm        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/Shared/mac/WebEventFactory.mm        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -76,9 +76,6 @@
</span><span class="cx">         case NSOtherMouseUp:
</span><span class="cx">         case NSOtherMouseDragged:
</span><span class="cx">             return WebMouseEvent::MiddleButton;
</span><del>-#if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-        case NSEventTypePressure:
-#endif
</del><span class="cx">         case NSMouseEntered:
</span><span class="cx">         case NSMouseExited:
</span><span class="cx">             return currentMouseButton();
</span><span class="lines">@@ -159,57 +156,51 @@
</span><span class="cx"> static NSPoint globalPointForEvent(NSEvent *event)
</span><span class="cx"> {
</span><span class="cx">     switch ([event type]) {
</span><del>-#if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-    case NSEventTypePressure:
-#endif
-    case NSLeftMouseDown:
-    case NSLeftMouseDragged:
-    case NSLeftMouseUp:
-    case NSMouseEntered:
-    case NSMouseExited:
-    case NSMouseMoved:
-    case NSOtherMouseDown:
-    case NSOtherMouseDragged:
-    case NSOtherMouseUp:
-    case NSRightMouseDown:
-    case NSRightMouseDragged:
-    case NSRightMouseUp:
-    case NSScrollWheel:
-        return globalPoint([event locationInWindow], [event window]);
-    default:
-        return NSZeroPoint;
</del><ins>+        case NSLeftMouseDown:
+        case NSLeftMouseDragged:
+        case NSLeftMouseUp:
+        case NSMouseEntered:
+        case NSMouseExited:
+        case NSMouseMoved:
+        case NSOtherMouseDown:
+        case NSOtherMouseDragged:
+        case NSOtherMouseUp:
+        case NSRightMouseDown:
+        case NSRightMouseDragged:
+        case NSRightMouseUp:
+        case NSScrollWheel:
+            return globalPoint([event locationInWindow], [event window]);
+        default:
+            return NSZeroPoint;
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static NSPoint pointForEvent(NSEvent *event, NSView *windowView)
</span><span class="cx"> {
</span><span class="cx">     switch ([event type]) {
</span><del>-#if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-    case NSEventTypePressure:
-#endif
-    case NSLeftMouseDown:
-    case NSLeftMouseDragged:
-    case NSLeftMouseUp:
-    case NSMouseEntered:
-    case NSMouseExited:
-    case NSMouseMoved:
-    case NSOtherMouseDown:
-    case NSOtherMouseDragged:
-    case NSOtherMouseUp:
-    case NSRightMouseDown:
-    case NSRightMouseDragged:
-    case NSRightMouseUp:
-    case NSScrollWheel: {
-        // Note: This will have its origin at the bottom left of the window unless windowView is flipped.
-        // In those cases, the Y coordinate gets flipped by Widget::convertFromContainingWindow.
-        NSPoint location = [event locationInWindow];
-        if (windowView)
-            location = [windowView convertPoint:location fromView:nil];
-        return location;
</del><ins>+        case NSLeftMouseDown:
+        case NSLeftMouseDragged:
+        case NSLeftMouseUp:
+        case NSMouseEntered:
+        case NSMouseExited:
+        case NSMouseMoved:
+        case NSOtherMouseDown:
+        case NSOtherMouseDragged:
+        case NSOtherMouseUp:
+        case NSRightMouseDown:
+        case NSRightMouseDragged:
+        case NSRightMouseUp:
+        case NSScrollWheel: {
+            // Note: This will have its origin at the bottom left of the window unless windowView is flipped.
+            // In those cases, the Y coordinate gets flipped by Widget::convertFromContainingWindow.
+            NSPoint location = [event locationInWindow];
+            if (windowView)
+                location = [windowView convertPoint:location fromView:nil];
+            return location;
+        }
+        default:
+            return NSZeroPoint;
</ins><span class="cx">     }
</span><del>-    default:
-        return NSZeroPoint;
-    }
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static WebWheelEvent::Phase phaseForEvent(NSEvent *event)
</span><span class="lines">@@ -367,40 +358,25 @@
</span><span class="cx">     return (static_cast&lt;NSMenuType&gt;(event.menuTypeForEvent()) == NSMenuTypeContextMenu);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebMouseEvent WebEventFactory::createWebMouseEvent(NSEvent *event, NSEvent *lastPressureEvent, NSView *windowView)
</del><ins>+WebMouseEvent WebEventFactory::createWebMouseEvent(NSEvent *event, NSEvent *pressureEvent, NSView *windowView)
</ins><span class="cx"> {
</span><span class="cx">     NSPoint position = pointForEvent(event, windowView);
</span><span class="cx">     NSPoint globalPosition = globalPointForEvent(event);
</span><span class="cx"> 
</span><del>-    WebEvent::Type type = mouseEventTypeForEvent(event);
-#if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-    if ([event type] == NSEventTypePressure) {
-        // Since AppKit doesn't send mouse events for force down or force up, we have to use the current pressure
-        // event and lastPressureEvent to detect if this is MouseForceDown, MouseForceUp, or just MouseForceChanged.
-        if (lastPressureEvent.stage == 1 &amp;&amp; event.stage == 2)
-            type = WebEvent::MouseForceDown;
-        else if (lastPressureEvent.stage == 2 &amp;&amp; event.stage == 1)
-            type = WebEvent::MouseForceUp;
-        else
-            type = WebEvent::MouseForceChanged;
-    }
-#endif
</del><ins>+    WebEvent::Type type                     = mouseEventTypeForEvent(event);
+    WebMouseEvent::Button button            = mouseButtonForEvent(event);
+    float deltaX                            = [event deltaX];
+    float deltaY                            = [event deltaY];
+    float deltaZ                            = [event deltaZ];
+    int clickCount                          = clickCountForEvent(event);
+    WebEvent::Modifiers modifiers           = modifiersForEvent(event);
+    double timestamp                        = eventTimeStampSince1970(event);
+    int eventNumber                         = [event eventNumber];
+    int menuTypeForEvent                    = typeForEvent(event);
</ins><span class="cx"> 
</span><del>-    WebMouseEvent::Button button = mouseButtonForEvent(event);
-    float deltaX = [event deltaX];
-    float deltaY = [event deltaY];
-    float deltaZ = [event deltaZ];
-    int clickCount = clickCountForEvent(event);
-    WebEvent::Modifiers modifiers = modifiersForEvent(event);
-    double timestamp = eventTimeStampSince1970(event);
-    int eventNumber = [event eventNumber];
-    int menuTypeForEvent = typeForEvent(event);
-
</del><span class="cx">     double force = 0;
</span><span class="cx"> #if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
</span><del>-    int stage = [event type] == NSEventTypePressure ? event.stage : lastPressureEvent.stage;
-    double pressure = [event type] == NSEventTypePressure ? event.pressure : lastPressureEvent.pressure;
-    force = stage &lt; 1 ? pressure : pressure + stage - 1;
</del><ins>+    force = pressureEvent.stage &lt; 1 ? pressureEvent.pressure : pressureEvent.pressure + pressureEvent.stage - 1;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     return WebMouseEvent(type, button, IntPoint(position), IntPoint(globalPosition), deltaX, deltaY, deltaZ, clickCount, modifiers, timestamp, force, eventNumber, menuTypeForEvent);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1431,17 +1431,13 @@
</span><span class="cx">     if (event == _data-&gt;_pressureEvent)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (_data-&gt;_ignoresNonWheelEvents)
-        return;
-
</del><span class="cx">     if (event.phase != NSEventPhaseChanged &amp;&amp; event.phase != NSEventPhaseBegan &amp;&amp; event.phase != NSEventPhaseEnded)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    NativeWebMouseEvent webEvent(event, _data-&gt;_pressureEvent, self);
-    _data-&gt;_page-&gt;handleMouseEvent(webEvent);
-
</del><span class="cx">     [_data-&gt;_pressureEvent release];
</span><span class="cx">     _data-&gt;_pressureEvent = [event retain];
</span><ins>+
+    _data-&gt;_page-&gt;inputDeviceForceDidChange(event.pressure, event.stage);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -4397,9 +4397,6 @@
</span><span class="cx"> 
</span><span class="cx">     case WebEvent::MouseDown:
</span><span class="cx">     case WebEvent::MouseUp:
</span><del>-    case WebEvent::MouseForceChanged:
-    case WebEvent::MouseForceDown:
-    case WebEvent::MouseForceUp:
</del><span class="cx">     case WebEvent::Wheel:
</span><span class="cx">     case WebEvent::KeyDown:
</span><span class="cx">     case WebEvent::KeyUp:
</span><span class="lines">@@ -4430,10 +4427,6 @@
</span><span class="cx">     case WebEvent::MouseUp:
</span><span class="cx">         m_currentlyProcessedMouseDownEvent = nullptr;
</span><span class="cx">         break;
</span><del>-    case WebEvent::MouseForceChanged:
-    case WebEvent::MouseForceDown:
-    case WebEvent::MouseForceUp:
-        break;
</del><span class="cx"> 
</span><span class="cx">     case WebEvent::Wheel: {
</span><span class="cx">         MESSAGE_CHECK(!m_currentlyProcessedWheelEvents.isEmpty());
</span><span class="lines">@@ -5681,6 +5674,11 @@
</span><span class="cx">     m_process-&gt;send(Messages::WebPage::FocusAndSelectLastActionMenuHitTestResult(), m_pageID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebPageProxy::inputDeviceForceDidChange(float force, int stage)
+{
+    m_process-&gt;send(Messages::WebPage::InputDeviceForceDidChange(force, stage), m_pageID);
+}
+
</ins><span class="cx"> void WebPageProxy::immediateActionDidUpdate()
</span><span class="cx"> {
</span><span class="cx">     m_process-&gt;send(Messages::WebPage::ImmediateActionDidUpdate(), m_pageID);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -994,6 +994,7 @@
</span><span class="cx">     void selectLastActionMenuRange();
</span><span class="cx">     void focusAndSelectLastActionMenuHitTestResult();
</span><span class="cx"> 
</span><ins>+    void inputDeviceForceDidChange(float force, int stage);
</ins><span class="cx">     void immediateActionDidUpdate();
</span><span class="cx">     void immediateActionDidCancel();
</span><span class="cx">     void immediateActionDidComplete();
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsNetscapex11NetscapePluginX11cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -474,9 +474,6 @@
</span><span class="cx">     case WebEvent::MouseMove:
</span><span class="cx">         setXMotionEventFields(xEvent, event, convertToRootView(IntPoint()));
</span><span class="cx">         break;
</span><del>-    case WebEvent::MouseForceChanged:
-    case WebEvent::MouseForceDown:
-    case WebEvent::MouseForceUp:
</del><span class="cx">     case WebEvent::NoType:
</span><span class="cx">     case WebEvent::Wheel:
</span><span class="cx">     case WebEvent::KeyDown:
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1903,12 +1903,6 @@
</span><span class="cx">             if (onlyUpdateScrollbars)
</span><span class="cx">                 return page-&gt;corePage()-&gt;userInputBridge().handleMouseMoveOnScrollbarEvent(platformMouseEvent);
</span><span class="cx">             return page-&gt;corePage()-&gt;userInputBridge().handleMouseMoveEvent(platformMouseEvent);
</span><del>-
-        case PlatformEvent::MouseForceChanged:
-        case PlatformEvent::MouseForceDown:
-        case PlatformEvent::MouseForceUp:
-            return page-&gt;corePage()-&gt;userInputBridge().handleMouseForceEvent(platformMouseEvent);
-
</del><span class="cx">         default:
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><span class="cx">             return false;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1094,6 +1094,7 @@
</span><span class="cx">     PassRefPtr&lt;WebCore::Range&gt; lookupTextAtLocation(WebCore::FloatPoint, NSDictionary **options);
</span><span class="cx">     void selectLastActionMenuRange();
</span><span class="cx">     void focusAndSelectLastActionMenuHitTestResult();
</span><ins>+    void inputDeviceForceDidChange(float force, int stage);
</ins><span class="cx">     void immediateActionDidUpdate();
</span><span class="cx">     void immediateActionDidCancel();
</span><span class="cx">     void immediateActionDidComplete();
</span><span class="lines">@@ -1354,6 +1355,7 @@
</span><span class="cx">     RefPtr&lt;WebCore::Range&gt; m_lastActionMenuRangeForSelection;
</span><span class="cx">     WebCore::HitTestResult m_lastActionMenuHitTestResult;
</span><span class="cx">     RefPtr&lt;WebPageOverlay&gt; m_lastActionMenuHitPageOverlay;
</span><ins>+    int m_lastForceStage { 0 };
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     bool m_mainFrameProgressCompleted;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagemessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -407,6 +407,7 @@
</span><span class="cx">     PerformActionMenuHitTestAtLocation(WebCore::FloatPoint location, bool forImmediateAction)
</span><span class="cx">     SelectLastActionMenuRange()
</span><span class="cx">     FocusAndSelectLastActionMenuHitTestResult()
</span><ins>+    InputDeviceForceDidChange(float force, int stage)
</ins><span class="cx">     ImmediateActionDidUpdate()
</span><span class="cx">     ImmediateActionDidCancel()
</span><span class="cx">     ImmediateActionDidComplete()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacWebPageMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1141,6 +1141,25 @@
</span><span class="cx">     frame-&gt;selection().setSelection(position);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void WebPage::inputDeviceForceDidChange(float force, int stage)
+{
+    Element* element = m_lastActionMenuHitTestResult.innerElement();
+    if (!element)
+        return;
+
+    float overallForce = stage &lt; 1 ? force : force + stage - 1;
+    element-&gt;dispatchMouseForceChanged(overallForce);
+
+    if (m_lastForceStage == 1 &amp;&amp; stage == 2)
+        element-&gt;dispatchMouseForceDown();
+    else if (m_lastForceStage == 2 &amp;&amp; stage == 1) {
+        element-&gt;dispatchMouseForceUp();
+        element-&gt;dispatchMouseForceClick();
+    }
+
+    m_lastForceStage = stage;
+}
+
</ins><span class="cx"> void WebPage::immediateActionDidUpdate()
</span><span class="cx"> {
</span><span class="cx">     m_page-&gt;mainFrame().eventHandler().setImmediateActionStage(ImmediateActionStage::ActionUpdated);
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/ChangeLog        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2015-04-17  Commit Queue  &lt;commit-queue@webkit.org&gt;
+
+        Unreviewed, rolling out r182912 and r182920.
+        https://bugs.webkit.org/show_bug.cgi?id=143881
+
+        Build breakage in some configurations (Requested by ap on
+        #webkit).
+
+        Reverted changesets:
+
+        &quot;Force mouse events should go through normal mouse event
+        handling code paths&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=143749
+        http://trac.webkit.org/changeset/182912
+
+        http://trac.webkit.org/changeset/182920
+
</ins><span class="cx"> 2015-04-17  Csaba Osztrogonác  &lt;ossy@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         [GTK] One more unreviewed fix after r182882.
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerEventSenderProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/EventSenderProxy.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/EventSenderProxy.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/WebKitTestRunner/EventSenderProxy.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -58,9 +58,6 @@
</span><span class="cx"> 
</span><span class="cx">     void mouseDown(unsigned button, WKEventModifiers);
</span><span class="cx">     void mouseUp(unsigned button, WKEventModifiers);
</span><del>-    void mouseForceDown();
-    void mouseForceUp();
-    void mouseForceChanged(float);
</del><span class="cx">     void mouseMoveTo(double x, double y);
</span><span class="cx">     void mouseScrollBy(int x, int y);
</span><span class="cx">     void mouseScrollByWithWheelAndMomentumPhases(int x, int y, int phase, int momentum);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleBindingsEventSendingControlleridl"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -27,9 +27,6 @@
</span><span class="cx">     void mouseDown(long buttonNumber, object modifierArray);
</span><span class="cx">     void mouseUp(long buttonNumber, object modifierArray);
</span><span class="cx">     void mouseMoveTo(long x, long y);
</span><del>-    void mouseForceDown();
-    void mouseForceUp();
-    void mouseForceChanged(double force);
</del><span class="cx">     void mouseScrollBy(long x, long y);
</span><span class="cx">     void mouseScrollByWithWheelAndMomentumPhases(long x, long y, DOMString phase, DOMString momentum, optional boolean asyncScrolling);
</span><span class="cx">     void continuousMouseScrollBy(long x, long y, optional boolean paged);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleEventSendingControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -253,46 +253,6 @@
</span><span class="cx">     WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventSendingController::mouseForceDown()
-{
-    WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
-    WKRetainPtr&lt;WKMutableDictionaryRef&gt; EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate());
-
-    WKRetainPtr&lt;WKStringRef&gt; subMessageKey(AdoptWK, WKStringCreateWithUTF8CString(&quot;SubMessage&quot;));
-    WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;MouseForceDown&quot;));
-    WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
-
-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
-}
-
-void EventSendingController::mouseForceUp()
-{
-    WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
-    WKRetainPtr&lt;WKMutableDictionaryRef&gt; EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate());
-
-    WKRetainPtr&lt;WKStringRef&gt; subMessageKey(AdoptWK, WKStringCreateWithUTF8CString(&quot;SubMessage&quot;));
-    WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;MouseForceUp&quot;));
-    WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
-
-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
-}
-
-void EventSendingController::mouseForceChanged(double force)
-{
-    WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
-    WKRetainPtr&lt;WKMutableDictionaryRef&gt; EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate());
-
-    WKRetainPtr&lt;WKStringRef&gt; subMessageKey(AdoptWK, WKStringCreateWithUTF8CString(&quot;SubMessage&quot;));
-    WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;MouseForceChanged&quot;));
-    WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
-
-    WKRetainPtr&lt;WKStringRef&gt; forceKey(AdoptWK, WKStringCreateWithUTF8CString(&quot;Force&quot;));
-    WKRetainPtr&lt;WKDoubleRef&gt; forceRef(AdoptWK, WKDoubleCreate(force));
-    WKDictionarySetItem(EventSenderMessageBody.get(), forceKey.get(), forceRef.get());
-
-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
-}
-
</del><span class="cx"> void EventSendingController::leapForward(int milliseconds)
</span><span class="cx"> {
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleEventSendingControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -46,9 +46,6 @@
</span><span class="cx">     void mouseDown(int button, JSValueRef modifierArray);
</span><span class="cx">     void mouseUp(int button, JSValueRef modifierArray);
</span><span class="cx">     void mouseMoveTo(int x, int y);
</span><del>-    void mouseForceDown();
-    void mouseForceUp();
-    void mouseForceChanged(double force);
</del><span class="cx">     void mouseScrollBy(int x, int y);
</span><span class="cx">     void mouseScrollByWithWheelAndMomentumPhases(int x, int y, JSStringRef phase, JSStringRef momentum, bool asyncScrolling);
</span><span class="cx">     void continuousMouseScrollBy(int x, int y, bool paged);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerTestControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/TestController.cpp        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -1102,32 +1102,6 @@
</span><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-#if PLATFORM(MAC)
-        if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseForceDown&quot;)) {
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
-            m_eventSenderProxy-&gt;mouseForceDown();
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
-            return 0;
-        }
-
-        if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseForceUp&quot;)) {
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
-            m_eventSenderProxy-&gt;mouseForceUp();
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
-            return 0;
-        }
-
-        if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseForceChanged&quot;)) {
-            WKRetainPtr&lt;WKStringRef&gt; forceKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Force&quot;));
-            double force = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, forceKey.get())));
-
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
-            m_eventSenderProxy-&gt;mouseForceChanged(force);
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
-            return 0;
-        }
-#endif // PLATFORM(MAC)
-
</del><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseScrollBy&quot;)) {
</span><span class="cx">             WKRetainPtr&lt;WKStringRef&gt; xKey = adoptWK(WKStringCreateWithUTF8CString(&quot;X&quot;));
</span><span class="cx">             double x = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, xKey.get())));
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnermacEventSenderProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm (182955 => 182956)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm        2015-04-17 17:30:43 UTC (rev 182955)
+++ trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm        2015-04-17 17:33:21 UTC (rev 182956)
</span><span class="lines">@@ -39,85 +39,6 @@
</span><span class="cx"> - (void)_setCurrentEvent:(NSEvent *)event;
</span><span class="cx"> @end
</span><span class="cx"> 
</span><del>-#if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-@interface EventSenderPressureEvent : NSEvent {
-@public
-    NSPoint _eventSender_locationInWindow;
-    NSPoint _eventSender_location;
-    NSInteger _eventSender_stage;
-    float _eventSender_pressure;
-    NSEventPhase _eventSender_phase;
-    NSTimeInterval _eventSender_timestamp;
-    NSInteger _eventSender_eventNumber;
-}
-
-- (id)initAtLocation:(NSPoint)location globalLocation:(NSPoint)globalLocation stage:(NSInteger)stage pressure:(float)pressure phase:(NSEventPhase)phase time:(NSTimeInterval)time eventNumber:(NSInteger)eventNumber;
-- (NSTimeInterval)timestamp;
-@end
-
-@implementation EventSenderPressureEvent
-
-- (id)initAtLocation:(NSPoint)location globalLocation:(NSPoint)globalLocation stage:(NSInteger)stage pressure:(float)pressure phase:(NSEventPhase)phase time:(NSTimeInterval)time eventNumber:(NSInteger)eventNumber
-{
-    self = [super init];
-
-    if (!self)
-        return nil;
-
-    _eventSender_location = location;
-    _eventSender_locationInWindow = globalLocation;
-    _eventSender_stage = stage;
-    _eventSender_pressure = pressure;
-    _eventSender_phase = phase;
-    _eventSender_timestamp = time;
-    _eventSender_eventNumber = eventNumber;
-
-    return self;
-}
-
-- (NSTimeInterval)timestamp
-{
-    return _eventSender_timestamp;
-}
-
-- (NSEventType)type
-{
-    return NSEventTypePressure;
-}
-
-- (NSPoint)locationInWindow
-{
-    return self-&gt;_eventSender_location;
-}
-
-- (NSPoint)location
-{
-    return self-&gt;_eventSender_locationInWindow;
-}
-
-- (NSInteger)stage
-{
-    return _eventSender_stage;
-}
-
-- (float)pressure
-{
-    return _eventSender_pressure;
-}
-
-- (NSEventPhase)phase
-{
-    return _eventSender_phase;
-}
-
-- (NSInteger)eventNumber
-{
-    return _eventSender_eventNumber;
-}
-
-@end
-#endif // __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-
</del><span class="cx"> namespace WTR {
</span><span class="cx"> 
</span><span class="cx"> enum MouseAction {
</span><span class="lines">@@ -279,115 +200,6 @@
</span><span class="cx">     m_clickPosition = m_position;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-void EventSenderProxy::mouseForceDown()
-{
-    EventSenderPressureEvent *firstEvent = [[EventSenderPressureEvent alloc] initAtLocation:NSMakePoint(m_position.x, m_position.y)
-        globalLocation:([m_testController-&gt;mainWebView()-&gt;platformWindow() convertRectToScreen:NSMakeRect(m_position.x, m_position.y, 1, 1)].origin)
-        stage:1
-        pressure:0.9
-        phase:NSEventPhaseChanged
-        time:absoluteTimeForEventTime(currentEventTime())
-        eventNumber:++eventNumber];
-    EventSenderPressureEvent *secondEvent = [[EventSenderPressureEvent alloc] initAtLocation:NSMakePoint(m_position.x, m_position.y)
-        globalLocation:([m_testController-&gt;mainWebView()-&gt;platformWindow() convertRectToScreen:NSMakeRect(m_position.x, m_position.y, 1, 1)].origin)
-        stage:2
-        pressure:0.1
-        phase:NSEventPhaseChanged
-        time:absoluteTimeForEventTime(currentEventTime())
-        eventNumber:++eventNumber];
-
-    NSView *targetView = [m_testController-&gt;mainWebView()-&gt;platformView() hitTest:[firstEvent locationInWindow]];
-    targetView = targetView ? targetView : m_testController-&gt;mainWebView()-&gt;platformView();
-    ASSERT(targetView);
-
-    // Since AppKit does not implement forceup/down as mouse events, we need to send two pressure events to detect
-    // the change in stage that marks those moments.
-    [NSApp _setCurrentEvent:firstEvent];
-    [targetView pressureChangeWithEvent:firstEvent];
-    [NSApp _setCurrentEvent:secondEvent];
-    [targetView pressureChangeWithEvent:secondEvent];
-
-    [NSApp _setCurrentEvent:nil];
-    // WKView caches the most recent pressure event, so send it a nil event to clear the cache.
-    [targetView pressureChangeWithEvent:nil];
-
-    [firstEvent release];
-    [secondEvent release];
-}
-
-void EventSenderProxy::mouseForceUp()
-{
-    EventSenderPressureEvent *firstEvent = [[EventSenderPressureEvent alloc] initAtLocation:NSMakePoint(m_position.x, m_position.y)
-        globalLocation:([m_testController-&gt;mainWebView()-&gt;platformWindow() convertRectToScreen:NSMakeRect(m_position.x, m_position.y, 1, 1)].origin)
-        stage:2
-        pressure:0.1
-        phase:NSEventPhaseChanged
-        time:absoluteTimeForEventTime(currentEventTime())
-        eventNumber:++eventNumber];
-    EventSenderPressureEvent *secondEvent = [[EventSenderPressureEvent alloc] initAtLocation:NSMakePoint(m_position.x, m_position.y)
-        globalLocation:([m_testController-&gt;mainWebView()-&gt;platformWindow() convertRectToScreen:NSMakeRect(m_position.x, m_position.y, 1, 1)].origin)
-        stage:1
-        pressure:0.9
-        phase:NSEventPhaseChanged
-        time:absoluteTimeForEventTime(currentEventTime())
-        eventNumber:++eventNumber];
-
-    NSView *targetView = [m_testController-&gt;mainWebView()-&gt;platformView() hitTest:[firstEvent locationInWindow]];
-    targetView = targetView ? targetView : m_testController-&gt;mainWebView()-&gt;platformView();
-    ASSERT(targetView);
-
-    // Since AppKit does not implement forceup/down as mouse events, we need to send two pressure events to detect
-    // the change in stage that marks those moments.
-    [NSApp _setCurrentEvent:firstEvent];
-    [targetView pressureChangeWithEvent:firstEvent];
-    [NSApp _setCurrentEvent:secondEvent];
-    [targetView pressureChangeWithEvent:secondEvent];
-
-    [NSApp _setCurrentEvent:nil];
-    // WKView caches the most recent pressure event, so send it a nil event to clear the cache.
-    [targetView pressureChangeWithEvent:nil];
-
-    [firstEvent release];
-    [secondEvent release];
-}
-
-void EventSenderProxy::mouseForceChanged(float force)
-{
-    EventSenderPressureEvent *event = [[EventSenderPressureEvent alloc] initAtLocation:NSMakePoint(m_position.x, m_position.y)
-        globalLocation:([m_testController-&gt;mainWebView()-&gt;platformWindow() convertRectToScreen:NSMakeRect(m_position.x, m_position.y, 1, 1)].origin)
-        stage:force &lt; 1 ? 1 : 2
-        pressure:force
-        phase:NSEventPhaseChanged
-        time:absoluteTimeForEventTime(currentEventTime())
-        eventNumber:++eventNumber];
-
-    NSView *targetView = [m_testController-&gt;mainWebView()-&gt;platformView() hitTest:[event locationInWindow]];
-    targetView = targetView ? targetView : m_testController-&gt;mainWebView()-&gt;platformView();
-    ASSERT(targetView);
-    [NSApp _setCurrentEvent:event];
-    [targetView pressureChangeWithEvent:event];
-    [NSApp _setCurrentEvent:nil];
-
-    // WKView caches the most recent pressure event, so send it a nil event to clear the cache.
-    [targetView pressureChangeWithEvent:nil];
-
-    [event release];
-}
-#else
-void EventSenderProxy::mouseForceDown()
-{
-}
-
-void EventSenderProxy::mouseForceUp()
-{
-}
-
-void EventSenderProxy::mouseForceChanged(float)
-{
-}
-#endif // __MAC_OS_X_VERSION_MAX_ALLOWED &gt;= 101003
-
</del><span class="cx"> void EventSenderProxy::mouseMoveTo(double x, double y)
</span><span class="cx"> {
</span><span class="cx">     NSView *view = m_testController-&gt;mainWebView()-&gt;platformView();
</span></span></pre>
</div>
</div>

</body>
</html>