<!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>[188793] 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/188793">188793</a></dd>
<dt>Author</dt> <dd>ap@apple.com</dd>
<dt>Date</dt> <dd>2015-08-21 16:09:54 -0700 (Fri, 21 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Improve how UI events are dispatched by WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=148326

Reviewed by Anders Carlsson.

Source/WebKit2:

Added &quot;fully synchronous mode for testing&quot;, in which all messages are dispatched
synchronously.

When an async message is sent in this mode, it is wrapped into a sync one automatically.

A client must opt in, either by using WKBundlePagePostSynchronousMessageForTesting(),
or by calling WKContextConfigurationAllowFullySynchronousModeForTesting().
This makes sure that we don't increase potential for IPC misuse.

* WebProcess/WebPage/WebPage.messages.in: Yay, fewer messages!

* UIProcess/API/C/WKPage.cpp:
(WKPageSetShouldSendEventsSynchronously): Deleted.
* UIProcess/API/C/WKPagePrivate.h:
We no longer need WKPageSetShouldSendEventsSynchronously and associated custom messages.

* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::updateWheelEventTestTriggersIfNeeded): Deleted.
Removed code that was only needed to support pseudo-syncronous scrolling in tests.

* Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchMessage):
* Platform/IPC/Connection.h:
(IPC::Connection::allowFullySynchronousModeForTesting):
(IPC::Connection::sendSync):
* Platform/IPC/MessageDecoder.cpp:
(IPC::MessageDecoder::shouldDispatchMessageWhenWaitingForSyncReply):
(IPC::MessageDecoder::shouldUseFullySynchronousModeForTesting):
(IPC::MessageDecoder::setImportanceAssertion):
(IPC::MessageDecoder::unwrapForTesting):
* Platform/IPC/MessageDecoder.h:
(IPC::MessageDecoder::UUID):
* Platform/IPC/MessageEncoder.cpp:
(IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply):
(IPC::MessageEncoder::setFullySynchronousModeForTesting):
(IPC::MessageEncoder::wrapForTesting):
* Platform/IPC/MessageEncoder.h:
(IPC::MessageEncoder::UUID):
* Platform/IPC/MessageFlags.h:
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationSetMediaKeysStorageDirectory):
(WKContextConfigurationAllowFullySynchronousModeForTesting):
* UIProcess/API/C/WKContextConfigurationRef.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::handleMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleTouchEvent):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::renderTreeSize):
(WebKit::WebPageProxy::setShouldSendEventsSynchronously): Deleted.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
* WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePagePostMessage):
(WKBundlePagePostSynchronousMessageForTesting):
(WKBundlePagePostSynchronousMessage): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mouseEvent):
(WebKit::handleWheelEvent):
(WebKit::WebPage::wheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::validateCommand):
(WebKit::WebPage::touchEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::postMessage):
(WebKit::WebPage::postSynchronousMessageForTesting):
(WebKit::WebPage::mouseEventSyncForTesting): Deleted.
(WebKit::WebPage::wheelEventSyncForTesting): Deleted.
(WebKit::WebPage::keyEventSyncForTesting): Deleted.
(WebKit::WebPage::touchEventSyncForTesting): Deleted.
(WebKit::WebPage::postSynchronousMessage): Deleted.
* WebProcess/WebPage/WebPage.h:

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
* WebKitTestRunner/InjectedBundle/EventSendingController.h:
Removed asyncScrolling from mouseScrollByWithWheelAndMomentumPhases, it's now always
asynchronous (and really, it has always been for the most part).

* WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::EventSendingController::mouseDown): Updated for WKBundlePagePostSynchronousMessage renaming.
(WTR::EventSendingController::mouseUp): Ditto.
(WTR::EventSendingController::mouseMoveTo): Ditto.
(WTR::EventSendingController::mouseForceDown): Ditto.
(WTR::EventSendingController::mouseForceUp): Ditto.
(WTR::EventSendingController::mouseForceChanged): Ditto.
(WTR::EventSendingController::leapForward): Ditto.
(WTR::EventSendingController::scheduleAsynchronousClick): Ditto.
(WTR::EventSendingController::keyDown): Ditto.
(WTR::EventSendingController::scheduleAsynchronousKeyDown): Ditto.
(WTR::EventSendingController::mouseScrollBy): Force a scrolling tree commit. It used
to be done in custom WebKit2 code for test wheel event handling.
(WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases): Got rid of sync version.
(WTR::EventSendingController::continuousMouseScrollBy): Added a FIXME. This one is weird.
(WTR::EventSendingController::contextClick): Updated for WKBundlePagePostSynchronousMessage renaming.
(WTR::EventSendingController::addTouchPoint): Ditto.
(WTR::EventSendingController::updateTouchPoint): Ditto.
(WTR::EventSendingController::setTouchModifier): Ditto.
(WTR::EventSendingController::setTouchPointRadius): Ditto.
(WTR::EventSendingController::touchStart): Ditto.
(WTR::EventSendingController::touchMove): Ditto.
(WTR::EventSendingController::touchEnd): Ditto.
(WTR::EventSendingController::touchCancel): Ditto.
(WTR::EventSendingController::clearTouchPoints): Ditto.
(WTR::EventSendingController::releaseTouchPoint): Ditto.
(WTR::EventSendingController::cancelTouchPoint): Ditto.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::postSetWindowIsKey):
(WTR::InjectedBundle::postSimulateWebNotificationClick):
(WTR::InjectedBundle::isGeolocationProviderActive):
(WTR::InjectedBundle::shouldProcessWorkQueue):
Updated for WKBundlePagePostSynchronousMessage renaming.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::secureEventInputIsEnabled): Ditto.

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::initialize): Allow handling the new test style messages.
(WTR::TestController::didReceiveKeyDownMessageFromInjectedBundle): Removed calls
to WKPageSetShouldSendEventsSynchronously, which we no longer need.
(WTR::TestController::didReceiveMessageFromInjectedBundle):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): Moved
&quot;MouseScrollBy&quot; to async section, and got rid of WKPageSetShouldSendEventsSynchronously.

* WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseMoveTo): Got rid of WKPageSetShouldSendEventsSynchronously.
(WTR::EventSenderProxy::keyDown): Ditto.
(WTR::EventSenderProxy::mouseScrollBy): Ditto.
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Ditto.

LayoutTests:

* fast/events/clear-drag-state-expected.txt:
* fast/events/clear-drag-state.html:
* platform/mac-wk2/TestExpectations:
This test used to accidentally pass in WebKit2, but it didn't actually check
for the problem. This patch improves WK2 behavior, which makes the test fail.
Changed the test to not pass accidentally, and added it to WK2 test expectations.
        
* fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
* fast/events/scroll-in-scaled-page-with-overflow-hidden.html:
Updated the test to be fully async.

* fast/events/wheelevent-basic-expected.txt:
* fast/events/wheelevent-basic.html:
Updated the test to be fully async, got rid of tab characters.

* fast/events/wheelevent-mousewheel-interaction.html: 
* fast/forms/search/search-scroll-hidden-decoration-container-crash.html:
* fast/frames/flattening/scrolling-in-object.html:
Updated these tests to be fully async. Since they check for something that happens
asynchronously, and doesn't have an end event, they have to use setTimeout.

* fast/scrolling/latching/iframe_in_iframe.html:
* fast/scrolling/latching/scroll-div-latched-div.html:
* fast/scrolling/latching/scroll-div-latched-mainframe.html:
* fast/scrolling/latching/scroll-div-no-latching.html:
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
* fast/scrolling/latching/scroll-iframe-fragment.html:
* fast/scrolling/latching/scroll-iframe-latched-iframe.html:
* fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
* fast/scrolling/latching/scroll-latched-nested-div.html:
* fast/scrolling/latching/scroll-nested-iframe.html:
* fast/scrolling/latching/scroll-select-bottom-test.html:
* fast/scrolling/latching/scroll-select-latched-mainframe.html:
* fast/scrolling/latching/scroll-select-latched-select.html:
Removed extra testRunner.mouseScrollByWithWheelAndMomentumPhases() calls.
We no longer need multiple events for scroll snap animation to start, and due to
the way we coalesce events, having multiple events resulted in getting too high velocity.
Removed async scrolling argument form the function calls, because it's now always async.

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:
Moved fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html
to WK1 expectations, because the test needn't be skipped on WK2.

* scrollbars/scroll-rtl-or-bt-layer.html: Made the test fully async, and refactored
it for clarity.

* tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
* tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
* tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
* tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
* tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html:
* tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
* tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
* tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
* tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
* tiled-drawing/scrolling/iframe_in_iframe.html:
* tiled-drawing/scrolling/overflow-scroll-reduced-content.html:
* tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
* tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
* tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
* tiled-drawing/scrolling/wheel-events-with-no-delta.html:
Same testRunner.mouseScrollByWithWheelAndMomentumPhases changes as in fast/scrolling/latching.

* tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
* tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
Removed debug output about how many events are received. The number may vary due
to coalescing.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfasteventscleardragstateexpectedtxt">trunk/LayoutTests/fast/events/clear-drag-state-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventscleardragstatehtml">trunk/LayoutTests/fast/events/clear-drag-state.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsscrollinscaledpagewithoverflowhiddenexpectedtxt">trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventsscrollinscaledpagewithoverflowhiddenhtml">trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden.html</a></li>
<li><a href="#trunkLayoutTestsfasteventswheeleventbasicexpectedtxt">trunk/LayoutTests/fast/events/wheelevent-basic-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfasteventswheeleventbasichtml">trunk/LayoutTests/fast/events/wheelevent-basic.html</a></li>
<li><a href="#trunkLayoutTestsfasteventswheeleventmousewheelinteractionhtml">trunk/LayoutTests/fast/events/wheelevent-mousewheel-interaction.html</a></li>
<li><a href="#trunkLayoutTestsfastformssearchsearchscrollhiddendecorationcontainercrashhtml">trunk/LayoutTests/fast/forms/search/search-scroll-hidden-decoration-container-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastframesflatteningscrollinginobjecthtml">trunk/LayoutTests/fast/frames/flattening/scrolling-in-object.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingiframe_in_iframehtml">trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivlatcheddivhtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivlatchedmainframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivnolatchinghtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivwithnestednonscrollableiframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframefragmenthtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframelatchediframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframelatchedmainframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframewebkit1latchingbughtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolllatchednesteddivhtml">trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollnestediframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectbottomtesthtml">trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectlatchedmainframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectlatchedselecthtml">trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1TestExpectations">trunk/LayoutTests/platform/mac-wk1/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk2TestExpectations">trunk/LayoutTests/platform/mac-wk2/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsscrollbarsscrollrtlorbtlayerhtml">trunk/LayoutTests/scrollbars/scroll-rtl-or-bt-layer.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolldivlatcheddivwithhandlerhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolldivlatcheddivhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolldivlatchedmainframewithhandlerhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolldivlatchedmainframehtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframewithhandlerhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframehtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframewithhandlerhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframehtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedselecthtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrollmainframezoomhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedmainframewithhandlerhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedmainframehtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedselectwithhandlerexpectedtxt">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedselectwithhandlerhtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedselecthtml">trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingiframe_in_iframehtml">trunk/LayoutTests/tiled-drawing/scrolling/iframe_in_iframe.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingoverflowscrollreducedcontenthtml">trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-reduced-content.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingoverflowscrollzerodeltawheeleventshtml">trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingrootoverflowwithmousewheelhtml">trunk/LayoutTests/tiled-drawing/scrolling/root-overflow-with-mousewheel.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapiframehtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatory2doverflowhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorybordershtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframehorizontalhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframeslowhorizontalhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframeslowverticalhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframeverticalhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryoverflowstatelesshtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryoverflowhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorypaddinghtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryrotatedhtml">trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html</a></li>
<li><a href="#trunkLayoutTeststileddrawingscrollingwheeleventswithnodeltahtml">trunk/LayoutTests/tiled-drawing/scrolling/wheel-events-with-no-delta.html</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCConnectioncpp">trunk/Source/WebKit2/Platform/IPC/Connection.cpp</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCConnectionh">trunk/Source/WebKit2/Platform/IPC/Connection.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCMessageDecodercpp">trunk/Source/WebKit2/Platform/IPC/MessageDecoder.cpp</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCMessageDecoderh">trunk/Source/WebKit2/Platform/IPC/MessageDecoder.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCMessageEncodercpp">trunk/Source/WebKit2/Platform/IPC/MessageEncoder.cpp</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCMessageEncoderh">trunk/Source/WebKit2/Platform/IPC/MessageEncoder.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformIPCMessageFlagsh">trunk/Source/WebKit2/Platform/IPC/MessageFlags.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationcpp">trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationh">trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefh">trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagecpp">trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagePrivateh">trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h</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="#trunkSourceWebKit2UIProcessWebProcessPoolcpp">trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePageh">trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageEventDispatchercpp">trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.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="#trunkToolsChangeLog">trunk/Tools/ChangeLog</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="#trunkToolsWebKitTestRunnerInjectedBundleInjectedBundlecpp">trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleTestRunnercpp">trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp</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>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/ChangeLog        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -1,3 +1,94 @@
</span><ins>+2015-08-21  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        Improve how UI events are dispatched by WebKitTestRunner
+        https://bugs.webkit.org/show_bug.cgi?id=148326
+
+        Reviewed by Anders Carlsson.
+
+        * fast/events/clear-drag-state-expected.txt:
+        * fast/events/clear-drag-state.html:
+        * platform/mac-wk2/TestExpectations:
+        This test used to accidentally pass in WebKit2, but it didn't actually check
+        for the problem. This patch improves WK2 behavior, which makes the test fail.
+        Changed the test to not pass accidentally, and added it to WK2 test expectations.
+        
+        * fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt:
+        * fast/events/scroll-in-scaled-page-with-overflow-hidden.html:
+        Updated the test to be fully async.
+
+        * fast/events/wheelevent-basic-expected.txt:
+        * fast/events/wheelevent-basic.html:
+        Updated the test to be fully async, got rid of tab characters.
+
+        * fast/events/wheelevent-mousewheel-interaction.html: 
+        * fast/forms/search/search-scroll-hidden-decoration-container-crash.html:
+        * fast/frames/flattening/scrolling-in-object.html:
+        Updated these tests to be fully async. Since they check for something that happens
+        asynchronously, and doesn't have an end event, they have to use setTimeout.
+
+        * fast/scrolling/latching/iframe_in_iframe.html:
+        * fast/scrolling/latching/scroll-div-latched-div.html:
+        * fast/scrolling/latching/scroll-div-latched-mainframe.html:
+        * fast/scrolling/latching/scroll-div-no-latching.html:
+        * fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html:
+        * fast/scrolling/latching/scroll-iframe-fragment.html:
+        * fast/scrolling/latching/scroll-iframe-latched-iframe.html:
+        * fast/scrolling/latching/scroll-iframe-latched-mainframe.html:
+        * fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html:
+        * fast/scrolling/latching/scroll-latched-nested-div.html:
+        * fast/scrolling/latching/scroll-nested-iframe.html:
+        * fast/scrolling/latching/scroll-select-bottom-test.html:
+        * fast/scrolling/latching/scroll-select-latched-mainframe.html:
+        * fast/scrolling/latching/scroll-select-latched-select.html:
+        Removed extra testRunner.mouseScrollByWithWheelAndMomentumPhases() calls.
+        We no longer need multiple events for scroll snap animation to start, and due to
+        the way we coalesce events, having multiple events resulted in getting too high velocity.
+        Removed async scrolling argument form the function calls, because it's now always async.
+
+        * platform/mac-wk1/TestExpectations:
+        * platform/mac/TestExpectations:
+        Moved fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html
+        to WK1 expectations, because the test needn't be skipped on WK2.
+
+        * scrollbars/scroll-rtl-or-bt-layer.html: Made the test fully async, and refactored
+        it for clarity.
+
+        * tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html:
+        * tiled-drawing/scrolling/fast-scroll-div-latched-div.html:
+        * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html:
+        * tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html:
+        * tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html:
+        * tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html:
+        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
+        * tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html:
+        * tiled-drawing/scrolling/fast-scroll-select-latched-select.html:
+        * tiled-drawing/scrolling/iframe_in_iframe.html:
+        * tiled-drawing/scrolling/overflow-scroll-reduced-content.html:
+        * tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html:
+        * tiled-drawing/scrolling/root-overflow-with-mousewheel.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html:
+        * tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html:
+        * tiled-drawing/scrolling/wheel-events-with-no-delta.html:
+        Same testRunner.mouseScrollByWithWheelAndMomentumPhases changes as in fast/scrolling/latching.
+
+        * tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt:
+        * tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html:
+        Removed debug output about how many events are received. The number may vary due
+        to coalescing.
+
</ins><span class="cx"> 2015-08-21  Nan Wang  &lt;n_wang@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: Fix accessibility/mac/search-with-frames.html test
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventscleardragstateexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/clear-drag-state-expected.txt (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/clear-drag-state-expected.txt        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/clear-drag-state-expected.txt        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -2,3 +2,10 @@
</span><span class="cx"> 
</span><span class="cx"> Drag me down twice!
</span><span class="cx"> PASS
</span><ins>+
+span:span:dragenter
+span:div:dragenter
+div:div:dragenter
+span:span:dragleave
+span:div:dragleave
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventscleardragstatehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/clear-drag-state.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/clear-drag-state.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/clear-drag-state.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx">     dragSpan();
</span><span class="cx">     var firstLog = setLog('');
</span><span class="cx">     dragSpan();
</span><del>-    var secondLog = setLog('PASS');
</del><ins>+    var secondLog = setLog('PASS\n\n' + firstLog);
</ins><span class="cx">     if (firstLog != secondLog)
</span><span class="cx">         setLog('FAIL:\nFirst drag:\n' + firstLog + '\nSecond drag:\n' + secondLog);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventsscrollinscaledpagewithoverflowhiddenexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden-expected.txt        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -1,4 +1,7 @@
</span><span class="cx"> This tests that a usually overflow: hidden viewport should be scrollable when scaled. Otherwise, you can't get to content you would have been able to get to had you not been zoomed it.
</span><span class="cx"> PASS window.document.body.scrollTop is 0
</span><span class="cx"> PASS window.document.body.scrollTop is 100
</span><ins>+PASS successfullyParsed is true
</ins><span class="cx"> 
</span><ins>+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsscrollinscaledpagewithoverflowhiddenhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/scroll-in-scaled-page-with-overflow-hidden.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx">     &lt;style&gt;
</span><span class="cx">         html, body { margin:0; overflow: hidden; }
</span><span class="cx">     &lt;/style&gt;
</span><del>-    &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</del><ins>+    &lt;script src=&quot;../../resources/js-test.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;/head&gt;
</span><span class="cx"> 
</span><span class="cx"> &lt;div&gt;This tests that a usually overflow: hidden viewport should be scrollable when scaled. Otherwise, you can't get to content
</span><span class="lines">@@ -19,6 +19,8 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx">         
</span><ins>+        jsTestIsAsync = true;
+
</ins><span class="cx">         // Force a layout.
</span><span class="cx">         document.body.offsetLeft;
</span><span class="cx"> 
</span><span class="lines">@@ -27,11 +29,14 @@
</span><span class="cx"> 
</span><span class="cx">         shouldBe(&quot;window.document.body.scrollTop&quot;, &quot;0&quot;);
</span><span class="cx"> 
</span><ins>+        document.body.onscroll = function() {
+            shouldBe(&quot;window.document.body.scrollTop&quot;, &quot;100&quot;);
+            finishJSTest();
+        }
+
</ins><span class="cx">         if (window.eventSender) {
</span><span class="cx">             eventSender.mouseMoveTo(100, 100);
</span><span class="cx">             eventSender.mouseScrollBy(0, -5);
</span><span class="cx">         }
</span><del>-
-        shouldBe(&quot;window.document.body.scrollTop&quot;, &quot;100&quot;);
</del><span class="cx">     })();
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventswheeleventbasicexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/wheelevent-basic-expected.txt (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/wheelevent-basic-expected.txt        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/wheelevent-basic-expected.txt        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -18,14 +18,16 @@
</span><span class="cx"> PASS window.onwheel is null
</span><span class="cx"> PASS document.onwheel is null
</span><span class="cx"> PASS testDiv.onwheel is null
</span><ins>+Wheel event fired
</ins><span class="cx"> PASS testEvent.__proto__ is WheelEvent.prototype
</span><span class="cx"> PASS testEvent.__proto__.__proto__ is MouseEvent.prototype
</span><ins>+PASS testEvent.deltaX &gt; 0 is true
+PASS testEvent.deltaY &gt; 0 is true
</ins><span class="cx"> PASS testEvent.deltaZ is 0
</span><span class="cx"> PASS testEvent.deltaMode is WheelEvent.DOM_DELTA_PIXEL
</span><del>-PASS deltaX &gt; 0 is true
-PASS deltaX is expectedDeltaX
-PASS deltaY &gt; 0 is true
-PASS deltaY is expectedDeltaY
</del><ins>+Scroll event fired
+PASS eventDeltaX is scrollDeltaX
+PASS eventDeltaY is scrollDeltaY
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventswheeleventbasichtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/wheelevent-basic.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/wheelevent-basic.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/wheelevent-basic.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -4,11 +4,13 @@
</span><span class="cx"> &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
</span><span class="cx"> &lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script&gt;
</span><del>-var deltaX = 0;
-var deltaY = 0;
-var expectedDeltaX;
-var expectedDeltaY;
</del><ins>+var eventDeltaX = 0;
+var eventDeltaY = 0;
+var scrollDeltaX;
+var scrollDeltaY;
</ins><span class="cx"> 
</span><ins>+jsTestIsAsync = true;
+
</ins><span class="cx"> var testDiv;
</span><span class="cx"> function runTest() {
</span><span class="cx">     // Basic checks.
</span><span class="lines">@@ -25,12 +27,6 @@
</span><span class="cx">     if (window.eventSender) {
</span><span class="cx">         eventSender.mouseMoveTo(testDiv.offsetLeft + 5, testDiv.offsetTop + 5);
</span><span class="cx">         eventSender.mouseScrollBy(-1, -2);
</span><del>-        expectedDeltaX = testDiv.scrollLeft;
-        expectedDeltaY = testDiv.scrollTop;
-        shouldBeTrue(&quot;deltaX &gt; 0&quot;);
-        shouldBe(&quot;deltaX&quot;, &quot;expectedDeltaX&quot;);
-        shouldBeTrue(&quot;deltaY &gt; 0&quot;);
-        shouldBe(&quot;deltaY&quot;, &quot;expectedDeltaY&quot;);
</del><span class="cx">     } else {
</span><span class="cx">         debug(&quot;FAIL: This test requires window.eventSender.&quot;);
</span><span class="cx">     }
</span><span class="lines">@@ -38,22 +34,34 @@
</span><span class="cx"> 
</span><span class="cx"> var testEvent;
</span><span class="cx"> function wheelHandler(e) {
</span><ins>+    debug(&quot;Wheel event fired&quot;);
</ins><span class="cx">     testEvent = e;
</span><span class="cx">     shouldBe(&quot;testEvent.__proto__&quot;, &quot;WheelEvent.prototype&quot;);
</span><span class="cx">     shouldBe(&quot;testEvent.__proto__.__proto__&quot;, &quot;MouseEvent.prototype&quot;);
</span><del>-    if (e.deltaX)
-        deltaX = e.deltaX;
-    if (e.deltaY)
-        deltaY = e.deltaY;
</del><ins>+    shouldBeTrue(&quot;testEvent.deltaX &gt; 0&quot;);
+    shouldBeTrue(&quot;testEvent.deltaY &gt; 0&quot;);
</ins><span class="cx">     shouldBe(&quot;testEvent.deltaZ&quot;, &quot;0&quot;);
</span><span class="cx">     shouldBe(&quot;testEvent.deltaMode&quot;, &quot;WheelEvent.DOM_DELTA_PIXEL&quot;)
</span><ins>+    eventDeltaX = e.deltaX;
+    eventDeltaY = e.deltaY;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+function scrollHandler()
+{
+    debug(&quot;Scroll event fired&quot;);
+    scrollDeltaX = testDiv.scrollLeft;
+    scrollDeltaY = testDiv.scrollTop;
+    shouldBe(&quot;eventDeltaX&quot;, &quot;scrollDeltaX&quot;);
+    shouldBe(&quot;eventDeltaY&quot;, &quot;scrollDeltaY&quot;);
+
+    finishJSTest();
+}
+
</ins><span class="cx"> &lt;/script&gt;
</span><span class="cx"> &lt;/head&gt;
</span><span class="cx"> &lt;body&gt;
</span><span class="cx"> &lt;span id=&quot;parent&quot;&gt;
</span><del>-    &lt;div id=&quot;target&quot; style=&quot;border:solid 1px green; width:100px; height:70px; overflow:scroll; white-space:nowrap;&quot;&gt;
</del><ins>+    &lt;div id=&quot;target&quot; style=&quot;border:solid 1px green; width:100px; height:70px; overflow:scroll; white-space:nowrap;&quot; onscroll=&quot;scrollHandler()&quot;&gt;
</ins><span class="cx">         TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;
</span><span class="cx">         Scroll mouse wheel over here&lt;br/&gt;
</span><span class="cx">         Scroll mouse wheel over here&lt;br/&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfasteventswheeleventmousewheelinteractionhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/events/wheelevent-mousewheel-interaction.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/wheelevent-mousewheel-interaction.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/events/wheelevent-mousewheel-interaction.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -11,7 +11,6 @@
</span><span class="cx">     if (window.eventSender) {
</span><span class="cx">         eventSender.mouseMoveTo(div.offsetLeft + 5, div.offsetTop + 5);
</span><span class="cx">         eventSender.mouseScrollBy(10, 20);
</span><del>-        finishJSTest();
</del><span class="cx">     } else {
</span><span class="cx">         debug(&quot;FAIL: This test requires window.eventSender.&quot;);
</span><span class="cx">         finishJSTest();
</span><span class="lines">@@ -23,6 +22,8 @@
</span><span class="cx">     testEvent = e;
</span><span class="cx">     testPassed(&quot;Standard wheel event was fired.&quot;);
</span><span class="cx">     shouldBe(&quot;testEvent.__proto__&quot;, &quot;WheelEvent.prototype&quot;);
</span><ins>+
+    setTimeout(finishJSTest, 100);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function mouseWheelHandler(e) {
</span></span></pre></div>
<a id="trunkLayoutTestsfastformssearchsearchscrollhiddendecorationcontainercrashhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/forms/search/search-scroll-hidden-decoration-container-crash.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/search/search-scroll-hidden-decoration-container-crash.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/forms/search/search-scroll-hidden-decoration-container-crash.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -11,8 +11,10 @@
</span><span class="cx"> &lt;/style&gt;
</span><span class="cx"> &lt;input type=&quot;search&quot;&gt;
</span><span class="cx"> &lt;script&gt;
</span><del>-if (window.testRunner)
</del><ins>+if (window.testRunner) {
</ins><span class="cx">     testRunner.dumpAsText();
</span><ins>+    testRunner.waitUntilDone();
+}
</ins><span class="cx"> 
</span><span class="cx"> if (window.eventSender) {
</span><span class="cx">     var input = document.querySelector('input');
</span><span class="lines">@@ -20,6 +22,11 @@
</span><span class="cx">     var y = input.offsetTop + input.offsetHeight / 2;
</span><span class="cx">     eventSender.mouseMoveTo(x, y);
</span><span class="cx">     eventSender.mouseScrollBy(0, 10);
</span><del>-    document.write('PASS');
</del><ins>+    
+    setTimeout(function() {
+        document.body.appendChild(document.createTextNode('PASS'));
+        if (window.testRunner)
+            testRunner.notifyDone();
+    }, 100);
</ins><span class="cx"> }
</span><span class="cx"> &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastframesflatteningscrollinginobjecthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/frames/flattening/scrolling-in-object.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/flattening/scrolling-in-object.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/frames/flattening/scrolling-in-object.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -14,7 +14,9 @@
</span><span class="cx">                     var startY = element.offsetTop + element.offsetHeight / 2;
</span><span class="cx">                     eventSender.mouseMoveTo(startX, startY);
</span><span class="cx">                     eventSender.mouseScrollBy(0, -4);
</span><del>-                    testRunner.notifyDone();
</del><ins>+                    setTimeout(function() {
+                        testRunner.notifyDone();
+                    }, 100);
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         &lt;/script&gt;
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingiframe_in_iframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -77,9 +77,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivlatcheddivhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -67,16 +67,13 @@
</span><span class="cx">     var startPosX = Math.round(divTarget.offsetLeft) + 20;
</span><span class="cx">     var startPosY = Math.round(divTarget.offsetTop) + 100; // One wheel turn before end.
</span><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivlatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -70,16 +70,13 @@
</span><span class="cx">     var startPosY = Math.round(divTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
</span><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivnolatchinghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -65,19 +65,19 @@
</span><span class="cx">     //debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><span class="cx"> 
</span><span class="cx">     //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 1, 'none', 'none', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 1, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 1, 'none', 'none');
</ins><span class="cx"> 
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'none');
</ins><span class="cx"> 
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none');
</ins><span class="cx"> 
</span><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivwithnestednonscrollableiframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -67,16 +67,13 @@
</span><span class="cx">     divScrollPositionBefore = divTarget.scrollTop;
</span><span class="cx"> 
</span><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframefragmenthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -42,16 +42,13 @@
</span><span class="cx">             var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">             debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             setTimeout(checkForScroll, 100);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframelatchediframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -46,16 +46,13 @@
</span><span class="cx">     var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
</span><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframelatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -41,16 +41,13 @@
</span><span class="cx">     var startPosY = iframeTarget.offsetTop - 42; // Slightly more than one wheel scroll away from the IFrame
</span><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><span class="cx">     debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframewebkit1latchingbughtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -42,16 +42,13 @@
</span><span class="cx">             var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iframe
</span><span class="cx">             debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             setTimeout(checkForScroll, 100);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolllatchednesteddivhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -93,16 +93,13 @@
</span><span class="cx"> 
</span><span class="cx">     wrapperScrollPositionBefore = wrapperTarget.scrollTop;
</span><span class="cx"> 
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     // The timeout used to be only 100, but when we added support for rubber-banding in overflow
</span><span class="cx">     // areas, we found we had to increase the timeout to allow the rubber-band to finish.
</span><span class="cx">     setTimeout(checkForSecondScroll, 1000);
</span><span class="lines">@@ -125,16 +122,13 @@
</span><span class="cx">     var startPosX = divTarget.offsetLeft + divTarget.clientWidth + 50;
</span><span class="cx">     var startPosY = Math.round(divTarget.offsetTop) - 42; // One wheel turn before end.
</span><span class="cx">     eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -5, 'none', 'begin', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -5, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -5, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -5, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -5, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -5, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">     // The timeout used to be only 100, but when we added support for rubber-banding in overflow
</span><span class="cx">     // areas, we found we had to increase the timeout to allow the rubber-band to finish.
</span><span class="cx">     setTimeout(checkForFirstScroll, 1000);
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollnestediframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -55,9 +55,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</span><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectbottomtesthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -80,9 +80,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</span><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectlatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -76,9 +76,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</span><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectlatchedselecthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -78,9 +78,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', true);
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', true);
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', true);
</span><span class="cx">     setTimeout(checkForScroll, 100);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/platform/mac/TestExpectations        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -1272,9 +1272,6 @@
</span><span class="cx"> # &lt;rdar://problem/21857102&gt;
</span><span class="cx"> [ ElCapitan+ ] fast/canvas/canvas-too-large-to-draw.html [ Crash ]
</span><span class="cx"> 
</span><del>-# WK1-only timeout.
-webkit.org/b/147683 fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html [ Skip ]
-
</del><span class="cx"> webkit.org/b/147763 [ Mavericks Yosemite ] accessibility/mac/loaded-notification.html [ Skip ]
</span><span class="cx"> 
</span><span class="cx"> # Language-specific font fallback is disabled on certain versions of OS X
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -112,6 +112,9 @@
</span><span class="cx"> scrollbars/scrolling-by-page-ignoring-transparent-fixed-elements-on-keyboard-spacebar.html
</span><span class="cx"> scrollbars/scrolling-by-page-on-keyboard-spacebar.html
</span><span class="cx"> 
</span><ins>+# This test times out.
+webkit.org/b/147683 fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html [ Skip ]
+
</ins><span class="cx"> compositing/rtl/rtl-fixed-overflow-scrolled.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> compositing/iframes/overlapped-nested-iframes.html [ Pass Failure ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/TestExpectations        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -159,6 +159,7 @@
</span><span class="cx"> editing/selection/select-across-readonly-input-3.html
</span><span class="cx"> editing/selection/select-across-readonly-input-4.html
</span><span class="cx"> editing/selection/select-across-readonly-input-5.html
</span><ins>+fast/events/clear-drag-state.html
</ins><span class="cx"> fast/events/drag-and-drop-subframe-dataTransfer.html
</span><span class="cx"> fast/events/drag-selects-image.html
</span><span class="cx"> fast/events/remove-target-with-shadow-in-drag.html
</span></span></pre></div>
<a id="trunkLayoutTestsscrollbarsscrollrtlorbtlayerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/scrollbars/scroll-rtl-or-bt-layer.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/scrollbars/scroll-rtl-or-bt-layer.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/scrollbars/scroll-rtl-or-bt-layer.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -31,49 +31,69 @@
</span><span class="cx">     document.getElementById(&quot;console&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function centerMouseOn(elementId)
</del><ins>+function centerMouseOn(element)
</ins><span class="cx"> {
</span><del>-    var element = document.getElementById(elementId);
</del><span class="cx">     eventSender.mouseMoveTo(element.offsetLeft + element.offsetWidth / 2,
</span><span class="cx">         element.offsetTop + element.offsetHeight / 2);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function test()
</del><ins>+function testRTL()
</ins><span class="cx"> {
</span><del>-    if (window.testRunner)
-        testRunner.dumpAsText();
</del><ins>+    var rtl = document.getElementById(&quot;rtl&quot;);
+    centerMouseOn(rtl);
+    var offsetBefore = rtl.scrollLeft;
</ins><span class="cx"> 
</span><del>-    if (!window.eventSender || !window.eventSender.mouseScrollBy) {
-        log(&quot;This test requires DumpRenderTree with eventSender.mouseScrollBy.&quot;);
-        return;
</del><ins>+    rtl.onscroll = function() {
+        var offsetAfter = rtl.scrollLeft;
+        if (offsetBefore &gt; offsetAfter)
+            log(&quot;rtl: PASS&quot;);
+        else {
+            log(&quot;rtl: FAIL&quot;);
+            log(&quot;scrollLeft before: &quot; + offsetBefore);
+            log(&quot;scrollLeft after: &quot; + offsetAfter);
+        }
+        testBT();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    centerMouseOn(&quot;rtl&quot;);
-    var offsetBefore = document.getElementById(&quot;rtl&quot;).scrollLeft;
</del><span class="cx">     eventSender.mouseScrollBy(1, 0);
</span><del>-    var offsetAfter = document.getElementById(&quot;rtl&quot;).scrollLeft;
-    if (offsetBefore &gt; offsetAfter)
-        log(&quot;rtl: PASS&quot;);
-    else {
-        log(&quot;rtl: FAIL&quot;);
-        log(&quot;scrollLeft before: &quot; + offsetBefore);
-        log(&quot;scrollLeft after: &quot; + offsetAfter);
</del><ins>+}
+
+function testBT()
+{
+    var bt = document.getElementById(&quot;bt&quot;);
+    centerMouseOn(bt);
+    offsetBefore = bt.scrollTop;
+    bt.onscroll = function() {
+        offsetAfter = bt.scrollTop;
+        if (offsetBefore &gt; offsetAfter)
+            log(&quot;bt: PASS&quot;);
+        else {
+            log(&quot;bt: FAIL&quot;);
+            log(&quot;scrollTop before: &quot; + offsetBefore);
+            log(&quot;scrollTop after: &quot; + offsetAfter);
+        }
+
+        document.body.removeChild(document.getElementById(&quot;rtl&quot;));
+        document.body.removeChild(document.getElementById(&quot;bt&quot;));
+        testRunner.notifyDone();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    centerMouseOn(&quot;bt&quot;);
-    offsetBefore = document.getElementById(&quot;bt&quot;).scrollTop;
</del><span class="cx">     eventSender.mouseScrollBy(0, 1);
</span><del>-    offsetAfter = document.getElementById(&quot;bt&quot;).scrollTop;
-    if (offsetBefore &gt; offsetAfter)
-        log(&quot;bt: PASS&quot;);
-    else {
-        log(&quot;bt: FAIL&quot;);
-        log(&quot;scrollTop before: &quot; + offsetBefore);
-        log(&quot;scrollTop after: &quot; + offsetAfter);
</del><ins>+}
+
+function test()
+{
+    if (window.testRunner) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    document.body.removeChild(document.getElementById(&quot;rtl&quot;));
-    document.body.removeChild(document.getElementById(&quot;bt&quot;));
</del><ins>+    if (!window.eventSender || !window.eventSender.mouseScrollBy) {
+        log(&quot;This test requires DumpRenderTree with eventSender.mouseScrollBy.&quot;);
+        return;
+    }
+
+    testRTL();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> test();
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolldivlatcheddivwithhandlerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div-with-handler.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -84,9 +84,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolldivlatcheddivhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-div.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -78,9 +78,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolldivlatchedmainframewithhandlerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -90,10 +90,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx">     // We should finish via the scroll event; this will fire in the case of failure when the page doesn't scroll.
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolldivlatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-div-latched-mainframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -83,10 +83,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx">     // We should finish via the scroll event; this will fire in the case of failure when the page doesn't scroll.
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframewithhandlerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -62,9 +62,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchediframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -52,9 +52,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframewithhandlerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -65,10 +65,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -58,10 +58,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrolliframelatchedselecthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -57,9 +57,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrollmainframezoomhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -45,9 +45,9 @@
</span><span class="cx">                 var startPosX = Math.round(selectTarget.offsetLeft) + 20;
</span><span class="cx">                 var startPosY = Math.round(selectTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the target div
</span><span class="cx">                 eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the target div
</span><del>-                eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', true);
</del><ins>+                eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
</ins><span class="cx">                 for (var i = 0; i &lt; 40; ++i) {
</span><del>-                    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, 'changed', 'none', true);
</del><ins>+                    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, 'changed', 'none');
</ins><span class="cx">                 }
</span><span class="cx">                 eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">                  
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedmainframewithhandlerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -89,10 +89,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedmainframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -83,10 +83,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedselectwithhandlerexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler-expected.txt        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -13,17 +13,16 @@
</span><span class="cx"> div display height = 111
</span><span class="cx"> Mouse moved to (30, 238)
</span><span class="cx"> PASS Page did not receive wheel events.
</span><del>-Document was initial target for 8 of the wheel events.
</del><span class="cx"> (GraphicsLayer
</span><span class="cx">   (anchor 0.00 0.00)
</span><del>-  (bounds 2008.00 2311.00)
</del><ins>+  (bounds 2008.00 2296.00)
</ins><span class="cx">   (visible rect 0.00, 0.00 785.00 x 585.00)
</span><span class="cx">   (coverage rect 0.00, 0.00 785.00 x 585.00)
</span><span class="cx">   (intersects coverage rect 1)
</span><span class="cx">   (contentsScale 1.00)
</span><span class="cx">   (children 1
</span><span class="cx">     (GraphicsLayer
</span><del>-      (bounds 2008.00 2311.00)
</del><ins>+      (bounds 2008.00 2296.00)
</ins><span class="cx">       (contentsOpaque 1)
</span><span class="cx">       (visible rect 0.00, 0.00 785.00 x 585.00)
</span><span class="cx">       (coverage rect 0.00, 0.00 1570.00 x 1755.00)
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedselectwithhandlerhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select-with-handler.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -57,8 +57,6 @@
</span><span class="cx">     else
</span><span class="cx">         testPassed(&quot;Page did not receive wheel events.&quot;);
</span><span class="cx"> 
</span><del>-    debug(&quot;Document was initial target for &quot; + wheelCount + &quot; of the wheel events.&quot;);
-
</del><span class="cx">     if (window.internals) {
</span><span class="cx">         document.getElementById('layers').innerText = internals.layerTreeAsText(document,
</span><span class="cx">             internals.LAYER_TREE_INCLUDES_VISIBLE_RECTS | internals.LAYER_TREE_INCLUDES_TILE_CACHES);
</span><span class="lines">@@ -88,9 +86,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingfastscrollselectlatchedselecthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-select.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -80,9 +80,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingiframe_in_iframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/iframe_in_iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/iframe_in_iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/iframe_in_iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -77,9 +77,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingoverflowscrollreducedcontenthtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-reduced-content.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-reduced-content.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-reduced-content.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -55,9 +55,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx"> 
</span><span class="cx">     setTimeout(decreaseContentSize, 100);
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingoverflowscrollzerodeltawheeleventshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/overflow-scroll-zero-delta-wheel-events.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -46,9 +46,6 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForZero);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingrootoverflowwithmousewheelhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/root-overflow-with-mousewheel.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/root-overflow-with-mousewheel.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/root-overflow-with-mousewheel.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -27,10 +27,7 @@
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx">     eventSender.callAfterScrollingCompletes(checkForScroll);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapiframehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -83,10 +83,10 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * iframeTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * iframeTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollSnap(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -132,17 +132,14 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * iframeTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * iframeTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollGlide(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatory2doverflowhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -58,19 +58,16 @@
</span><span class="cx">                 y: divTarget.scrollTop
</span><span class="cx">             };
</span><span class="cx">             eventSender.mouseMoveTo(100, 100);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, &quot;began&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;ended&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;begin&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;none&quot;, &quot;end&quot;, false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, &quot;began&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;ended&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;begin&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, &quot;none&quot;, &quot;continue&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;none&quot;, &quot;end&quot;);
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForSingleAxisGlide);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -89,10 +86,10 @@
</span><span class="cx">             };
</span><span class="cx"> 
</span><span class="cx">             eventSender.mouseMoveTo(100, 100);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(1, 1, &quot;began&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(1, 1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(1, 1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;ended&quot;, &quot;none&quot;, false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(1, 1, &quot;began&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(1, 1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(1, 1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;ended&quot;, &quot;none&quot;);
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollSnap);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -113,17 +110,14 @@
</span><span class="cx">             };
</span><span class="cx"> 
</span><span class="cx">             eventSender.mouseMoveTo(100, 100);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;began&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;changed&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;ended&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;begin&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;continue&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;none&quot;, &quot;end&quot;, false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;began&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;changed&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;ended&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;begin&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, -1, &quot;none&quot;, &quot;continue&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, &quot;none&quot;, &quot;end&quot;);
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollGlide);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorybordershtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -116,10 +116,10 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollSnap(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -163,17 +163,14 @@
</span><span class="cx">             var startPosX = windowPosition.x + divTarget.clientWidth - 10;
</span><span class="cx">             var startPosY = windowPosition.y + 50;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollGlide(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframehorizontalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -51,10 +51,10 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollSnap);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -76,17 +76,14 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollGlide);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframeslowhorizontalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -51,10 +51,10 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollSnap);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -76,17 +76,14 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-1, 0, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(-4, 0, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollGlide);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframeslowverticalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -51,10 +51,10 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollSnap);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -76,17 +76,14 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollGlide);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorymainframeverticalhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -51,10 +51,10 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollSnap);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -76,17 +76,14 @@
</span><span class="cx">             var startPosX = divTarget.offsetLeft + 20;
</span><span class="cx">             var startPosY = divTarget.offsetTop + 20;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -4, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(checkForScrollGlide);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryoverflowstatelesshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-stateless.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -49,9 +49,9 @@
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY);
</span><span class="cx">             // Each unit of stateless scroll is scaled by 10 pixels.
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, &quot;none&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, &quot;none&quot;, &quot;none&quot;, false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, &quot;none&quot;, &quot;none&quot;, false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, &quot;none&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, &quot;none&quot;, &quot;none&quot;);
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -10, &quot;none&quot;, &quot;none&quot;);
</ins><span class="cx">             // Wait for the snapping to finish.
</span><span class="cx">             setTimeout(function() {
</span><span class="cx">                 if (divTarget.scrollTop != 400)
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryoverflowhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -106,10 +106,10 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollSnap(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -153,17 +153,14 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollGlide(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatorypaddinghtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -114,10 +114,10 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollSnap(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -163,17 +163,14 @@
</span><span class="cx">             var startPosX = windowPosition.x + divTarget.clientWidth - 10;
</span><span class="cx">             var startPosY = windowPosition.y + 50;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollGlide(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingscrollsnapscrollsnapmandatoryrotatedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -108,10 +108,10 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollSnap(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -155,17 +155,14 @@
</span><span class="cx">             var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
</span><span class="cx">             var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
</span><span class="cx">             eventSender.mouseMoveTo(startPosX, startPosY);
</span><del>-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue', false);
-            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end', false);
</del><ins>+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'began', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'changed', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'begin');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(dx, dy, 'none', 'continue');
+            eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</ins><span class="cx">             eventSender.callAfterScrollingCompletes(function() { return checkForScrollGlide(targetLabel); });
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTeststileddrawingscrollingwheeleventswithnodeltahtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/tiled-drawing/scrolling/wheel-events-with-no-delta.html (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/tiled-drawing/scrolling/wheel-events-with-no-delta.html        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/LayoutTests/tiled-drawing/scrolling/wheel-events-with-no-delta.html        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -19,15 +19,11 @@
</span><span class="cx"> function scrollTest()
</span><span class="cx"> {
</span><span class="cx">     eventSender.mouseMoveTo(20, 20);
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'began', 'none');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'changed', 'none');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
</span><del>-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'begin');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
</del><ins>+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'begin');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'continue');
</ins><span class="cx">     eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/ChangeLog        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -1,3 +1,94 @@
</span><ins>+2015-08-21  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        Improve how UI events are dispatched by WebKitTestRunner
+        https://bugs.webkit.org/show_bug.cgi?id=148326
+
+        Reviewed by Anders Carlsson.
+
+        Added &quot;fully synchronous mode for testing&quot;, in which all messages are dispatched
+        synchronously.
+
+        When an async message is sent in this mode, it is wrapped into a sync one automatically.
+
+        A client must opt in, either by using WKBundlePagePostSynchronousMessageForTesting(),
+        or by calling WKContextConfigurationAllowFullySynchronousModeForTesting().
+        This makes sure that we don't increase potential for IPC misuse.
+
+        * WebProcess/WebPage/WebPage.messages.in: Yay, fewer messages!
+
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetShouldSendEventsSynchronously): Deleted.
+        * UIProcess/API/C/WKPagePrivate.h:
+        We no longer need WKPageSetShouldSendEventsSynchronously and associated custom messages.
+
+        * WebProcess/WebPage/EventDispatcher.cpp:
+        (WebKit::EventDispatcher::wheelEvent):
+        (WebKit::updateWheelEventTestTriggersIfNeeded): Deleted.
+        Removed code that was only needed to support pseudo-syncronous scrolling in tests.
+
+        * Platform/IPC/Connection.cpp:
+        (IPC::Connection::sendMessage):
+        (IPC::Connection::dispatchSyncMessage):
+        (IPC::Connection::dispatchMessage):
+        * Platform/IPC/Connection.h:
+        (IPC::Connection::allowFullySynchronousModeForTesting):
+        (IPC::Connection::sendSync):
+        * Platform/IPC/MessageDecoder.cpp:
+        (IPC::MessageDecoder::shouldDispatchMessageWhenWaitingForSyncReply):
+        (IPC::MessageDecoder::shouldUseFullySynchronousModeForTesting):
+        (IPC::MessageDecoder::setImportanceAssertion):
+        (IPC::MessageDecoder::unwrapForTesting):
+        * Platform/IPC/MessageDecoder.h:
+        (IPC::MessageDecoder::UUID):
+        * Platform/IPC/MessageEncoder.cpp:
+        (IPC::MessageEncoder::setShouldDispatchMessageWhenWaitingForSyncReply):
+        (IPC::MessageEncoder::setFullySynchronousModeForTesting):
+        (IPC::MessageEncoder::wrapForTesting):
+        * Platform/IPC/MessageEncoder.h:
+        (IPC::MessageEncoder::UUID):
+        * Platform/IPC/MessageFlags.h:
+        * UIProcess/API/APIProcessPoolConfiguration.cpp:
+        (API::ProcessPoolConfiguration::copy):
+        * UIProcess/API/APIProcessPoolConfiguration.h:
+        * UIProcess/API/C/WKContextConfigurationRef.cpp:
+        (WKContextConfigurationSetMediaKeysStorageDirectory):
+        (WKContextConfigurationAllowFullySynchronousModeForTesting):
+        * UIProcess/API/C/WKContextConfigurationRef.h:
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        (WebKit::WebPageProxy::handleMouseEvent):
+        (WebKit::WebPageProxy::sendWheelEvent):
+        (WebKit::WebPageProxy::handleKeyboardEvent):
+        (WebKit::WebPageProxy::handleTouchEvent):
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::renderTreeSize):
+        (WebKit::WebPageProxy::setShouldSendEventsSynchronously): Deleted.
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::processDidFinishLaunching):
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKBundlePagePostMessage):
+        (WKBundlePagePostSynchronousMessageForTesting):
+        (WKBundlePagePostSynchronousMessage): Deleted.
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::mouseEvent):
+        (WebKit::handleWheelEvent):
+        (WebKit::WebPage::wheelEvent):
+        (WebKit::handleKeyEvent):
+        (WebKit::WebPage::keyEvent):
+        (WebKit::WebPage::validateCommand):
+        (WebKit::WebPage::touchEvent):
+        (WebKit::WebPage::scroll):
+        (WebKit::WebPage::postMessage):
+        (WebKit::WebPage::postSynchronousMessageForTesting):
+        (WebKit::WebPage::mouseEventSyncForTesting): Deleted.
+        (WebKit::WebPage::wheelEventSyncForTesting): Deleted.
+        (WebKit::WebPage::keyEventSyncForTesting): Deleted.
+        (WebKit::WebPage::touchEventSyncForTesting): Deleted.
+        (WebKit::WebPage::postSynchronousMessage): Deleted.
+        * WebProcess/WebPage/WebPage.h:
+
</ins><span class="cx"> 2015-08-20  Matt Rajca  &lt;mrajca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Media Session: let UI clients change the volume of the focused media element
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/Connection.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/Connection.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/Connection.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -349,6 +349,14 @@
</span><span class="cx">     if (!isValid())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><ins>+    if (m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting &amp;&amp; !encoder-&gt;isSyncMessage() &amp;&amp; !(encoder-&gt;messageReceiverName() == &quot;IPC&quot;)) {
+        uint64_t syncRequestID;
+        auto wrappedMessage = createSyncMessageEncoder(&quot;IPC&quot;, &quot;WrappedAsyncMessageForTesting&quot;, encoder-&gt;destinationID(), syncRequestID);
+        wrappedMessage-&gt;setFullySynchronousModeForTesting();
+        wrappedMessage-&gt;wrapForTesting(WTF::move(encoder));
+        return static_cast&lt;bool&gt;(sendSyncMessage(syncRequestID, WTF::move(wrappedMessage), std::chrono::milliseconds::max()));
+    }
+
</ins><span class="cx">     if (messageSendFlags &amp; DispatchMessageEvenWhenWaitingForSyncReply
</span><span class="cx">         &amp;&amp; (!m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage
</span><span class="cx">             || m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount))
</span><span class="lines">@@ -832,9 +840,21 @@
</span><span class="cx">     auto replyEncoder = std::make_unique&lt;MessageEncoder&gt;(&quot;IPC&quot;, &quot;SyncMessageReply&quot;, syncRequestID);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    // Hand off both the decoder and encoder to the client.
-    m_client-&gt;didReceiveSyncMessage(*this, decoder, replyEncoder);
</del><ins>+    if (decoder.messageReceiverName() == &quot;IPC&quot; &amp;&amp; decoder.messageName() == &quot;WrappedAsyncMessageForTesting&quot;) {
+        if (!m_fullySynchronousModeIsAllowedForTesting) {
+            decoder.markInvalid();
+            return;
+        }
+        std::unique_ptr&lt;MessageDecoder&gt; unwrappedDecoder = MessageDecoder::unwrapForTesting(decoder);
+        RELEASE_ASSERT(unwrappedDecoder);
+        processIncomingMessage(WTF::move(unwrappedDecoder));
</ins><span class="cx"> 
</span><ins>+        SyncMessageState::singleton().dispatchMessages(nullptr);
+    } else {
+        // Hand off both the decoder and encoder to the client.
+        m_client-&gt;didReceiveSyncMessage(*this, decoder, replyEncoder);
+    }
+
</ins><span class="cx">     // FIXME: If the message was invalid, we should send back a SyncMessageError.
</span><span class="cx">     ASSERT(!decoder.isInvalid());
</span><span class="cx"> 
</span><span class="lines">@@ -887,6 +907,14 @@
</span><span class="cx">     if (!m_client)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><ins>+    if (message-&gt;shouldUseFullySynchronousModeForTesting()) {
+        if (!m_fullySynchronousModeIsAllowedForTesting) {
+            m_client-&gt;didReceiveInvalidMessage(*this, message-&gt;messageReceiverName(), message-&gt;messageName());
+            return;
+        }
+        m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting++;
+    }
+
</ins><span class="cx">     m_inDispatchMessageCount++;
</span><span class="cx"> 
</span><span class="cx">     if (message-&gt;shouldDispatchMessageWhenWaitingForSyncReply())
</span><span class="lines">@@ -908,6 +936,9 @@
</span><span class="cx">     if (message-&gt;shouldDispatchMessageWhenWaitingForSyncReply())
</span><span class="cx">         m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount--;
</span><span class="cx"> 
</span><ins>+    if (message-&gt;shouldUseFullySynchronousModeForTesting())
+        m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting--;
+
</ins><span class="cx">     if (m_didReceiveInvalidMessage &amp;&amp; m_client)
</span><span class="cx">         m_client-&gt;didReceiveInvalidMessage(*this, message-&gt;messageReceiverName(), message-&gt;messageName());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/Connection.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/Connection.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/Connection.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -68,6 +68,7 @@
</span><span class="cx">     // Some platform accessibility clients can't suspend gracefully and need to spin the run loop so WebProcess doesn't hang.
</span><span class="cx">     // FIXME (126021): Remove when no platforms need to support this.
</span><span class="cx">     SpinRunLoopWhileWaitingForReply = 1 &lt;&lt; 1,
</span><ins>+    UseFullySynchronousModeForTesting = 1 &lt;&lt; 2,
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> enum WaitForMessageFlags {
</span><span class="lines">@@ -205,6 +206,8 @@
</span><span class="cx">     void uninstallIncomingSyncMessageCallback(uint64_t);
</span><span class="cx">     bool hasIncomingSyncMessage();
</span><span class="cx"> 
</span><ins>+    void allowFullySynchronousModeForTesting() { m_fullySynchronousModeIsAllowedForTesting = true; }
+
</ins><span class="cx"> private:
</span><span class="cx">     Connection(Identifier, bool isServer, Client&amp;);
</span><span class="cx">     void platformInitialize(Identifier);
</span><span class="lines">@@ -256,6 +259,8 @@
</span><span class="cx">     unsigned m_inSendSyncCount;
</span><span class="cx">     unsigned m_inDispatchMessageCount;
</span><span class="cx">     unsigned m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount;
</span><ins>+    unsigned m_inDispatchMessageMarkedToUseFullySynchronousModeForTesting { 0 };
+    bool m_fullySynchronousModeIsAllowedForTesting { false };
</ins><span class="cx">     bool m_didReceiveInvalidMessage;
</span><span class="cx"> 
</span><span class="cx">     // Incoming messages.
</span><span class="lines">@@ -368,7 +373,12 @@
</span><span class="cx"> 
</span><span class="cx">     uint64_t syncRequestID = 0;
</span><span class="cx">     std::unique_ptr&lt;MessageEncoder&gt; encoder = createSyncMessageEncoder(T::receiverName(), T::name(), destinationID, syncRequestID);
</span><del>-    
</del><ins>+
+    if (syncSendFlags &amp; SyncMessageSendFlags::UseFullySynchronousModeForTesting) {
+        encoder-&gt;setFullySynchronousModeForTesting();
+        m_fullySynchronousModeIsAllowedForTesting = true;
+    }
+
</ins><span class="cx">     // Encode the rest of the input arguments.
</span><span class="cx">     encoder-&gt;encode(message.arguments());
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCMessageDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/MessageDecoder.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/MessageDecoder.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/MessageDecoder.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -74,6 +74,11 @@
</span><span class="cx">     return m_messageFlags &amp; DispatchMessageWhenWaitingForSyncReply;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+bool MessageDecoder::shouldUseFullySynchronousModeForTesting() const
+{
+    return m_messageFlags &amp; UseFullySynchronousModeForTesting;
+}
+
</ins><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> void MessageDecoder::setImportanceAssertion(std::unique_ptr&lt;ImportanceAssertion&gt; assertion)
</span><span class="cx"> {
</span><span class="lines">@@ -81,4 +86,21 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+std::unique_ptr&lt;MessageDecoder&gt; MessageDecoder::unwrapForTesting(MessageDecoder&amp; decoder)
+{
+    ASSERT(decoder.isSyncMessage());
+
+    Vector&lt;Attachment&gt; attachments;
+    Attachment attachment;
+    while (decoder.removeAttachment(attachment))
+        attachments.append(WTF::move(attachment));
+    attachments.reverse();
+
+    DataReference wrappedMessage;
+    if (!decoder.decode(wrappedMessage))
+        return nullptr;
+
+    return std::make_unique&lt;MessageDecoder&gt;(wrappedMessage, WTF::move(attachments));
+}
+
</ins><span class="cx"> } // namespace IPC
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCMessageDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/MessageDecoder.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/MessageDecoder.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/MessageDecoder.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -54,6 +54,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool isSyncMessage() const;
</span><span class="cx">     bool shouldDispatchMessageWhenWaitingForSyncReply() const;
</span><ins>+    bool shouldUseFullySynchronousModeForTesting() const;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">     void setImportanceAssertion(std::unique_ptr&lt;ImportanceAssertion&gt;);
</span><span class="lines">@@ -69,6 +70,8 @@
</span><span class="cx">     const uuid_t&amp; UUID() const { return m_UUID; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    static std::unique_ptr&lt;MessageDecoder&gt; unwrapForTesting(MessageDecoder&amp;);
+
</ins><span class="cx"> private:
</span><span class="cx">     uint8_t m_messageFlags;
</span><span class="cx">     StringReference m_messageReceiverName;
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCMessageEncodercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/MessageEncoder.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/MessageEncoder.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/MessageEncoder.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #include &quot;MessageEncoder.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ArgumentCoders.h&quot;
</span><ins>+#include &quot;DataReference.h&quot;
</ins><span class="cx"> #include &quot;MessageFlags.h&quot;
</span><span class="cx"> #include &quot;MessageRecorder.h&quot;
</span><span class="cx"> #include &quot;StringReference.h&quot;
</span><span class="lines">@@ -100,4 +101,24 @@
</span><span class="cx">         *buffer() &amp;= ~DispatchMessageWhenWaitingForSyncReply;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void MessageEncoder::setFullySynchronousModeForTesting()
+{
+    *buffer() |= UseFullySynchronousModeForTesting;
+}
+
+void MessageEncoder::wrapForTesting(std::unique_ptr&lt;MessageEncoder&gt; original)
+{
+    ASSERT(isSyncMessage());
+    ASSERT(!original-&gt;isSyncMessage());
+
+    original-&gt;setShouldDispatchMessageWhenWaitingForSyncReply(true);
+
+    encodeVariableLengthByteArray(DataReference(original-&gt;buffer(), original-&gt;bufferSize()));
+
+    Vector&lt;Attachment&gt; attachments = original-&gt;releaseAttachments();
+    reserve(attachments.size());
+    for (Attachment&amp; attachment : attachments)
+        addAttachment(WTF::move(attachment));
+}
+
</ins><span class="cx"> } // namespace IPC
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCMessageEncoderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/MessageEncoder.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/MessageEncoder.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/MessageEncoder.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -56,10 +56,14 @@
</span><span class="cx">     void setShouldDispatchMessageWhenWaitingForSyncReply(bool);
</span><span class="cx">     bool shouldDispatchMessageWhenWaitingForSyncReply() const;
</span><span class="cx"> 
</span><ins>+    void setFullySynchronousModeForTesting();
+
</ins><span class="cx"> #if HAVE(DTRACE)
</span><span class="cx">     const uuid_t&amp; UUID() const { return m_UUID; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    void wrapForTesting(std::unique_ptr&lt;MessageEncoder&gt;);
+
</ins><span class="cx"> private:
</span><span class="cx">     void encodeHeader();
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformIPCMessageFlagsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Platform/IPC/MessageFlags.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/IPC/MessageFlags.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/Platform/IPC/MessageFlags.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> enum MessageFlags {
</span><span class="cx">     SyncMessage = 1 &lt;&lt; 0,
</span><span class="cx">     DispatchMessageWhenWaitingForSyncReply = 1 &lt;&lt; 1,
</span><ins>+    UseFullySynchronousModeForTesting = 1 &lt;&lt; 2,
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace IPC
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -87,6 +87,7 @@
</span><span class="cx">     copy-&gt;m_mediaKeysStorageDirectory = this-&gt;m_mediaKeysStorageDirectory;
</span><span class="cx">     copy-&gt;m_webSQLDatabaseDirectory = this-&gt;m_webSQLDatabaseDirectory;
</span><span class="cx">     copy-&gt;m_cachePartitionedURLSchemes = this-&gt;m_cachePartitionedURLSchemes;
</span><ins>+    copy-&gt;m_fullySynchronousModeIsAllowedForTesting = this-&gt;m_fullySynchronousModeIsAllowedForTesting;
</ins><span class="cx">     
</span><span class="cx">     return copy;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -87,6 +87,9 @@
</span><span class="cx">     const Vector&lt;WTF::String&gt;&amp; cachePartitionedURLSchemes() { return m_cachePartitionedURLSchemes; }
</span><span class="cx">     void setCachePartitionedURLSchemes(Vector&lt;WTF::String&gt;&amp;&amp; cachePartitionedURLSchemes) { m_cachePartitionedURLSchemes = WTF::move(cachePartitionedURLSchemes); }
</span><span class="cx"> 
</span><ins>+    bool fullySynchronousModeIsAllowedForTesting() const { return m_fullySynchronousModeIsAllowedForTesting; }
+    void setFullySynchronousModeIsAllowedForTesting(bool allowed) { m_fullySynchronousModeIsAllowedForTesting = allowed; }
+
</ins><span class="cx"> private:
</span><span class="cx">     bool m_shouldHaveLegacyDataStore { false };
</span><span class="cx"> 
</span><span class="lines">@@ -104,6 +107,7 @@
</span><span class="cx">     WTF::String m_webSQLDatabaseDirectory;
</span><span class="cx">     WTF::String m_mediaKeysStorageDirectory;
</span><span class="cx">     Vector&lt;WTF::String&gt; m_cachePartitionedURLSchemes;
</span><ins>+    bool m_fullySynchronousModeIsAllowedForTesting { false };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -111,3 +111,13 @@
</span><span class="cx"> {
</span><span class="cx">     toImpl(configuration)-&gt;setMediaKeysStorageDirectory(toImpl(mediaKeysStorageDirectory)-&gt;string());
</span><span class="cx"> }
</span><ins>+
+bool WKContextConfigurationFullySynchronousModeIsAllowedForTesting(WKContextConfigurationRef configuration)
+{
+    return toImpl(configuration)-&gt;fullySynchronousModeIsAllowedForTesting();
+}
+
+void WKContextConfigurationSetFullySynchronousModeIsAllowedForTesting(WKContextConfigurationRef configuration, bool allowed)
+{
+    toImpl(configuration)-&gt;setFullySynchronousModeIsAllowedForTesting(allowed);
+}
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -55,6 +55,9 @@
</span><span class="cx"> WK_EXPORT WKStringRef WKContextConfigurationCopyMediaKeysStorageDirectory(WKContextConfigurationRef configuration);
</span><span class="cx"> WK_EXPORT void WKContextConfigurationSetMediaKeysStorageDirectory(WKContextConfigurationRef configuration, WKStringRef mediaKeysStorageDirectory);
</span><span class="cx"> 
</span><ins>+WK_EXPORT bool WKContextConfigurationFullySynchronousModeIsAllowedForTesting(WKContextConfigurationRef configuration);
+WK_EXPORT void WKContextConfigurationSetFullySynchronousModeIsAllowedForTesting(WKContextConfigurationRef configuration, bool allowed);
+
</ins><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -2283,11 +2283,6 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-void WKPageSetShouldSendEventsSynchronously(WKPageRef page, bool sync)
-{
-    toImpl(page)-&gt;setShouldSendEventsSynchronously(sync);
-}
-
</del><span class="cx"> bool WKPageGetAllowsRemoteInspection(WKPageRef page)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagePrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPagePrivate.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -82,8 +82,6 @@
</span><span class="cx"> WK_EXPORT void WKPageDrawPagesToPDF(WKPageRef page, WKFrameRef frame, WKPrintInfo printInfo, uint32_t first, uint32_t count, WKPageDrawToPDFFunction callback, void* context);
</span><span class="cx"> WK_EXPORT void WKPageEndPrinting(WKPageRef page);
</span><span class="cx"> 
</span><del>-WK_EXPORT void WKPageSetShouldSendEventsSynchronously(WKPageRef page, bool sync);
-
</del><span class="cx"> WK_EXPORT bool WKPageGetAllowsRemoteInspection(WKPageRef page);
</span><span class="cx"> WK_EXPORT void WKPageSetAllowsRemoteInspection(WKPageRef page, bool allow);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -427,7 +427,6 @@
</span><span class="cx">     , m_sessionRestorationRenderTreeSize(0)
</span><span class="cx">     , m_wantsSessionRestorationRenderTreeSizeThresholdEvent(false)
</span><span class="cx">     , m_hitRenderTreeSizeThreshold(false)
</span><del>-    , m_shouldSendEventsSynchronously(false)
</del><span class="cx">     , m_suppressVisibilityUpdates(false)
</span><span class="cx">     , m_autoSizingShouldExpandToViewHeight(false)
</span><span class="cx">     , m_mediaVolume(1)
</span><span class="lines">@@ -1686,12 +1685,7 @@
</span><span class="cx">     if (event.type() == WebEvent::MouseDown)
</span><span class="cx">         m_currentlyProcessedMouseDownEvent = std::make_unique&lt;NativeWebMouseEvent&gt;(event);
</span><span class="cx"> 
</span><del>-    if (m_shouldSendEventsSynchronously) {
-        bool handled = false;
-        m_process-&gt;sendSync(Messages::WebPage::MouseEventSyncForTesting(event), Messages::WebPage::MouseEventSyncForTesting::Reply(handled), m_pageID);
-        didReceiveEvent(event.type(), handled);
-    } else
-        m_process-&gt;send(Messages::WebPage::MouseEvent(event), m_pageID);
</del><ins>+    m_process-&gt;send(Messages::WebPage::MouseEvent(event), m_pageID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if MERGE_WHEEL_EVENTS
</span><span class="lines">@@ -1798,13 +1792,6 @@
</span><span class="cx"> {
</span><span class="cx">     m_process-&gt;responsivenessTimer()-&gt;start();
</span><span class="cx"> 
</span><del>-    if (m_shouldSendEventsSynchronously) {
-        bool handled = false;
-        m_process-&gt;sendSync(Messages::WebPage::WheelEventSyncForTesting(event), Messages::WebPage::WheelEventSyncForTesting::Reply(handled), m_pageID);
-        didReceiveEvent(event.type(), handled);
-        return;
-    }
-
</del><span class="cx">     m_process-&gt;send(
</span><span class="cx">         Messages::EventDispatcher::WheelEvent(
</span><span class="cx">             m_pageID,
</span><span class="lines">@@ -1826,11 +1813,7 @@
</span><span class="cx">     m_keyEventQueue.append(event);
</span><span class="cx"> 
</span><span class="cx">     m_process-&gt;responsivenessTimer()-&gt;start();
</span><del>-    if (m_shouldSendEventsSynchronously) {
-        bool handled = false;
-        m_process-&gt;sendSync(Messages::WebPage::KeyEventSyncForTesting(event), Messages::WebPage::KeyEventSyncForTesting::Reply(handled), m_pageID);
-        didReceiveEvent(event.type(), handled);
-    } else if (m_keyEventQueue.size() == 1) // Otherwise, sent from DidReceiveEvent message handler.
</del><ins>+    if (m_keyEventQueue.size() == 1) // Otherwise, sent from DidReceiveEvent message handler.
</ins><span class="cx">         m_process-&gt;send(Messages::WebPage::KeyEvent(event), m_pageID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1973,12 +1956,7 @@
</span><span class="cx">     if (!m_isPageSuspended) {
</span><span class="cx">         m_touchEventQueue.append(event);
</span><span class="cx">         m_process-&gt;responsivenessTimer()-&gt;start();
</span><del>-        if (m_shouldSendEventsSynchronously) {
-            bool handled = false;
-            m_process-&gt;sendSync(Messages::WebPage::TouchEventSyncForTesting(event), Messages::WebPage::TouchEventSyncForTesting::Reply(handled), m_pageID);
-            didReceiveEvent(event.type(), handled);
-        } else
-            m_process-&gt;send(Messages::WebPage::TouchEvent(event), m_pageID);
</del><ins>+        m_process-&gt;send(Messages::WebPage::TouchEvent(event), m_pageID);
</ins><span class="cx">     } else {
</span><span class="cx">         if (m_touchEventQueue.isEmpty()) {
</span><span class="cx">             bool isEventHandled = false;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -911,8 +911,6 @@
</span><span class="cx"> 
</span><span class="cx">     uint64_t renderTreeSize() const { return m_renderTreeSize; }
</span><span class="cx"> 
</span><del>-    void setShouldSendEventsSynchronously(bool sync) { m_shouldSendEventsSynchronously = sync; };
-
</del><span class="cx">     void printMainFrame();
</span><span class="cx">     
</span><span class="cx">     void setMediaVolume(float);
</span><span class="lines">@@ -1724,8 +1722,6 @@
</span><span class="cx">     bool m_wantsSessionRestorationRenderTreeSizeThresholdEvent;
</span><span class="cx">     bool m_hitRenderTreeSizeThreshold;
</span><span class="cx"> 
</span><del>-    bool m_shouldSendEventsSynchronously;
-
</del><span class="cx">     bool m_suppressVisibilityUpdates;
</span><span class="cx">     bool m_autoSizingShouldExpandToViewHeight;
</span><span class="cx">     WebCore::IntSize m_minimumLayoutSize;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -782,6 +782,9 @@
</span><span class="cx">         process-&gt;send(Messages::WebProcess::StartMemorySampler(sampleLogSandboxHandle, sampleLogFilePath, m_memorySamplerInterval), 0);
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    if (m_configuration-&gt;fullySynchronousModeIsAllowedForTesting())
+        process-&gt;connection()-&gt;allowFullySynchronousModeForTesting();
+
</ins><span class="cx">     m_connectionClient.didCreateConnection(this, process-&gt;webConnection());
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -605,11 +605,13 @@
</span><span class="cx">     toImpl(pageRef)-&gt;postMessage(toWTFString(messageNameRef), toImpl(messageBodyRef));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WKBundlePagePostSynchronousMessage(WKBundlePageRef pageRef, WKStringRef messageNameRef, WKTypeRef messageBodyRef, WKTypeRef* returnDataRef)
</del><ins>+void WKBundlePagePostSynchronousMessageForTesting(WKBundlePageRef pageRef, WKStringRef messageNameRef, WKTypeRef messageBodyRef, WKTypeRef* returnDataRef)
</ins><span class="cx"> {
</span><ins>+    WebPage* page = toImpl(pageRef);
+    page-&gt;layoutIfNeeded();
+
</ins><span class="cx">     RefPtr&lt;API::Object&gt; returnData;
</span><del>-    toImpl(pageRef)-&gt;postSynchronousMessage(toWTFString(messageNameRef), toImpl(messageBodyRef), returnData);
</del><ins>+    page-&gt;postSynchronousMessageForTesting(toWTFString(messageNameRef), toImpl(messageBodyRef), returnData);
</ins><span class="cx">     if (returnDataRef)
</span><span class="cx">         *returnDataRef = toAPI(returnData.release().leakRef());
</span><span class="cx"> }
</span><del>-
</del></span></pre></div>
<a id="trunkSourceWebKit2WebProcessInjectedBundleAPIcWKBundlePageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -115,8 +115,10 @@
</span><span class="cx"> WK_EXPORT void WKBundlePageRegisterScrollOperationCompletionCallback(WKBundlePageRef, WKBundlePageTestNotificationCallback, void* context);
</span><span class="cx"> 
</span><span class="cx"> WK_EXPORT void WKBundlePagePostMessage(WKBundlePageRef page, WKStringRef messageName, WKTypeRef messageBody);
</span><del>-WK_EXPORT void WKBundlePagePostSynchronousMessage(WKBundlePageRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData);
</del><span class="cx"> 
</span><ins>+// Switches a connection into a fully synchronous mode, so all messages become synchronous until we get a response.
+WK_EXPORT void WKBundlePagePostSynchronousMessageForTesting(WKBundlePageRef page, WKStringRef messageName, WKTypeRef messageBody, WKTypeRef* returnData);
+
</ins><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageEventDispatchercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -88,19 +88,6 @@
</span><span class="cx">     connection-&gt;addWorkQueueMessageReceiver(Messages::EventDispatcher::messageReceiverName(), &amp;m_queue.get(), this);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(CSS_SCROLL_SNAP) || ENABLE(RUBBER_BANDING)
-static void updateWheelEventTestTriggersIfNeeded(uint64_t pageID)
-{
-    WebPage* webPage = WebProcess::singleton().webPage(pageID);
-    Page* page = webPage ? webPage-&gt;corePage() : nullptr;
-
-    if (!page || !page-&gt;expectsWheelEventTriggers())
-        return;
-
-    page-&gt;testTrigger()-&gt;deferTestsForReason(reinterpret_cast&lt;WheelEventTestTrigger::ScrollableAreaIdentifier&gt;(page), WheelEventTestTrigger::ScrollingThreadSyncNeeded);
-}
-#endif
-
</del><span class="cx"> void EventDispatcher::wheelEvent(uint64_t pageID, const WebWheelEvent&amp; wheelEvent, bool canRubberBandAtLeft, bool canRubberBandAtRight, bool canRubberBandAtTop, bool canRubberBandAtBottom)
</span><span class="cx"> {
</span><span class="cx">     PlatformWheelEvent platformWheelEvent = platform(wheelEvent);
</span><span class="lines">@@ -146,11 +133,6 @@
</span><span class="cx"> 
</span><span class="cx">         ScrollingTree::EventResult result = scrollingTree-&gt;tryToHandleWheelEvent(platformWheelEvent);
</span><span class="cx"> 
</span><del>-#if ENABLE(CSS_SCROLL_SNAP) || ENABLE(RUBBER_BANDING)
-        if (result == ScrollingTree::DidHandleEvent)
-            updateWheelEventTestTriggersIfNeeded(pageID);
-#endif
-
</del><span class="cx">         if (result == ScrollingTree::DidHandleEvent || result == ScrollingTree::DidNotHandleEvent) {
</span><span class="cx">             sendDidReceiveEvent(pageID, wheelEvent, result == ScrollingTree::DidHandleEvent);
</span><span class="cx">             return;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -2049,34 +2049,6 @@
</span><span class="cx">     send(Messages::WebPageProxy::DidReceiveEvent(static_cast&lt;uint32_t&gt;(mouseEvent.type()), handled));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::mouseEventSyncForTesting(const WebMouseEvent&amp; mouseEvent, bool&amp; handled)
-{
-#if ENABLE(DRAG_SUPPORT)
-    if (m_isStartingDrag)
-        messageSenderConnection()-&gt;waitForAndDispatchImmediately&lt;Messages::WebPage::DidStartDrag&gt;(messageSenderDestinationID(), std::chrono::seconds(60));
-#endif
-
-    handled = false;
-#if !PLATFORM(IOS)
-    if (!handled &amp;&amp; m_headerBanner)
-        handled = m_headerBanner-&gt;mouseEvent(mouseEvent);
-    if (!handled &amp;&amp; m_footerBanner)
-        handled = m_footerBanner-&gt;mouseEvent(mouseEvent);
-#endif // !PLATFORM(IOS)
-
-    if (!handled) {
-        CurrentEvent currentEvent(mouseEvent);
-
-        // We need to do a full, normal hit test during this mouse event if the page is active or if a mouse
-        // button is currently pressed. It is possible that neither of those things will be true since on 
-        // Lion when legacy scrollbars are enabled, WebKit receives mouse events all the time. If it is one 
-        // of those cases where the page is not active and the mouse is not pressed, then we can fire a more
-        // efficient scrollbars-only version of the event.
-        bool onlyUpdateScrollbars = !(m_page-&gt;focusController().isActive() || (mouseEvent.button() != WebMouseEvent::NoButton));
-        handled = handleMouseEvent(mouseEvent, this, onlyUpdateScrollbars);
-    }
-}
-
</del><span class="cx"> static bool handleWheelEvent(const WebWheelEvent&amp; wheelEvent, Page* page)
</span><span class="cx"> {
</span><span class="cx">     Frame&amp; frame = page-&gt;mainFrame();
</span><span class="lines">@@ -2101,16 +2073,6 @@
</span><span class="cx">     send(Messages::WebPageProxy::DidReceiveEvent(static_cast&lt;uint32_t&gt;(wheelEvent.type()), handled));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::wheelEventSyncForTesting(const WebWheelEvent&amp; wheelEvent, bool&amp; handled)
-{
-    CurrentEvent currentEvent(wheelEvent);
-
-    if (ScrollingCoordinator* scrollingCoordinator = m_page-&gt;scrollingCoordinator())
-        scrollingCoordinator-&gt;commitTreeStateIfNeeded();
-
-    handled = handleWheelEvent(wheelEvent, m_page.get());
-}
-
</del><span class="cx"> static bool handleKeyEvent(const WebKeyboardEvent&amp; keyboardEvent, Page* page)
</span><span class="cx"> {
</span><span class="cx">     if (!page-&gt;mainFrame().view())
</span><span class="lines">@@ -2138,18 +2100,6 @@
</span><span class="cx">     send(Messages::WebPageProxy::DidReceiveEvent(static_cast&lt;uint32_t&gt;(keyboardEvent.type()), handled));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::keyEventSyncForTesting(const WebKeyboardEvent&amp; keyboardEvent, bool&amp; handled)
-{
-    CurrentEvent currentEvent(keyboardEvent);
-
-    Frame&amp; frame = m_page-&gt;focusController().focusedOrMainFrame();
-    frame.document()-&gt;updateStyleIfNeeded();
-
-    handled = handleKeyEvent(keyboardEvent, m_page.get());
-    if (!handled)
-        handled = performDefaultBehaviorForKeyEvent(keyboardEvent);
-}
-
</del><span class="cx"> void WebPage::validateCommand(const String&amp; commandName, uint64_t callbackID)
</span><span class="cx"> {
</span><span class="cx">     bool isEnabled = false;
</span><span class="lines">@@ -2219,12 +2169,6 @@
</span><span class="cx">     }
</span><span class="cx">     send(Messages::WebPageProxy::DidReceiveEvent(static_cast&lt;uint32_t&gt;(touchEvent.type()), handled));
</span><span class="cx"> }
</span><del>-
-void WebPage::touchEventSyncForTesting(const WebTouchEvent&amp; touchEvent, bool&amp; handled)
-{
-    CurrentEvent currentEvent(touchEvent);
-    handled = handleTouchEvent(touchEvent, m_page.get());
-}
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> bool WebPage::scroll(Page* page, ScrollDirection direction, ScrollGranularity granularity)
</span><span class="lines">@@ -5022,12 +4966,12 @@
</span><span class="cx">     send(Messages::WebPageProxy::HandleMessage(messageName, UserData(WebProcess::singleton().transformObjectsToHandles(messageBody))));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPage::postSynchronousMessage(const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData)
</del><ins>+void WebPage::postSynchronousMessageForTesting(const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData)
</ins><span class="cx"> {
</span><span class="cx">     UserData returnUserData;
</span><span class="cx"> 
</span><span class="cx">     auto&amp; webProcess = WebProcess::singleton();
</span><del>-    if (!sendSync(Messages::WebPageProxy::HandleSynchronousMessage(messageName, UserData(webProcess.transformObjectsToHandles(messageBody))), Messages::WebPageProxy::HandleSynchronousMessage::Reply(returnUserData)))
</del><ins>+    if (!sendSync(Messages::WebPageProxy::HandleSynchronousMessage(messageName, UserData(webProcess.transformObjectsToHandles(messageBody))), Messages::WebPageProxy::HandleSynchronousMessage::Reply(returnUserData), std::chrono::milliseconds::max(), IPC::SyncMessageSendFlags::UseFullySynchronousModeForTesting))
</ins><span class="cx">         returnData = nullptr;
</span><span class="cx">     else
</span><span class="cx">         returnData = webProcess.transformHandlesToObjects(returnUserData.object());
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -901,7 +901,7 @@
</span><span class="cx">     void setPageActivityState(WebCore::PageActivityState::Flags);
</span><span class="cx"> 
</span><span class="cx">     void postMessage(const String&amp; messageName, API::Object* messageBody);
</span><del>-    void postSynchronousMessage(const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData);
</del><ins>+    void postSynchronousMessageForTesting(const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData);
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="cx">     void setInputMethodState(bool);
</span><span class="lines">@@ -990,15 +990,11 @@
</span><span class="cx">     void updateUserActivity();
</span><span class="cx"> 
</span><span class="cx">     void mouseEvent(const WebMouseEvent&amp;);
</span><del>-    void mouseEventSyncForTesting(const WebMouseEvent&amp;, bool&amp;);
-    void wheelEventSyncForTesting(const WebWheelEvent&amp;, bool&amp;);
</del><span class="cx">     void keyEvent(const WebKeyboardEvent&amp;);
</span><del>-    void keyEventSyncForTesting(const WebKeyboardEvent&amp;, bool&amp;);
</del><span class="cx"> #if ENABLE(IOS_TOUCH_EVENTS)
</span><span class="cx">     void touchEventSync(const WebTouchEvent&amp;, bool&amp; handled);
</span><span class="cx"> #elif ENABLE(TOUCH_EVENTS)
</span><span class="cx">     void touchEvent(const WebTouchEvent&amp;);
</span><del>-    void touchEventSyncForTesting(const WebTouchEvent&amp;, bool&amp; handled);
</del><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS)
</span><span class="cx">     void contextMenuHidden() { m_isShowingContextMenu = false; }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagemessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -38,10 +38,7 @@
</span><span class="cx">     ViewWillEndLiveResize()
</span><span class="cx"> 
</span><span class="cx">     KeyEvent(WebKit::WebKeyboardEvent event)
</span><del>-    KeyEventSyncForTesting(WebKit::WebKeyboardEvent event) -&gt; (bool handled)
</del><span class="cx">     MouseEvent(WebKit::WebMouseEvent event)
</span><del>-    MouseEventSyncForTesting(WebKit::WebMouseEvent event) -&gt; (bool handled)
-    WheelEventSyncForTesting(WebKit::WebWheelEvent event) -&gt; (bool handled)
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     SetViewportConfigurationMinimumLayoutSize(WebCore::FloatSize size)
</span><span class="cx">     SetMaximumUnobscuredSize(WebCore::FloatSize size)
</span><span class="lines">@@ -107,7 +104,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> #if !ENABLE(IOS_TOUCH_EVENTS) &amp;&amp; ENABLE(TOUCH_EVENTS)
</span><span class="cx">     TouchEvent(WebKit::WebTouchEvent event)
</span><del>-    TouchEventSyncForTesting(WebKit::WebTouchEvent event) -&gt; (bool handled)
</del><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/ChangeLog        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -1,3 +1,67 @@
</span><ins>+2015-08-21  Alexey Proskuryakov  &lt;ap@apple.com&gt;
+
+        Improve how UI events are dispatched by WebKitTestRunner
+        https://bugs.webkit.org/show_bug.cgi?id=148326
+
+        Reviewed by Anders Carlsson.
+
+        * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
+        * WebKitTestRunner/InjectedBundle/EventSendingController.h:
+        Removed asyncScrolling from mouseScrollByWithWheelAndMomentumPhases, it's now always
+        asynchronous (and really, it has always been for the most part).
+
+        * WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
+        (WTR::EventSendingController::mouseDown): Updated for WKBundlePagePostSynchronousMessage renaming.
+        (WTR::EventSendingController::mouseUp): Ditto.
+        (WTR::EventSendingController::mouseMoveTo): Ditto.
+        (WTR::EventSendingController::mouseForceDown): Ditto.
+        (WTR::EventSendingController::mouseForceUp): Ditto.
+        (WTR::EventSendingController::mouseForceChanged): Ditto.
+        (WTR::EventSendingController::leapForward): Ditto.
+        (WTR::EventSendingController::scheduleAsynchronousClick): Ditto.
+        (WTR::EventSendingController::keyDown): Ditto.
+        (WTR::EventSendingController::scheduleAsynchronousKeyDown): Ditto.
+        (WTR::EventSendingController::mouseScrollBy): Force a scrolling tree commit. It used
+        to be done in custom WebKit2 code for test wheel event handling.
+        (WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases): Got rid of sync version.
+        (WTR::EventSendingController::continuousMouseScrollBy): Added a FIXME. This one is weird.
+        (WTR::EventSendingController::contextClick): Updated for WKBundlePagePostSynchronousMessage renaming.
+        (WTR::EventSendingController::addTouchPoint): Ditto.
+        (WTR::EventSendingController::updateTouchPoint): Ditto.
+        (WTR::EventSendingController::setTouchModifier): Ditto.
+        (WTR::EventSendingController::setTouchPointRadius): Ditto.
+        (WTR::EventSendingController::touchStart): Ditto.
+        (WTR::EventSendingController::touchMove): Ditto.
+        (WTR::EventSendingController::touchEnd): Ditto.
+        (WTR::EventSendingController::touchCancel): Ditto.
+        (WTR::EventSendingController::clearTouchPoints): Ditto.
+        (WTR::EventSendingController::releaseTouchPoint): Ditto.
+        (WTR::EventSendingController::cancelTouchPoint): Ditto.
+
+        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
+        (WTR::InjectedBundle::postSetWindowIsKey):
+        (WTR::InjectedBundle::postSimulateWebNotificationClick):
+        (WTR::InjectedBundle::isGeolocationProviderActive):
+        (WTR::InjectedBundle::shouldProcessWorkQueue):
+        Updated for WKBundlePagePostSynchronousMessage renaming.
+
+        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+        (WTR::TestRunner::secureEventInputIsEnabled): Ditto.
+
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::initialize): Allow handling the new test style messages.
+        (WTR::TestController::didReceiveKeyDownMessageFromInjectedBundle): Removed calls
+        to WKPageSetShouldSendEventsSynchronously, which we no longer need.
+        (WTR::TestController::didReceiveMessageFromInjectedBundle):
+        (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): Moved
+        &quot;MouseScrollBy&quot; to async section, and got rid of WKPageSetShouldSendEventsSynchronously.
+
+        * WebKitTestRunner/mac/EventSenderProxy.mm:
+        (WTR::EventSenderProxy::mouseMoveTo): Got rid of WKPageSetShouldSendEventsSynchronously.
+        (WTR::EventSenderProxy::keyDown): Ditto.
+        (WTR::EventSenderProxy::mouseScrollBy): Ditto.
+        (WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases): Ditto.
+
</ins><span class="cx"> 2015-08-21  Yusuke Suzuki  &lt;utatane.tea@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Skip no-llint tests that fail due to running out of executable memory after r188969
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleBindingsEventSendingControlleridl"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx">     void mouseForceUp();
</span><span class="cx">     void mouseForceChanged(double force);
</span><span class="cx">     void mouseScrollBy(long x, long y);
</span><del>-    void mouseScrollByWithWheelAndMomentumPhases(long x, long y, DOMString phase, DOMString momentum, optional boolean asyncScrolling);
</del><ins>+    void mouseScrollByWithWheelAndMomentumPhases(long x, long y, DOMString phase, DOMString momentum);
</ins><span class="cx">     void continuousMouseScrollBy(long x, long y, optional boolean paged);
</span><span class="cx">     object contextClick();
</span><span class="cx">     void scheduleAsynchronousClick();
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleEventSendingControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -217,7 +217,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
</span><span class="cx">     WKRetainPtr&lt;WKMutableDictionaryRef&gt; EventSenderMessageBody(AdoptWK, createMouseMessageBody(MouseDown, button, modifiers));
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(page, EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(page, EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::mouseUp(int button, JSValueRef modifierArray)
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
</span><span class="cx">     WKRetainPtr&lt;WKMutableDictionaryRef&gt; EventSenderMessageBody(AdoptWK, createMouseMessageBody(MouseUp, button, modifiers));
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::mouseMoveTo(int x, int y)
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_position = WKPointMake(x, y);
</span><span class="cx">     
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::mouseForceDown()
</span><span class="lines">@@ -264,7 +264,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;MouseForceDown&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::mouseForceUp()
</span><span class="lines">@@ -276,7 +276,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;MouseForceUp&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::mouseForceChanged(double force)
</span><span class="lines">@@ -292,7 +292,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKDoubleRef&gt; forceRef(AdoptWK, WKDoubleCreate(force));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), forceKey.get(), forceRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::leapForward(int milliseconds)
</span><span class="lines">@@ -308,7 +308,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; timeRef(AdoptWK, WKUInt64Create(milliseconds));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), timeKey.get(), timeRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::scheduleAsynchronousClick()
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
</span><span class="cx">     WKRetainPtr&lt;WKMutableDictionaryRef&gt; keyDownMessageBody = createKeyDownMessageBody(key, modifiers, location);
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), keyDownMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), keyDownMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::scheduleAsynchronousKeyDown(JSStringRef key)
</span><span class="lines">@@ -387,10 +387,11 @@
</span><span class="cx">     WKRetainPtr&lt;WKDoubleRef&gt; yRef(AdoptWK, WKDoubleCreate(y));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), yKey.get(), yRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePageForceRepaint(InjectedBundle::singleton().page()-&gt;page()); // Triggers a scrolling tree commit.
+    WKBundlePagePostMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void EventSendingController::mouseScrollByWithWheelAndMomentumPhases(int x, int y, JSStringRef phaseStr, JSStringRef momentumStr, bool asyncScrolling)
</del><ins>+void EventSendingController::mouseScrollByWithWheelAndMomentumPhases(int x, int y, JSStringRef phaseStr, JSStringRef momentumStr)
</ins><span class="cx"> {
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; EventSenderMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;EventSender&quot;));
</span><span class="cx">     WKRetainPtr&lt;WKMutableDictionaryRef&gt; EventSenderMessageBody(AdoptWK, WKMutableDictionaryCreate());
</span><span class="lines">@@ -439,10 +440,8 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; momentumRef(AdoptWK, WKUInt64Create(momentum));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), momentumKey.get(), momentumRef.get());
</span><span class="cx"> 
</span><del>-    if (asyncScrolling)
-        WKBundlePagePostMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get());
-    else
-        WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePageForceRepaint(InjectedBundle::singleton().page()-&gt;page()); // Triggers a scrolling tree commit.
+    WKBundlePagePostMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::continuousMouseScrollBy(int x, int y, bool paged)
</span><span class="lines">@@ -466,7 +465,9 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; pagedRef(AdoptWK, WKUInt64Create(paged));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), pagedKey.get(), pagedRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    // FIXME: This message should be asynchronous, as scrolling is intrinsically asynchronous.
+    // See also: &lt;https://bugs.webkit.org/show_bug.cgi?id=148256&gt;.
+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> JSValueRef EventSendingController::contextClick()
</span><span class="lines">@@ -612,7 +613,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; yRef(AdoptWK, WKUInt64Create(y));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), yKey.get(), yRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::updateTouchPoint(int index, int x, int y)
</span><span class="lines">@@ -636,7 +637,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; yRef(AdoptWK, WKUInt64Create(y));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), yKey.get(), yRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::setTouchModifier(const JSStringRef &amp;modifier, bool enable)
</span><span class="lines">@@ -666,7 +667,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; enableRef(AdoptWK, WKUInt64Create(enable));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), enableKey.get(), enableRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -687,7 +688,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; yRef(AdoptWK, WKUInt64Create(radiusY));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), yKey.get(), yRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::touchStart()
</span><span class="lines">@@ -699,7 +700,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;TouchStart&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::touchMove()
</span><span class="lines">@@ -711,7 +712,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;TouchMove&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::touchEnd()
</span><span class="lines">@@ -723,7 +724,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;TouchEnd&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::touchCancel()
</span><span class="lines">@@ -735,7 +736,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;TouchCancel&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::clearTouchPoints()
</span><span class="lines">@@ -747,7 +748,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; subMessageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;ClearTouchPoints&quot;));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), subMessageKey.get(), subMessageName.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::releaseTouchPoint(int index)
</span><span class="lines">@@ -763,7 +764,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; indexRef(AdoptWK, WKUInt64Create(index));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), indexKey.get(), indexRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EventSendingController::cancelTouchPoint(int index)
</span><span class="lines">@@ -779,7 +780,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKUInt64Ref&gt; indexRef(AdoptWK, WKUInt64Create(index));
</span><span class="cx">     WKDictionarySetItem(EventSenderMessageBody.get(), indexKey.get(), indexRef.get());
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), EventSenderMessageName.get(), EventSenderMessageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleEventSendingControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/EventSendingController.h        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -50,7 +50,7 @@
</span><span class="cx">     void mouseForceUp();
</span><span class="cx">     void mouseForceChanged(double force);
</span><span class="cx">     void mouseScrollBy(int x, int y);
</span><del>-    void mouseScrollByWithWheelAndMomentumPhases(int x, int y, JSStringRef phase, JSStringRef momentum, bool asyncScrolling);
</del><ins>+    void mouseScrollByWithWheelAndMomentumPhases(int x, int y, JSStringRef phase, JSStringRef momentum);
</ins><span class="cx">     void continuousMouseScrollBy(int x, int y, bool paged);
</span><span class="cx">     JSValueRef contextClick();
</span><span class="cx">     void leapForward(int milliseconds);
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleInjectedBundlecpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -381,7 +381,7 @@
</span><span class="cx"> {
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; messageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;SetWindowIsKey&quot;));
</span><span class="cx">     WKRetainPtr&lt;WKBooleanRef&gt; messageBody(AdoptWK, WKBooleanCreate(isKey));
</span><del>-    WKBundlePagePostSynchronousMessage(page()-&gt;page(), messageName.get(), messageBody.get(), 0);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(page()-&gt;page(), messageName.get(), messageBody.get(), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InjectedBundle::postSimulateWebNotificationClick(uint64_t notificationID)
</span><span class="lines">@@ -468,7 +468,7 @@
</span><span class="cx"> {
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; messageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;IsGeolocationClientActive&quot;));
</span><span class="cx">     WKTypeRef resultToPass = 0;
</span><del>-    WKBundlePagePostSynchronousMessage(page()-&gt;page(), messageName.get(), 0, &amp;resultToPass);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(page()-&gt;page(), messageName.get(), 0, &amp;resultToPass);
</ins><span class="cx">     WKRetainPtr&lt;WKBooleanRef&gt; isActive(AdoptWK, static_cast&lt;WKBooleanRef&gt;(resultToPass));
</span><span class="cx"> 
</span><span class="cx">     return WKBooleanGetValue(isActive.get());
</span><span class="lines">@@ -524,7 +524,7 @@
</span><span class="cx"> 
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; messageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;IsWorkQueueEmpty&quot;));
</span><span class="cx">     WKTypeRef resultToPass = 0;
</span><del>-    WKBundlePagePostSynchronousMessage(page()-&gt;page(), messageName.get(), 0, &amp;resultToPass);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(page()-&gt;page(), messageName.get(), 0, &amp;resultToPass);
</ins><span class="cx">     WKRetainPtr&lt;WKBooleanRef&gt; isEmpty(AdoptWK, static_cast&lt;WKBooleanRef&gt;(resultToPass));
</span><span class="cx"> 
</span><span class="cx">     return !WKBooleanGetValue(isEmpty.get());
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleTestRunnercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -831,7 +831,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; messageName(AdoptWK, WKStringCreateWithUTF8CString(&quot;SecureEventInputIsEnabled&quot;));
</span><span class="cx">     WKTypeRef returnData = 0;
</span><span class="cx"> 
</span><del>-    WKBundlePagePostSynchronousMessage(InjectedBundle::singleton().page()-&gt;page(), messageName.get(), 0, &amp;returnData);
</del><ins>+    WKBundlePagePostSynchronousMessageForTesting(InjectedBundle::singleton().page()-&gt;page(), messageName.get(), 0, &amp;returnData);
</ins><span class="cx">     return WKBooleanGetValue(static_cast&lt;WKBooleanRef&gt;(returnData));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerTestControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/TestController.cpp        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -358,6 +358,7 @@
</span><span class="cx"> 
</span><span class="cx">     auto configuration = adoptWK(WKContextConfigurationCreate());
</span><span class="cx">     WKContextConfigurationSetInjectedBundlePath(configuration.get(), injectedBundlePath());
</span><ins>+    WKContextConfigurationSetFullySynchronousModeIsAllowedForTesting(configuration.get(), true);
</ins><span class="cx"> 
</span><span class="cx">     if (const char* dumpRenderTreeTemp = libraryPathForTesting()) {
</span><span class="cx">         String temporaryFolder = String::fromUTF8(dumpRenderTreeTemp);
</span><span class="lines">@@ -987,13 +988,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKStringRef&gt; locationKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Location&quot;));
</span><span class="cx">     unsigned location = static_cast&lt;unsigned&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, locationKey.get()))));
</span><span class="cx"> 
</span><del>-    if (synchronous)
-        WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
-
</del><span class="cx">     m_eventSenderProxy-&gt;keyDown(key, modifiers, location);
</span><del>-
-    if (synchronous)
-        WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void TestController::didReceiveMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody)
</span><span class="lines">@@ -1013,7 +1008,6 @@
</span><span class="cx">             WKEventModifiers modifiers = static_cast&lt;WKEventModifiers&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, modifiersKey.get()))));
</span><span class="cx"> 
</span><span class="cx">             // Forward to WebProcess
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseDown&quot;))
</span><span class="cx">                 m_eventSenderProxy-&gt;mouseDown(button, modifiers);
</span><span class="cx">             else
</span><span class="lines">@@ -1028,6 +1022,18 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><ins>+        if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseScrollBy&quot;)) {
+            WKRetainPtr&lt;WKStringRef&gt; xKey = adoptWK(WKStringCreateWithUTF8CString(&quot;X&quot;));
+            double x = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, xKey.get())));
+
+            WKRetainPtr&lt;WKStringRef&gt; yKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Y&quot;));
+            double y = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, yKey.get())));
+
+            // Forward to WebProcess
+            m_eventSenderProxy-&gt;mouseScrollBy(x, y);
+            return;
+        }
+
</ins><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseScrollByWithWheelAndMomentumPhases&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 class="lines">@@ -1041,7 +1047,6 @@
</span><span class="cx">             int momentum = static_cast&lt;int&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, momentumKey.get()))));
</span><span class="cx">             
</span><span class="cx">             // Forward to WebProcess
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             m_eventSenderProxy-&gt;mouseScrollByWithWheelAndMomentumPhases(x, y, phase, momentum);
</span><span class="cx"> 
</span><span class="cx">             return;
</span><span class="lines">@@ -1079,12 +1084,10 @@
</span><span class="cx">             WKEventModifiers modifiers = static_cast&lt;WKEventModifiers&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, modifiersKey.get()))));
</span><span class="cx"> 
</span><span class="cx">             // Forward to WebProcess
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseDown&quot;))
</span><span class="cx">                 m_eventSenderProxy-&gt;mouseDown(button, modifiers);
</span><span class="cx">             else
</span><span class="cx">                 m_eventSenderProxy-&gt;mouseUp(button, modifiers);
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1096,24 +1099,18 @@
</span><span class="cx">             double y = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, yKey.get())));
</span><span class="cx"> 
</span><span class="cx">             // Forward to WebProcess
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;mouseMoveTo(x, y);
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseForceDown&quot;)) {
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;mouseForceDown();
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseForceUp&quot;)) {
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;mouseForceUp();
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1121,46 +1118,11 @@
</span><span class="cx">             WKRetainPtr&lt;WKStringRef&gt; forceKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Force&quot;));
</span><span class="cx">             double force = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, forceKey.get())));
</span><span class="cx"> 
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;mouseForceChanged(force);
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> #endif // PLATFORM(MAC)
</span><span class="cx"> 
</span><del>-        if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseScrollBy&quot;)) {
-            WKRetainPtr&lt;WKStringRef&gt; xKey = adoptWK(WKStringCreateWithUTF8CString(&quot;X&quot;));
-            double x = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, xKey.get())));
-
-            WKRetainPtr&lt;WKStringRef&gt; yKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Y&quot;));
-            double y = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, yKey.get())));
-
-            // Forward to WebProcess
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
-            m_eventSenderProxy-&gt;mouseScrollBy(x, y);
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
-            return 0;
-        }
-
-        if (WKStringIsEqualToUTF8CString(subMessageName, &quot;MouseScrollByWithWheelAndMomentumPhases&quot;)) {
-            WKRetainPtr&lt;WKStringRef&gt; xKey = adoptWK(WKStringCreateWithUTF8CString(&quot;X&quot;));
-            double x = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, xKey.get())));
-            
-            WKRetainPtr&lt;WKStringRef&gt; yKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Y&quot;));
-            double y = WKDoubleGetValue(static_cast&lt;WKDoubleRef&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, yKey.get())));
-            
-            WKRetainPtr&lt;WKStringRef&gt; phaseKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Phase&quot;));
-            int phase = static_cast&lt;int&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, phaseKey.get()))));
-            WKRetainPtr&lt;WKStringRef&gt; momentumKey = adoptWK(WKStringCreateWithUTF8CString(&quot;Momentum&quot;));
-            int momentum = static_cast&lt;int&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, momentumKey.get()))));
-
-            // Forward to WebProcess
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
-            m_eventSenderProxy-&gt;mouseScrollByWithWheelAndMomentumPhases(x, y, phase, momentum);
-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
-            return 0;
-        }
-        
</del><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;ContinuousMouseScrollBy&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 class="lines">@@ -1172,9 +1134,7 @@
</span><span class="cx">             bool paged = static_cast&lt;bool&gt;(WKUInt64GetValue(static_cast&lt;WKUInt64Ref&gt;(WKDictionaryGetItemForKey(messageBodyDictionary, pagedKey.get()))));
</span><span class="cx"> 
</span><span class="cx">             // Forward to WebProcess
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;continuousMouseScrollBy(x, y, paged);
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -1235,30 +1195,22 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;TouchStart&quot;)) {
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;touchStart();
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;TouchMove&quot;)) {
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;touchMove();
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;TouchEnd&quot;)) {
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;touchEnd();
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         if (WKStringIsEqualToUTF8CString(subMessageName, &quot;TouchCancel&quot;)) {
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), true);
</del><span class="cx">             m_eventSenderProxy-&gt;touchCancel();
</span><del>-            WKPageSetShouldSendEventsSynchronously(mainWebView()-&gt;page(), false);
</del><span class="cx">             return 0;
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnermacEventSenderProxymm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm (188792 => 188793)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm        2015-08-21 22:48:49 UTC (rev 188792)
+++ trunk/Tools/WebKitTestRunner/mac/EventSenderProxy.mm        2015-08-21 23:09:54 UTC (rev 188793)
</span><span class="lines">@@ -417,9 +417,7 @@
</span><span class="cx">     NSView *targetView = [m_testController-&gt;mainWebView()-&gt;platformView() hitTest:[event locationInWindow]];
</span><span class="cx">     if (targetView) {
</span><span class="cx">         [NSApp _setCurrentEvent:event];
</span><del>-        WKPageSetShouldSendEventsSynchronously(m_testController-&gt;mainWebView()-&gt;page(), true);
</del><span class="cx">         [targetView mouseMoved:event];
</span><del>-        WKPageSetShouldSendEventsSynchronously(m_testController-&gt;mainWebView()-&gt;page(), false);
</del><span class="cx">         [NSApp _setCurrentEvent:nil];
</span><span class="cx">     } else {
</span><span class="cx">         NSPoint windowLocation = [event locationInWindow];
</span><span class="lines">@@ -612,8 +610,6 @@
</span><span class="cx">     if (keyLocation == 0x03 /*DOM_KEY_LOCATION_NUMPAD*/)
</span><span class="cx">         modifierFlags |= NSNumericPadKeyMask;
</span><span class="cx"> 
</span><del>-    // FIXME: [[[mainFrame frameView] documentView] layout];
-
</del><span class="cx">     NSEvent *event = [NSEvent keyEventWithType:NSKeyDown
</span><span class="cx">                         location:NSMakePoint(5, 5)
</span><span class="cx">                         modifierFlags:modifierFlags
</span><span class="lines">@@ -658,9 +654,7 @@
</span><span class="cx">     NSEvent *event = [NSEvent eventWithCGEvent:cgScrollEvent.get()];
</span><span class="cx">     if (NSView *targetView = [m_testController-&gt;mainWebView()-&gt;platformView() hitTest:[event locationInWindow]]) {
</span><span class="cx">         [NSApp _setCurrentEvent:event];
</span><del>-        WKPageSetShouldSendEventsSynchronously(m_testController-&gt;mainWebView()-&gt;page(), true);
</del><span class="cx">         [targetView scrollWheel:event];
</span><del>-        WKPageSetShouldSendEventsSynchronously(m_testController-&gt;mainWebView()-&gt;page(), false);
</del><span class="cx">         [NSApp _setCurrentEvent:nil];
</span><span class="cx">     } else {
</span><span class="cx">         NSPoint location = [event locationInWindow];
</span><span class="lines">@@ -693,9 +687,7 @@
</span><span class="cx">     // Our event should have the correct settings:
</span><span class="cx">     if (NSView *targetView = [m_testController-&gt;mainWebView()-&gt;platformView() hitTest:[event locationInWindow]]) {
</span><span class="cx">         [NSApp _setCurrentEvent:event];
</span><del>-        WKPageSetShouldSendEventsSynchronously(m_testController-&gt;mainWebView()-&gt;page(), true);
</del><span class="cx">         [targetView scrollWheel:event];
</span><del>-        WKPageSetShouldSendEventsSynchronously(m_testController-&gt;mainWebView()-&gt;page(), false);
</del><span class="cx">         [NSApp _setCurrentEvent:nil];
</span><span class="cx">     } else {
</span><span class="cx">         NSPoint windowLocation = [event locationInWindow];
</span></span></pre>
</div>
</div>

</body>
</html>