<!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>[188160] trunk/LayoutTests</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/188160">188160</a></dd>
<dt>Author</dt> <dd>simon.fraser@apple.com</dd>
<dt>Date</dt> <dd>2015-08-07 14:07:55 -0700 (Fri, 07 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Move platform/mac/fast/scrolling/ tests into fast/scrolling/latching/

* TestExpectations:
* fast/scrolling/latching/iframe_in_iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt.
* fast/scrolling/latching/iframe_in_iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html.
* fast/scrolling/latching/resources/background.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/background.html.
* fast/scrolling/latching/resources/inner_content.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html.
* fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html.
* fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html.
* fast/scrolling/latching/resources/testContent.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/testContent.html.
* fast/scrolling/latching/resources/testImage.png: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/testImage.png.
* fast/scrolling/latching/scroll-div-latched-div-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt.
* fast/scrolling/latching/scroll-div-latched-div.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html.
* fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt.
* fast/scrolling/latching/scroll-div-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html.
* fast/scrolling/latching/scroll-div-no-latching-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt.
* fast/scrolling/latching/scroll-div-no-latching.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html.
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt.
* fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html.
* fast/scrolling/latching/scroll-iframe-fragment-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt.
* fast/scrolling/latching/scroll-iframe-fragment.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html.
* fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt.
* fast/scrolling/latching/scroll-iframe-latched-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html.
* fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt.
* fast/scrolling/latching/scroll-iframe-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html.
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt.
* fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html.
* fast/scrolling/latching/scroll-latched-nested-div-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt.
* fast/scrolling/latching/scroll-latched-nested-div.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html.
* fast/scrolling/latching/scroll-nested-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt.
* fast/scrolling/latching/scroll-nested-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html.
* fast/scrolling/latching/scroll-select-bottom-test-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt.
* fast/scrolling/latching/scroll-select-bottom-test.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html.
* fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt.
* fast/scrolling/latching/scroll-select-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html.
* fast/scrolling/latching/scroll-select-latched-select-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt.
* fast/scrolling/latching/scroll-select-latched-select.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html.
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</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>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/LayoutTests/fast/scrolling/latching/</li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingiframe_in_iframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingiframe_in_iframehtml">trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html</a></li>
<li>trunk/LayoutTests/fast/scrolling/latching/resources/</li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingresourcesbackgroundhtml">trunk/LayoutTests/fast/scrolling/latching/resources/background.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingresourcesinner_contenthtml">trunk/LayoutTests/fast/scrolling/latching/resources/inner_content.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingresourcesscroll_nested_iframe_test_innerhtml">trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingresourcesscroll_nested_iframe_test_outerhtml">trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingresourcestestContenthtml">trunk/LayoutTests/fast/scrolling/latching/resources/testContent.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingresourcestestImagepng">trunk/LayoutTests/fast/scrolling/latching/resources/testImage.png</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivlatcheddivexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivlatcheddivhtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivlatchedmainframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivlatchedmainframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivnolatchingexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivnolatchinghtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivwithnestednonscrollableiframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolldivwithnestednonscrollableiframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframefragmentexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframefragmenthtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframelatchediframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframelatchediframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframelatchedmainframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframelatchedmainframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframewebkit1latchingbugexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolliframewebkit1latchingbughtml">trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolllatchednesteddivexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrolllatchednesteddivhtml">trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollnestediframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollnestediframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectbottomtestexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectbottomtesthtml">trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectlatchedmainframeexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectlatchedmainframehtml">trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectlatchedselectexpectedtxt">trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastscrollinglatchingscrollselectlatchedselecthtml">trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingiframe_in_iframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingiframe_in_iframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingresourcesbackgroundhtml">trunk/LayoutTests/platform/mac/fast/scrolling/resources/background.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingresourcesinner_contenthtml">trunk/LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingresourcesscroll_nested_iframe_test_innerhtml">trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingresourcesscroll_nested_iframe_test_outerhtml">trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingresourcestestContenthtml">trunk/LayoutTests/platform/mac/fast/scrolling/resources/testContent.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingresourcestestImagepng">trunk/LayoutTests/platform/mac/fast/scrolling/resources/testImage.png</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivhtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivnolatchingexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivnolatchinghtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivwithnestednonscrollableiframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolldivwithnestednonscrollableiframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframefragmentexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframefragmenthtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframelatchediframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframelatchediframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframelatchedmainframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframelatchedmainframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframewebkit1latchingbugexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolliframewebkit1latchingbughtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolllatchednesteddivexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrolllatchednesteddivhtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollnestediframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollnestediframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtestexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtesthtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframeexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframehtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselectexpectedtxt">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselecthtml">trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/ChangeLog        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,5 +1,47 @@
</span><span class="cx"> 2015-08-07  Simon Fraser  &lt;simon.fraser@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Move platform/mac/fast/scrolling/ tests into fast/scrolling/latching/
+
+        * TestExpectations:
+        * fast/scrolling/latching/iframe_in_iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt.
+        * fast/scrolling/latching/iframe_in_iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html.
+        * fast/scrolling/latching/resources/background.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/background.html.
+        * fast/scrolling/latching/resources/inner_content.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html.
+        * fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html.
+        * fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html.
+        * fast/scrolling/latching/resources/testContent.html: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/testContent.html.
+        * fast/scrolling/latching/resources/testImage.png: Renamed from LayoutTests/platform/mac/fast/scrolling/resources/testImage.png.
+        * fast/scrolling/latching/scroll-div-latched-div-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt.
+        * fast/scrolling/latching/scroll-div-latched-div.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html.
+        * fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt.
+        * fast/scrolling/latching/scroll-div-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html.
+        * fast/scrolling/latching/scroll-div-no-latching-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt.
+        * fast/scrolling/latching/scroll-div-no-latching.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html.
+        * fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt.
+        * fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html.
+        * fast/scrolling/latching/scroll-iframe-fragment-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt.
+        * fast/scrolling/latching/scroll-iframe-fragment.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html.
+        * fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt.
+        * fast/scrolling/latching/scroll-iframe-latched-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html.
+        * fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt.
+        * fast/scrolling/latching/scroll-iframe-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html.
+        * fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt.
+        * fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html.
+        * fast/scrolling/latching/scroll-latched-nested-div-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt.
+        * fast/scrolling/latching/scroll-latched-nested-div.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html.
+        * fast/scrolling/latching/scroll-nested-iframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt.
+        * fast/scrolling/latching/scroll-nested-iframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html.
+        * fast/scrolling/latching/scroll-select-bottom-test-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt.
+        * fast/scrolling/latching/scroll-select-bottom-test.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html.
+        * fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt.
+        * fast/scrolling/latching/scroll-select-latched-mainframe.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html.
+        * fast/scrolling/latching/scroll-select-latched-select-expected.txt: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt.
+        * fast/scrolling/latching/scroll-select-latched-select.html: Renamed from LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html.
+        * platform/mac-wk1/TestExpectations:
+        * platform/mac/TestExpectations:
+
+2015-08-07  Simon Fraser  &lt;simon.fraser@apple.com&gt;
+
</ins><span class="cx">         Move platform/mac/fast/forms/ tests to fast/forms/
</span><span class="cx"> 
</span><span class="cx">         * TestExpectations:
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/TestExpectations        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -15,6 +15,7 @@
</span><span class="cx"> tiled-drawing [ Skip ]
</span><span class="cx"> 
</span><span class="cx"> fast/forms/attributed-strings.html [ Skip ]
</span><ins>+fast/scrolling/latching [ Skip ]
</ins><span class="cx"> 
</span><span class="cx"> #//////////////////////////////////////////////////////////////////////////////////////////
</span><span class="cx"> # End platform-specific tests.
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingiframe_in_iframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingiframe_in_iframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+Inner Frame:
+
+Tests that iframe doesn't pass wheel events to main frame when scrolling inside iframe
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+PASS Page did not receive wheel events.
+PASS iframe did not receive wheel events.
+PASS iframe received wheel events.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingiframe_in_iframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingiframe_in_iframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/iframe_in_iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,114 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;title&gt;iFrame in iFrame Test&lt;/title&gt;
+        &lt;style&gt;
+        * {
+            box-sizing: border-box;
+        }
+
+        .container {
+            width:100%;
+            overflow:auto;
+            height:auto;
+        }
+
+        .innercontainer {
+            height:100%;
+            width:50%;
+        }
+        &lt;/style&gt;
+        &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+&lt;script&gt;
+
+var iframeTarget;
+var innerIFrameTarget;
+var pageScrollPositionBefore;
+var iFrameScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll()
+{
+    // The IFrame should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
+    var innerIFrameScrollPositionAfter = iframeTarget.contentWindow.frames['target'].document.body.scrollTop;
+
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testFailed(&quot;Page received wheel events.&quot;);
+    else
+        testPassed(&quot;Page did not receive wheel events.&quot;);
+
+    if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
+        testFailed(&quot;iframe received wheel events.&quot;);
+    else
+        testPassed(&quot;iframe did not receive wheel events.&quot;);
+
+    if (innerIFrameScrollPositionBefore != innerIFrameScrollPositionAfter)
+        testPassed(&quot;iframe received wheel events.&quot;);
+    else
+        testFailed(&quot;iframe did not receive wheel events.&quot;);
+
+    finishJSTest();
+    testRunner.notifyDone();
+}
+
+function scrollTest()
+{
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    iframeTarget = document.getElementById('target');
+
+    var iFrameBody = window.frames['target'].document.body;
+    iFrameScrollPositionBefore = iFrameBody.scrollTop;
+
+    innerIFrameTarget = iframeTarget.contentWindow.frames['target'].document.body;
+    innerIFrameScrollPositionBefore = innerIFrameTarget.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = Math.round(iframeTarget.offsetLeft) + 20;
+    var startPosY = Math.round(iframeTarget.offsetTop) + 80;
+    eventSender.mouseMoveTo(startPosX, startPosY);
+    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, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
+    eventSender.callAfterScrollingCompletes(checkForScroll);
+}
+
+function setupTopLevel()
+{
+    if (window.eventSender) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
+
+        eventSender.monitorWheelEvents();
+        setTimeout(scrollTest, 0);
+    }
+}
+&lt;/script&gt;
+        &lt;div class=&quot;container&quot;&gt;
+            &lt;div class=&quot;innercontainer&quot;&gt;
+                &lt;div style=&quot;width:100%;&quot;&gt;
+                    &lt;div&gt;Inner Frame:&lt;/div&gt;
+                    &lt;div style=&quot;height:92%;&quot;&gt;
+                        &lt;iframe id=&quot;target&quot; name=&quot;target&quot; src=&quot;resources/testContent.html&quot; onload=&quot;setupTopLevel();&quot;&gt;&lt;/iframe&gt;
+                    &lt;/div&gt;
+                &lt;/div&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+        &lt;script&gt;
+        description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling inside iframe&quot;);
+        &lt;/script&gt;
+        &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingresourcesbackgroundhtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingresourcesbackgroundhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/resources/background.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/resources/background.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/resources/background.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/resources/background.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+    div {
+        position: relative;
+        width: 400px;
+        height: 2000px;
+        padding: 0;
+        background-image: repeating-linear-gradient(to bottom, white, silver 200px);
+    }
+    &lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;div&gt;This content is displayed in an iframe. The iframe should be sized such that it does not need to scroll.&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingresourcesinner_contenthtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingresourcesinner_contenthtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/resources/inner_content.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/resources/inner_content.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/resources/inner_content.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html lang=&quot;en-US&quot;&gt;
+    &lt;head&gt;
+        &lt;title&gt;Inner iFrame Example&lt;/title&gt;
+        &lt;meta charset=&quot;utf-8&quot;&gt;
+    &lt;/head&gt;
+    &lt;body style=&quot;position: relative; min-height: 100%; top: 0px;&quot;&gt;
+        &lt;div style=&quot;overflow:auto;&quot;&gt;
+            &lt;img src=&quot;testImage.png&quot;&gt;
+            &lt;div&gt;TEST CASE TEST CASE TEST CASE TEST CASE&lt;/div&gt;
+        &lt;/div&gt;
+        &lt;div style=&quot;overflow:auto;&quot;&gt;
+            &lt;h1&gt;TEST HEADING&lt;/h1&gt;
+            &lt;p&gt;Test paragraph.&lt;/p&gt;
+            &lt;div&gt;TEST BUTTON 1&lt;/div&gt;
+            &lt;div&gt;TEST BUTTON 2&lt;/div&gt;      
+        &lt;/div&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingresourcesscroll_nested_iframe_test_innerhtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingresourcesscroll_nested_iframe_test_innerhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_inner.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+        
+        body {
+            height: 2000px;
+        }
+    &lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+
+&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingresourcesscroll_nested_iframe_test_outerhtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingresourcesscroll_nested_iframe_test_outerhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/resources/scroll_nested_iframe_test_outer.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+&lt;head&gt;
+    &lt;style&gt;
+    body {
+        background-image: repeating-linear-gradient(to bottom, white, silver 400px);
+    }
+    iframe {
+        position: relative;
+        width: 500px;
+        height: 3000px;
+        padding: 0;
+        background-color: gray;
+    }
+    &lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;iframe  id=&quot;nonscrollable_iframe&quot; src=&quot;resources/scroll_nested_iframe_test_inner.html&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingresourcestestContenthtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingresourcestestContenthtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/resources/testContent.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/resources/testContent.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/resources/testContent.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/resources/testContent.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body&gt;
+
+&lt;p&gt;An iframe where scrollbars are always shown:&lt;/p&gt;
+&lt;iframe id=&quot;target&quot; name=&quot;target&quot; src=&quot;./inner_content.html&quot; width=&quot;200&quot; height=&quot;200&quot; scrolling=&quot;yes&quot;&gt;
+  &lt;p&gt;Your browser does not support iframes.&lt;/p&gt;
+&lt;/iframe&gt;
+
+&lt;p&gt;An iframe where scrollbars are never shown:&lt;/p&gt;
+&lt;iframe src=&quot;./inner_content.html&quot; width=&quot;200&quot; height=&quot;200&quot; scrolling=&quot;no&quot;&gt;
+  &lt;p&gt;Your browser does not support iframes.&lt;/p&gt;
+&lt;/iframe&gt;
+
+&lt;p&gt;The scrolling attribute is not supported in HTML5. Use CSS instead.&lt;/p&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingresourcestestImagepngfromrev188159trunkLayoutTestsplatformmacfastscrollingresourcestestImagepng"></a>
<div class="binary"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/resources/testImage.png (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/resources/testImage.png)</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivlatcheddivexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+Put mouse here and flick downwards
+Scrollable Region
+
+Count        DATA        Rev Count
+TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP
+1        0.1100        40
+2        0.1155        39
+3        0.2200        38
+4        0.2255        37
+5        0.3300        36
+6        0.3355        35
+7        0.4400        34
+8        0.4455        33
+9        0.5500        32
+10        0.5555        31
+11        0.6600        30
+12        0.6655        29
+13        0.7700        28
+14        0.7755        27
+15        0.8800        26
+16        0.8855        25
+17        0.9900        24
+18        0.9955        23
+19        0.9999        22
+20        1.0000        21
+21        1.0000        20
+22        0.9999        19
+23        0.9955        18
+24        0.9900        17
+25        0.8855        16
+26        0.8800        15
+27        0.7755        14
+28        0.7700        13
+29        0.6655        12
+30        0.6600        11
+31        0.5555        10
+32        0.5500        9
+33        0.4455        8
+34        0.4400        7
+35        0.3355        6
+36        0.3300        5
+37        0.2255        4
+38        0.2200        3
+39        0.1155        2
+40        0.1100        1
+END END END END END        END END END END END        END END END END END
+Tests that a scrollable div doesn't pass wheel events to main frame when scrolling at bottom
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+PASS Page did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivlatcheddivhtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-div.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,163 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.scrollable_region {
+    width: 680px;
+}
+
+.table td, .table th {
+    padding: 2px;
+}
+
+.table th {
+    height: 20px;
+    text-align: left;
+    font-weight: strong;
+}
+
+.table tr:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+.scrollable_select option:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var divTarget;
+var pageScrollPositionBefore;
+var divScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll()
+{
+    // The div should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var divScrollPositionAfter = divTarget.scrollTop;
+
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testFailed(&quot;Page received wheel events.&quot;);
+    else
+        testPassed(&quot;Page did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest()
+{
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    divTarget = document.getElementById('target');
+    divTarget.scrollTop = divTarget.scrollHeight - divTarget.clientHeight - 100;
+
+    divScrollPositionBefore = divTarget.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = Math.round(divTarget.offsetLeft) + 20;
+    var startPosY = Math.round(divTarget.offsetTop) + 100; // One wheel turn before end.
+    eventSender.mouseMoveTo(startPosX, startPosY);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel()
+{
+    if (window.eventSender) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
+            + &quot;down past the div.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+    &lt;div class=&quot;scrollable_region&quot;&gt;
+        &lt;h3&gt;Scrollable Region&lt;/h3&gt;
+        &lt;div id=&quot;target&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 350px;'&gt;
+            &lt;table class=&quot;table&quot; style='width: 99%'&gt;
+                &lt;tr&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;DATA&lt;/th&gt;&lt;th&gt;Rev Count&lt;/th&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;/tr&gt;
+            &lt;/table&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that a scrollable div doesn't pass wheel events to main frame when scrolling at bottom&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivlatchedmainframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,57 @@
</span><ins>+Put mouse here and flick downwards
+Scrollable Region
+
+Count        DATA        Rev Count
+TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP
+1        0.1100        40
+2        0.1155        39
+3        0.2200        38
+4        0.2255        37
+5        0.3300        36
+6        0.3355        35
+7        0.4400        34
+8        0.4455        33
+9        0.5500        32
+10        0.5555        31
+11        0.6600        30
+12        0.6655        29
+13        0.7700        28
+14        0.7755        27
+15        0.8800        26
+16        0.8855        25
+17        0.9900        24
+18        0.9955        23
+19        0.9999        22
+20        1.0000        21
+21        1.0000        20
+22        0.9999        19
+23        0.9955        18
+24        0.9900        17
+25        0.8855        16
+26        0.8800        15
+27        0.7755        14
+28        0.7700        13
+29        0.6655        12
+30        0.6600        11
+31        0.5555        10
+32        0.5500        9
+33        0.4455        8
+34        0.4400        7
+35        0.3355        6
+36        0.3300        5
+37        0.2255        4
+38        0.2200        3
+39        0.1155        2
+40        0.1100        1
+END END END END END        END END END END END        END END END END END
+Tests that a scrollable div doesn't consume wheel events when scroll is latched to main frame.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Mouse moved to (28, 125)
+PASS Scrollable div did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivlatchedmainframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-latched-mainframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,165 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.scrollable_region {
+    width: 680px;
+}
+
+.table td, .table th {
+    padding: 2px;
+}
+
+.table th {
+    height: 20px;
+    text-align: left;
+    font-weight: strong;
+}
+
+.table tr:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+.scrollable_select option:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var divTarget;
+var pageScrollPositionBefore;
+var divScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The div should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var divScrollPositionAfter = divTarget.scrollTop;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, div after: &quot; + divScrollPositionAfter);
+
+    if (divScrollPositionBefore != divScrollPositionAfter)
+        testFailed(&quot;Scrollable div consumed wheel events.&quot;);
+    else
+        testPassed(&quot;Scrollable div did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    divTarget = document.getElementById('target');
+
+    divScrollPositionBefore = divTarget.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = Math.round(divTarget.offsetLeft) + 20;
+    var startPosY = Math.round(divTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
+            + &quot;down past the div.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+    &lt;div class=&quot;scrollable_region&quot;&gt;
+        &lt;h3&gt;Scrollable Region&lt;/h3&gt;
+        &lt;div id=&quot;target&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 485px;'&gt;
+            &lt;table class=&quot;table&quot; style='width: 99%'&gt;
+                &lt;tr&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;DATA&lt;/th&gt;&lt;th&gt;Rev Count&lt;/th&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
+                &lt;tr&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;/tr&gt;
+            &lt;/table&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that a scrollable div doesn't consume wheel events when scroll is latched to main frame.&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivnolatchingexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivnolatchingexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+Test region.
+Tests that scroll events of type 'none' work properly.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+PASS Page received wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivnolatchinghtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivnolatchinghtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-no-latching.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+body {
+    height: 1200px;
+}
+
+.post {
+    width: 500px;
+    height: 600px;
+    overflow: auto;
+    border: 1px solid black;
+}
+
+.content {
+    width: 1000px;
+    height: 100%;
+    background-image: repeating-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2) 100px), repeating-linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2) 100px);
+    
+}
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var divTarget;
+var pageScrollPositionBefore;
+var divScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var divScrollPositionAfter = divTarget.scrollLeft;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, div after: &quot; + divScrollPositionAfter);
+
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testPassed(&quot;Page received wheel events.&quot;);
+    else
+        testFailed(&quot;Page did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    divTarget = document.getElementById('parent');
+
+    divScrollPositionBefore = divTarget.scrollLeft;
+
+    var startPosX = divTarget.offsetLeft + 20;
+    //debug(&quot;div display height = &quot; + divTarget.clientHeight);
+    var startPosY = divTarget.offsetTop + (divTarget.clientHeight / 2); // One wheel turn before end.
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    //debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
+    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);
+
+    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);
+
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
+    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
+
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;inside the textured region. (1) Use the mouse wheel to scroll vertically, then (2) hold the shift key while&lt;br/&gt;&quot;
+            + &quot;moving the mouse wheel to scroll horizontally, then (3) release the shift key and attempt to scroll vertically.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;The final set of vertical moves should modify the parent page scroll position.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+    &lt;div id=&quot;parent&quot; class=&quot;post&quot;&gt;
+        &lt;div id=&quot;target&quot; class=&quot;content&quot;&gt;
+            Test region.
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that scroll events of type 'none' work properly.&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivwithnestednonscrollableiframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivwithnestednonscrollableiframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Put mouse inside the iframe (below) and flick downwards
+
+Tests that iframe does scroll when inner iframe is NOT scrollable.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+PASS div did scroll.
+PASS Page did NOT scroll.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolldivwithnestednonscrollableiframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolldivwithnestednonscrollableiframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,118 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+
+var divTarget;
+var pageScrollPositionBefore;
+var divScrollPositionBefore;
+
+function locationInWindowCoordinates(element)
+{
+    var position = {};
+    position.x = element.offsetLeft;
+    position.y = element.offsetTop;
+
+    while (element.offsetParent) {
+        position.x = position.x + element.offsetParent.offsetLeft;
+        position.y = position.y + element.offsetParent.offsetTop;
+        if (element == document.getElementsByTagName(&quot;body&quot;)[0])
+            break;
+
+        element = element.offsetParent;
+    }
+
+    return position;
+}
+
+function finishTest()
+{
+    finishJSTest();
+    testRunner.notifyDone();            
+}
+
+function checkForScroll()
+{
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var divScrollPositionAfter = divTarget.scrollTop;
+
+    if (divScrollPositionBefore != divScrollPositionAfter)
+        testPassed(&quot;div did scroll.&quot;);
+    else
+        testFailed(&quot;div did NOT scroll.&quot;);
+
+    if (pageScrollPositionBefore == pageScrollPositionAfter)
+        testPassed(&quot;Page did NOT scroll.&quot;);
+    else
+        testFailed(&quot;Page DID scroll.&quot;);
+
+    finishTest();
+}
+
+function scrollTest()
+{
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    divTarget = document.getElementById('scrollable_div');
+
+    var windowPosition = locationInWindowCoordinates(divTarget);
+
+    var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
+    var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
+
+    divScrollPositionBefore = divTarget.scrollTop;
+
+    eventSender.mouseMoveTo(startPosX, startPosY);
+    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);
+    eventSender.callAfterScrollingCompletes(checkForScroll);
+}
+
+function setupTopLevel()
+{
+    if (window.eventSender) {
+        jsTestIsAsync = true;
+        testRunner.waitUntilDone();
+
+        eventSender.monitorWheelEvents();
+        setTimeout(scrollTest, 0);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
+            + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 20px&quot;&gt;
+        Put mouse inside the iframe (below) and flick downwards
+    &lt;/div&gt;
+    &lt;div id=&quot;scrollable_div&quot; style=&quot;height: 400px; width: 430px; overflow-y:auto; padding: 0;&quot;&gt;
+        &lt;iframe id=&quot;non_scrollable_iframe&quot; src=&quot;resources/background.html&quot; style=&quot;height: 2100px; width:410px; overflow:hidden; scrolling: no&quot; onload=&quot;setupTopLevel();&quot;&gt;
+        &lt;/iframe&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that iframe does scroll when inner iframe is NOT scrollable.&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframefragmentexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframefragmentexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+
+Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+IFrame display height = 500
+Mouse moved to (28, 466)
+PASS IFrame received wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframefragmenthtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframefragmenthtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-fragment.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,101 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
+        &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+    &lt;/head&gt;
+    &lt;body&gt;
+        &lt;script&gt;
+        var iframeTarget;
+        var pageScrollPositionBefore;
+        var iFrameScrollPositionBefore;
+        var continueCount = 5;
+
+        function checkForScroll() {
+
+            // The IFrame should have scrolled, but not the main page.
+            var pageScrollPositionAfter = document.body.scrollTop;
+            var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
+
+            if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
+                testPassed(&quot;IFrame received wheel events.&quot;);
+            else
+                testFailed(&quot;IFrame did not receive wheel events.&quot;);
+
+            testRunner.notifyDone();
+        }
+
+        function scrollTest() {
+            // See where our IFrame lives:
+            pageScrollPositionBefore = document.body.scrollTop;
+
+            iframeTarget = document.getElementById('target');
+
+            var iFrameBody = window.frames['target'].document.body;
+            iFrameBody.scrollTop = iFrameBody.scrollHeight - iframeTarget.clientHeight - 100;
+
+            iFrameScrollPositionBefore = iFrameBody.scrollTop;
+
+            // Scroll the #source until we reach the #target.
+            var startPosX = iframeTarget.offsetLeft + 20;
+            debug(&quot;IFrame display height = &quot; + iframeTarget.clientHeight);
+            var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
+            eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+            debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+            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);
+            setTimeout(checkForScroll, 100);
+        }
+
+        function setupTopLevel() {
+            if (window.eventSender) {
+                testRunner.waitUntilDone();
+
+                setTimeout(scrollTest, 1000);
+            } else {
+                var messageLocation = document.getElementById('parent');
+                var message = document.createElement('div');
+                message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+                    + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
+                    + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
+                    + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
+                messageLocation.appendChild(message);
+            }
+        }
+        &lt;/script&gt;
+        &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 500px; width: 500px;&quot; 
+            src= &quot;data:text/html,
+                &lt;html&gt;
+                    &lt;head&gt;
+                        &lt;style&gt;div { width: 400px; height: 200px; } &lt;/style&gt;
+                    &lt;/head&gt;
+                    &lt;body&gt;
+                        &lt;div id='notToBeScrolled' style='height: 1000px; width: 1000px;'&gt;
+                            TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
+                            This should still be visible inside the frame after you scroll down
+                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+                            This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
+                            &lt;br/&gt;
+                            END END END END END END END END END END END END END
+                        &lt;/div&gt;
+                    &lt;/body&gt;
+                &lt;/html&gt;&quot;
+            onload=&quot;setupTopLevel();&quot;&gt;
+        &lt;/iframe&gt;
+        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+        &lt;script&gt;
+        description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom&quot;);
+        &lt;/script&gt;
+        &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframelatchediframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframelatchediframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+Put mouse here and flick downwards
+
+Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+IFrame display height = 500
+Mouse moved to (28, 566)
+PASS Page did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframelatchediframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframelatchediframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,107 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+
+var iframeTarget;
+var pageScrollPositionBefore;
+var iFrameScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The IFrame should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, IFrame before: &quot; + iFrameScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, IFrame after: &quot; + iFrameScrollPositionAfter);
+
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testFailed(&quot;Page received wheel events.&quot;);
+    else
+        testPassed(&quot;Page did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    iframeTarget = document.getElementById('target');
+
+    var iFrameBody = window.frames['target'].document.body;
+    iFrameBody.scrollTop = iFrameBody.scrollHeight - iframeTarget.clientHeight - 100;
+
+    iFrameScrollPositionBefore = iFrameBody.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = iframeTarget.offsetLeft + 20;
+    debug(&quot;IFrame display height = &quot; + iframeTarget.clientHeight);
+    var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
+            + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+    &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 500px; width: 500px;&quot; 
+     src= &quot;data:text/html,
+     &lt;div id='notToBeScrolled' style='height: 1000px; width: 1000px;'&gt;
+     TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
+     This should still be visible inside the frame after you scroll down
+     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+     This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
+     &lt;br/&gt;
+     END END END END END END END END END END END END END
+     &lt;/div&gt;
+     &quot;
+     onload=&quot;setupTopLevel();&quot;
+     &gt;
+    &lt;/iframe&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframelatchedmainframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframelatchedmainframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+Put mouse here and flick downwards
+
+Tests that iframe doesn't consume wheel events when scroll
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Mouse moved to (28, 66)
+PASS IFrame did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframelatchedmainframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframelatchedmainframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-latched-mainframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,102 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+
+var iframeTarget;
+var pageScrollPositionBefore;
+var iFrameScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The IFrame should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, IFrame before: &quot; + iFrameScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, IFrame after: &quot; + iFrameScrollPositionAfter);
+
+    if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
+        testFailed(&quot;IFrame consumed wheel events.&quot;);
+    else
+        testPassed(&quot;IFrame did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+    iFrameScrollPositionBefore = window.frames['target'].document.body.scrollTop;
+
+    iframeTarget = document.getElementById('target');
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = iframeTarget.offsetLeft + 20;
+    var startPosY = iframeTarget.offsetTop - 42; // Slightly more than one wheel scroll away from the IFrame
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
+            + &quot;down past the IFrame.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+    &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 500px; width: 500px;&quot; 
+     src= &quot;data:text/html,
+     &lt;div id='notToBeScrolled' style='height: 1000px; width: 1000px;'&gt;
+     TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
+     This should still be visible inside the frame after you scroll down
+     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+     This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
+     &lt;br/&gt;
+     END END END END END END END END END END END END END
+     &lt;/div&gt;
+     &quot;
+     onload=&quot;setupTopLevel();&quot;
+     &gt;
+    &lt;/iframe&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that iframe doesn't consume wheel events when scroll &quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframewebkit1latchingbugexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframewebkit1latchingbugexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+
+Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+iframe display height = 150
+Mouse moved to (28, 116)
+PASS iframe received wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolliframewebkit1latchingbughtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolliframewebkit1latchingbughtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-iframe-webkit1-latching-bug.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,100 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+    &lt;head&gt;
+        &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
+        &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+    &lt;/head&gt;
+    &lt;body id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
+        &lt;script&gt;
+        var iframeTarget;
+        var pageScrollPositionBefore;
+        var iframeScrollPositionBefore;
+        var continueCount = 5;
+
+        function checkForScroll() {
+
+            // The iframe should have scrolled, but not the main page.
+            var pageScrollPositionAfter = document.body.scrollTop;
+            var iframeScrollPositionAfter = window.frames['target'].document.body.scrollTop;
+
+            if (iframeScrollPositionBefore != iframeScrollPositionAfter)
+                testPassed(&quot;iframe received wheel events.&quot;);
+            else
+                testFailed(&quot;iframe did not receive wheel events.&quot;);
+
+            testRunner.notifyDone();
+        }
+
+        function scrollTest() {
+            // See where our iframe lives:
+            pageScrollPositionBefore = document.body.scrollTop;
+
+            iframeTarget = document.getElementById('target');
+
+            var iframeBody = window.frames['target'].document.body;
+            iframeBody.scrollTop = iframeBody.scrollHeight - iframeTarget.clientHeight - 100;
+
+            iframeScrollPositionBefore = iframeBody.scrollTop;
+
+            // Scroll the #source until we reach the #target.
+            var startPosX = iframeTarget.offsetLeft + 20;
+            debug(&quot;iframe display height = &quot; + iframeTarget.clientHeight);
+            var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
+            eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iframe
+            debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+            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);
+            setTimeout(checkForScroll, 100);
+        }
+
+        function setupTopLevel() {
+            if (window.eventSender) {
+                testRunner.waitUntilDone();
+
+                setTimeout(scrollTest, 1000);
+            } else {
+                var messageLocation = document.getElementById('parent');
+                var message = document.createElement('div');
+                message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+                    + &quot;inside the iframe, then use the mouse wheel or a two-finger swipe to scroll the iframe to the bottom (and beyond).&lt;br/&gt;&quot;
+                    + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
+                    + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
+                messageLocation.appendChild(message);
+            }
+        }
+        &lt;/script&gt;
+        &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 150px; width: 300px;&quot; 
+            src= &quot;data:text/html,
+                &lt;html style='height: 100%'&gt;
+                    &lt;body style='height: 100%'&gt;
+                        &lt;div style='height: 100px; width: 200px'&gt;
+                            &lt;div style='overflow-y: auto; overflow-x: hidden;'&gt;
+                            TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
+                            This should still be visible inside the frame after you scroll down
+                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
+                            This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
+                            &lt;br/&gt;
+                            END END END END END END END END END END END END END
+                            &lt;/div&gt;
+                        &lt;/div&gt;
+                    &lt;/body&gt;
+                &lt;/html&gt;&quot;
+            onload=&quot;setupTopLevel();&quot;&gt;
+        &lt;/iframe&gt;
+        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+        &lt;script&gt;
+        description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom&quot;);
+        &lt;/script&gt;
+        &lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolllatchednesteddivexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolllatchednesteddivexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+Put mouse next to the table labeled 'Scrollable Region' and flick downward. The scroll movement should come to a halt. Then flick again. The overall page should scroll.
+Scrollable Region
+
+Count        DATA        Rev Count
+TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP
+1        0.1100        40
+2        0.1155        39
+3        0.2200        38
+4        0.2255        37
+5        0.3300        36
+6        0.3355        35
+7        0.4400        34
+8        0.4455        33
+9        0.5500        32
+10        0.5555        31
+11        0.6600        30
+12        0.6655        29
+13        0.7700        28
+14        0.7755        27
+15        0.8800        26
+16        0.8855        25
+17        0.9900        24
+18        0.9955        23
+19        0.9999        22
+20        1.0000        21
+21        1.0000        20
+22        0.9999        19
+23        0.9955        18
+24        0.9900        17
+25        0.8855        16
+26        0.8800        15
+27        0.7755        14
+28        0.7700        13
+29        0.6655        12
+30        0.6600        11
+31        0.5555        10
+32        0.5500        9
+33        0.4455        8
+34        0.4400        7
+35        0.3355        6
+36        0.3300        5
+37        0.2255        4
+38        0.2200        3
+39        0.1155        2
+40        0.1100        1
+END END END END END        END END END END END        END END END END END
+A set of information at the bottom of the table.
+
+Tests that a scrollable div nested inside another scrollable div properly handles wheel events under sub-pixel conditions.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+wrapperTarget = [object HTMLDivElement]
+First scroll event:
+PASS Page did not receive wheel events during the first gesture.
+PASS Wrapper received wheel events during the first gesture.
+PASS div did not receive wheel events during the first gesture.
+Second scroll event:
+PASS Page received wheel events during the second gesture.
+PASS Wrapper did not receive wheel events during the second gesture.
+PASS div did not receive wheel events during the second gesture.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrolllatchednesteddivhtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrolllatchednesteddivhtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-latched-nested-div.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,228 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.scrollable_region {
+    width: 680px;
+}
+
+.table td, .table th {
+    padding: 2px;
+}
+
+.table th {
+    height: 20px;
+    text-align: left;
+    font-weight: strong;
+}
+
+.table tr:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+.scrollable_select option:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var wrapperTarget;
+var divTarget;
+var pageScrollPositionBefore;
+var wrapperScrollPositionBefore;
+var divScrollPositionBefore;
+var continueCount = 5;
+
+function checkForSecondScroll() {
+    // 'parent' should have scrolled, the content of 'target' should
+    // not have scrolled, and 'wrapper' should not have scrolled.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var wrapperScrollPositionAfter = wrapperTarget.scrollTop;
+    var divScrollPositionAfter = divTarget.scrollTop;
+
+    debug(&quot;Second scroll event:&quot;);
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testPassed(&quot;Page received wheel events during the second gesture.&quot;);
+    else
+        testFailed(&quot;Page did not receive wheel events during the second gesture.&quot;);
+
+    if (wrapperScrollPositionBefore != wrapperScrollPositionAfter)
+        testFailed(&quot;Wrapper received wheel events during the second gesture.&quot;);
+    else
+        testPassed(&quot;Wrapper did not receive wheel events during the second gesture.&quot;);
+
+    if (divScrollPositionBefore != divScrollPositionAfter)
+        testFailed(&quot;div received wheel events during the second gesture.&quot;);
+    else
+        testPassed(&quot;div did not receive wheel events during the second gesture.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function checkForFirstScroll() {
+    // 'parent' should not have scrolled, and the content of 'target' should
+    // not have moved. However, 'wrapper' should have moved.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var wrapperScrollPositionAfter = wrapperTarget.scrollTop;
+    var divScrollPositionAfter = divTarget.scrollTop;
+
+    debug(&quot;First scroll event:&quot;);
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testFailed(&quot;Page received wheel events during the first gesture.&quot;);
+    else
+        testPassed(&quot;Page did not receive wheel events during the first gesture.&quot;);
+
+    if (wrapperScrollPositionBefore != wrapperScrollPositionAfter)
+        testPassed(&quot;Wrapper received wheel events during the first gesture.&quot;);
+    else
+        testFailed(&quot;Wrapper did not receive wheel events during the first gesture.&quot;);
+
+    if (divScrollPositionBefore != divScrollPositionAfter)
+        testFailed(&quot;div received wheel events during the first gesture.&quot;);
+    else
+        testPassed(&quot;div did not receive wheel events during the first gesture.&quot;);
+
+    wrapperScrollPositionBefore = wrapperTarget.scrollTop;
+
+    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);
+    // The timeout used to be only 100, but when we added support for rubber-banding in overflow
+    // areas, we found we had to increase the timeout to allow the rubber-band to finish.
+    setTimeout(checkForSecondScroll, 1000);
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    divTarget = document.getElementById('target');
+    divTarget.scrollTop = divTarget.scrollHeight - divTarget.clientHeight - 100;
+
+    divScrollPositionBefore = divTarget.scrollTop;
+
+    wrapperTarget = document.getElementById('wrapper');
+    wrapperScrollPositionBefore = wrapperTarget.scrollTop;
+    debug(&quot;wrapperTarget = &quot; + wrapperTarget);
+
+    // Move mouse to a position to the right side of the table, and near the bottom.
+    var startPosX = divTarget.offsetLeft + divTarget.clientWidth + 50;
+    var startPosY = Math.round(divTarget.offsetTop) - 42; // One wheel turn before end.
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    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);
+    // The timeout used to be only 100, but when we added support for rubber-banding in overflow
+    // areas, we found we had to increase the timeout to allow the rubber-band to finish.
+    setTimeout(checkForFirstScroll, 1000);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
+            + &quot;down past the div.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 800px;&quot;&gt;
+    &lt;div id=&quot;wrapper&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 600px;'&gt;
+        &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 600px;&quot;&gt;
+            Put mouse next to the table labeled 'Scrollable Region' and flick downward. The scroll movement
+            should come to a halt. Then flick again. The overall page should scroll.
+        &lt;/div&gt;
+        &lt;div class=&quot;scrollable_region&quot;&gt;
+            &lt;h3&gt;Scrollable Region&lt;/h3&gt;
+            &lt;div id=&quot;target&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 485.55px;'&gt;
+                &lt;table class=&quot;table&quot; style='width: 99%'&gt;
+                    &lt;tr&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;DATA&lt;/th&gt;&lt;th&gt;Rev Count&lt;/th&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
+                    &lt;tr&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;/tr&gt;
+                &lt;/table&gt;
+            &lt;/div&gt;
+            &lt;div id=&quot;bottom&quot; style=&quot;height: 100px; width: 600px;&quot;&gt;
+                &lt;p&gt;A set of information at the bottom of the table.&lt;/p&gt;
+            &lt;/div&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that a scrollable div nested inside another scrollable div properly handles wheel events under sub-pixel conditions.&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollnestediframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollnestediframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+Put mouse inside the iframe (below) and flick downwards
+
+Tests that iframe does scroll when inner iframe is NOT scrollable.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+IFrame display height = 1000
+Mouse moved to (28, 88)
+PASS iframe did scroll.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollnestediframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollnestediframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-nested-iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,96 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+    &lt;style&gt;
+    iframe {
+        width: 800px;
+        height: 1000px;
+    }
+    &lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+
+var iframeTarget;
+var pageScrollPositionBefore;
+var iFrameScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The IFrame should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var iFrameScrollPositionAfter = window.frames['scrollable_iframe'].document.body.scrollTop;
+
+    if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
+        testPassed(&quot;iframe did scroll.&quot;);
+    else
+        testFailed(&quot;iframe did NOT scroll.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    iframeTarget = document.getElementById('scrollable_iframe');
+
+    var iFrameBody = window.frames['scrollable_iframe'].document.body;
+    iFrameBody.scrollTop = iFrameBody.scrollHeight - iframeTarget.clientHeight - 100;
+
+    iFrameScrollPositionBefore = iFrameBody.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = iframeTarget.offsetLeft + 20;
+    debug(&quot;IFrame display height = &quot; + iframeTarget.clientHeight);
+    var startPosY = iframeTarget.offsetTop + 60; // One wheel turn before end.
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
+            + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 20px&quot;&gt;
+        Put mouse inside the iframe (below) and flick downwards
+    &lt;/div&gt;
+    &lt;iframe id=&quot;scrollable_iframe&quot; src=&quot;resources/scroll_nested_iframe_test_outer.html&quot; onload=&quot;setupTopLevel();&quot;&gt;
+    &lt;/iframe&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that iframe does scroll when inner iframe is NOT scrollable.&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectbottomtestexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtestexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Put mouse here and flick downwards
+Scrollable Select
+
+
+Tests that a select doesn't pass wheel events to main frame when scrolling at bottom
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+div display height = 111
+Mouse moved to (30, 378)
+PASS Page did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectbottomtesthtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtesthtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-bottom-test.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,150 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.scrollable_region {
+    width: 680px;
+}
+
+.table td, .table th {
+    padding: 2px;
+}
+
+.table th {
+    height: 20px;
+    text-align: left;
+    font-weight: strong;
+}
+
+.table tr:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+.scrollable_select option:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var clientInset = 100;
+
+var selectTarget;
+var pageScrollPositionBefore;
+var selectScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The page should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var selectScrollPositionAfter = selectTarget.scrollTop;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, select before: &quot; + selectScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, select after: &quot; + selectScrollPositionAfter);
+
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testFailed(&quot;Page received wheel events.&quot;);
+    else
+        testPassed(&quot;Page did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    selectTarget = document.getElementById('target');
+    selectTarget.scrollTop = selectTarget.scrollHeight - selectTarget.clientHeight - 100;
+
+    selectScrollPositionBefore = selectTarget.scrollTop;

+    // Scroll the #source until we reach the #target.
+    var startPosX = selectTarget.offsetLeft + 20;
+    debug(&quot;div display height = &quot; + selectTarget.clientHeight);
+    var startPosY = Math.round(selectTarget.offsetTop) + Math.round(selectTarget.clientHeight) + clientInset - 2; // Very near top (accounting for top content inset).
+    eventSender.mouseMoveTo(startPosX, startPosY);
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.dumpAsText(true);
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;inside the select box, and scroll near (but not AT) the bottom of the range. Use the mouse wheel or a two-finger&lt;br/&gt;&quot;
+            + &quot;swipe to scroll through the rest of the select options.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the page position change if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+
+    if (window.internals)
+        window.internals.setTopContentInset(clientInset);
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+        &lt;div class=&quot;scrollable_region&quot;&gt;
+            &lt;h3&gt;Scrollable Select&lt;/h3&gt;
+            &lt;select id=&quot;target&quot; class=&quot;scrollable_select&quot; size=&quot;8&quot;&gt;
+                &lt;option&gt;content1&lt;/option&gt;
+                &lt;option&gt;content2&lt;/option&gt;
+                &lt;option&gt;content3&lt;/option&gt;
+                &lt;option&gt;content4&lt;/option&gt;
+                &lt;option&gt;content5&lt;/option&gt;
+                &lt;option&gt;content6&lt;/option&gt;
+                &lt;option&gt;content7&lt;/option&gt;
+                &lt;option&gt;content8&lt;/option&gt;
+                &lt;option&gt;content9&lt;/option&gt;
+                &lt;option&gt;content10&lt;/option&gt;
+                &lt;option&gt;content11&lt;/option&gt;
+                &lt;option&gt;content12&lt;/option&gt;
+                &lt;option&gt;content13&lt;/option&gt;
+                &lt;option&gt;content14&lt;/option&gt;
+                &lt;option&gt;content15&lt;/option&gt;
+                &lt;option&gt;content16&lt;/option&gt;
+                &lt;option&gt;content17&lt;/option&gt;
+                &lt;option&gt;content18&lt;/option&gt;
+                &lt;option&gt;content19&lt;/option&gt;
+                &lt;option&gt;content20&lt;/option&gt;
+                &lt;option&gt;content21&lt;/option&gt;
+            &lt;/select&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that a select doesn't pass wheel events to main frame when scrolling at bottom&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectlatchedmainframeexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframeexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+Put mouse here and flick downwards
+Scrollable Select
+
+
+Tests that a select doesn't consume wheel events when scroll is latched to main frame.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+Mouse moved to (30, 127)
+PASS Select did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectlatchedmainframehtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframehtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-mainframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,142 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.scrollable_region {
+    width: 680px;
+}
+
+.table td, .table th {
+    padding: 2px;
+}
+
+.table th {
+    height: 20px;
+    text-align: left;
+    font-weight: strong;
+}
+
+.table tr:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+.scrollable_select option:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var selectTarget;
+var pageScrollPositionBefore;
+var selectScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The select should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var selectScrollPositionAfter = selectTarget.scrollTop;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, select before: &quot; + selectScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, select after: &quot; + selectScrollPositionAfter);
+
+    if (selectScrollPositionBefore != selectScrollPositionAfter)
+        testFailed(&quot;Select consumed wheel events.&quot;);
+    else
+        testPassed(&quot;Select did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    selectTarget = document.getElementById('target');
+
+    selectScrollPositionBefore = selectTarget.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = Math.round(selectTarget.offsetLeft) + 20;
+    var startPosY = Math.round(selectTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll down&lt;br/&gt;&quot;
+            + &quot;past the selectTarget.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the 'content21' label if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+        &lt;div class=&quot;scrollable_region&quot;&gt;
+            &lt;h3&gt;Scrollable Select&lt;/h3&gt;
+            &lt;select id=&quot;target&quot; class=&quot;scrollable_select&quot; size=&quot;8&quot;&gt;
+                &lt;option&gt;content1&lt;/option&gt;
+                &lt;option&gt;content2&lt;/option&gt;
+                &lt;option&gt;content3&lt;/option&gt;
+                &lt;option&gt;content4&lt;/option&gt;
+                &lt;option&gt;content5&lt;/option&gt;
+                &lt;option&gt;content6&lt;/option&gt;
+                &lt;option&gt;content7&lt;/option&gt;
+                &lt;option&gt;content8&lt;/option&gt;
+                &lt;option&gt;content9&lt;/option&gt;
+                &lt;option&gt;content10&lt;/option&gt;
+                &lt;option&gt;content11&lt;/option&gt;
+                &lt;option&gt;content12&lt;/option&gt;
+                &lt;option&gt;content13&lt;/option&gt;
+                &lt;option&gt;content14&lt;/option&gt;
+                &lt;option&gt;content15&lt;/option&gt;
+                &lt;option&gt;content16&lt;/option&gt;
+                &lt;option&gt;content17&lt;/option&gt;
+                &lt;option&gt;content18&lt;/option&gt;
+                &lt;option&gt;content19&lt;/option&gt;
+                &lt;option&gt;content20&lt;/option&gt;
+                &lt;option&gt;content21&lt;/option&gt;
+            &lt;/select&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that a select doesn't consume wheel events when scroll is latched to main frame.&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectlatchedselectexpectedtxtfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselectexpectedtxt"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select-expected.txt (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select-expected.txt                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+Put mouse here and flick downwards
+Scrollable Select
+
+
+Tests that a select doesn't pass wheel events to main frame when scrolling at bottom
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+div display height = 111
+Mouse moved to (30, 238)
+PASS Page did not receive wheel events.
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastscrollinglatchingscrollselectlatchedselecthtmlfromrev188159trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselecthtml"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html (from rev 188159, trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html) (0 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html                                (rev 0)
+++ trunk/LayoutTests/fast/scrolling/latching/scroll-select-latched-select.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.scrollable_region {
+    width: 680px;
+}
+
+.table td, .table th {
+    padding: 2px;
+}
+
+.table th {
+    height: 20px;
+    text-align: left;
+    font-weight: strong;
+}
+
+.table tr:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+.scrollable_select option:nth-child(odd) {
+    background: #f3f3f3;
+}
+
+&lt;/style&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+function onLoad() {
+    setupTopLevel();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onLoad();&quot;&gt;
+&lt;script&gt;
+
+var selectTarget;
+var pageScrollPositionBefore;
+var selectScrollPositionBefore;
+var continueCount = 5;
+
+function checkForScroll() {
+
+    // The page should not have scrolled at all.
+    var pageScrollPositionAfter = document.body.scrollTop;
+    var selectScrollPositionAfter = selectTarget.scrollTop;
+
+    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, select before: &quot; + selectScrollPositionBefore);
+    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, select after: &quot; + selectScrollPositionAfter);
+
+    if (pageScrollPositionBefore != pageScrollPositionAfter)
+        testFailed(&quot;Page received wheel events.&quot;);
+    else
+        testPassed(&quot;Page did not receive wheel events.&quot;);
+
+    testRunner.notifyDone();
+}
+
+function scrollTest() {
+    // See where our IFrame lives:
+    pageScrollPositionBefore = document.body.scrollTop;
+
+    selectTarget = document.getElementById('target');
+    selectTarget.scrollTop = selectTarget.scrollHeight - selectTarget.clientHeight - 100;
+
+    selectScrollPositionBefore = selectTarget.scrollTop;
+
+    // Scroll the #source until we reach the #target.
+    var startPosX = Math.round(selectTarget.offsetLeft) + 20;
+    debug(&quot;div display height = &quot; + selectTarget.clientHeight);
+    var startPosY = Math.round(selectTarget.offsetTop) + Math.round(selectTarget.clientHeight) - 42; // One wheel turn before end.
+    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
+    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
+    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);
+    setTimeout(checkForScroll, 100);
+}
+
+function setupTopLevel() {
+
+    if (window.eventSender) {
+        testRunner.dumpAsText(true);
+        testRunner.waitUntilDone();
+
+        setTimeout(scrollTest, 1000);
+    } else {
+        var messageLocation = document.getElementById('parent');
+        var message = document.createElement('div');
+        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
+            + &quot;inside the select box, and scroll near (but not AT) the bottom of the range. Use the mouse wheel or a two-finger&lt;br/&gt;&quot;
+            + &quot;swipe to scroll through the rest of the select options.&lt;br/&gt;&lt;br/&gt;&quot;
+            + &quot;You should not see the page position change if this test is successful.&lt;/p&gt;&quot;;
+        messageLocation.appendChild(message);
+    }
+}
+
+&lt;/script&gt;
+&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
+    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
+        Put mouse here and flick downwards
+    &lt;/div&gt;
+        &lt;div class=&quot;scrollable_region&quot;&gt;
+            &lt;h3&gt;Scrollable Select&lt;/h3&gt;
+            &lt;select id=&quot;target&quot; class=&quot;scrollable_select&quot; size=&quot;8&quot;&gt;
+                &lt;option&gt;content1&lt;/option&gt;
+                &lt;option&gt;content2&lt;/option&gt;
+                &lt;option&gt;content3&lt;/option&gt;
+                &lt;option&gt;content4&lt;/option&gt;
+                &lt;option&gt;content5&lt;/option&gt;
+                &lt;option&gt;content6&lt;/option&gt;
+                &lt;option&gt;content7&lt;/option&gt;
+                &lt;option&gt;content8&lt;/option&gt;
+                &lt;option&gt;content9&lt;/option&gt;
+                &lt;option&gt;content10&lt;/option&gt;
+                &lt;option&gt;content11&lt;/option&gt;
+                &lt;option&gt;content12&lt;/option&gt;
+                &lt;option&gt;content13&lt;/option&gt;
+                &lt;option&gt;content14&lt;/option&gt;
+                &lt;option&gt;content15&lt;/option&gt;
+                &lt;option&gt;content16&lt;/option&gt;
+                &lt;option&gt;content17&lt;/option&gt;
+                &lt;option&gt;content18&lt;/option&gt;
+                &lt;option&gt;content19&lt;/option&gt;
+                &lt;option&gt;content20&lt;/option&gt;
+                &lt;option&gt;content21&lt;/option&gt;
+            &lt;/select&gt;
+        &lt;/div&gt;
+    &lt;/div&gt;
+&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+&lt;script&gt;
+description(&quot;Tests that a select doesn't pass wheel events to main frame when scrolling at bottom&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/TestExpectations        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -8,6 +8,7 @@
</span><span class="cx"> 
</span><span class="cx"> accessibility/mac [ Pass ]
</span><span class="cx"> editing/mac [ Pass ]
</span><ins>+fast/scrolling/latching [ Pass ]
</ins><span class="cx"> 
</span><span class="cx"> #//////////////////////////////////////////////////////////////////////////////////////////
</span><span class="cx"> # End platform-specific directories.
</span><span class="lines">@@ -1305,7 +1306,7 @@
</span><span class="cx"> [ ElCapitan+ ] canvas/philip/tests/2d.composite.uncovered.fill.source-in.html [ Pass Failure ]
</span><span class="cx"> 
</span><span class="cx"> # WK1-only timeout.
</span><del>-webkit.org/b/147683 platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html [ Skip ]
</del><ins>+webkit.org/b/147683 fast/scrolling/latching/scroll-div-with-nested-nonscrollable-iframe.html [ Skip ]
</ins><span class="cx"> 
</span><span class="cx"> webkit.org/b/147763 [ Mavericks ] accessibility/mac/loaded-notification.html [ Skip ]
</span><span class="cx"> webkit.org/b/147763 [ Yosemite ] accessibility/mac/loaded-notification.html [ Skip ]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingiframe_in_iframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-Inner Frame:
-
-Tests that iframe doesn't pass wheel events to main frame when scrolling inside iframe
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS Page did not receive wheel events.
-PASS iframe did not receive wheel events.
-PASS iframe received wheel events.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingiframe_in_iframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/iframe_in_iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,114 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;title&gt;iFrame in iFrame Test&lt;/title&gt;
-        &lt;style&gt;
-        * {
-            box-sizing: border-box;
-        }
-
-        .container {
-            width:100%;
-            overflow:auto;
-            height:auto;
-        }
-
-        .innercontainer {
-            height:100%;
-            width:50%;
-        }
-        &lt;/style&gt;
-        &lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-&lt;script&gt;
-
-var iframeTarget;
-var innerIFrameTarget;
-var pageScrollPositionBefore;
-var iFrameScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll()
-{
-    // The IFrame should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
-    var innerIFrameScrollPositionAfter = iframeTarget.contentWindow.frames['target'].document.body.scrollTop;
-
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testFailed(&quot;Page received wheel events.&quot;);
-    else
-        testPassed(&quot;Page did not receive wheel events.&quot;);
-
-    if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
-        testFailed(&quot;iframe received wheel events.&quot;);
-    else
-        testPassed(&quot;iframe did not receive wheel events.&quot;);
-
-    if (innerIFrameScrollPositionBefore != innerIFrameScrollPositionAfter)
-        testPassed(&quot;iframe received wheel events.&quot;);
-    else
-        testFailed(&quot;iframe did not receive wheel events.&quot;);
-
-    finishJSTest();
-    testRunner.notifyDone();
-}
-
-function scrollTest()
-{
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    iframeTarget = document.getElementById('target');
-
-    var iFrameBody = window.frames['target'].document.body;
-    iFrameScrollPositionBefore = iFrameBody.scrollTop;
-
-    innerIFrameTarget = iframeTarget.contentWindow.frames['target'].document.body;
-    innerIFrameScrollPositionBefore = innerIFrameTarget.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = Math.round(iframeTarget.offsetLeft) + 20;
-    var startPosY = Math.round(iframeTarget.offsetTop) + 80;
-    eventSender.mouseMoveTo(startPosX, startPosY);
-    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, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'continue');
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'none', 'end');
-    eventSender.callAfterScrollingCompletes(checkForScroll);
-}
-
-function setupTopLevel()
-{
-    if (window.eventSender) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-
-        eventSender.monitorWheelEvents();
-        setTimeout(scrollTest, 0);
-    }
-}
-&lt;/script&gt;
-        &lt;div class=&quot;container&quot;&gt;
-            &lt;div class=&quot;innercontainer&quot;&gt;
-                &lt;div style=&quot;width:100%;&quot;&gt;
-                    &lt;div&gt;Inner Frame:&lt;/div&gt;
-                    &lt;div style=&quot;height:92%;&quot;&gt;
-                        &lt;iframe id=&quot;target&quot; name=&quot;target&quot; src=&quot;resources/testContent.html&quot; onload=&quot;setupTopLevel();&quot;&gt;&lt;/iframe&gt;
-                    &lt;/div&gt;
-                &lt;/div&gt;
-            &lt;/div&gt;
-        &lt;/div&gt;
-        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-        &lt;script&gt;
-        description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling inside iframe&quot;);
-        &lt;/script&gt;
-        &lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingresourcesbackgroundhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/resources/background.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/resources/background.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/resources/background.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-
-&lt;html&gt;
-&lt;head&gt;
-    &lt;style&gt;
-    div {
-        position: relative;
-        width: 400px;
-        height: 2000px;
-        padding: 0;
-        background-image: repeating-linear-gradient(to bottom, white, silver 200px);
-    }
-    &lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-    &lt;div&gt;This content is displayed in an iframe. The iframe should be sized such that it does not need to scroll.&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingresourcesinner_contenthtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/resources/inner_content.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,19 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html lang=&quot;en-US&quot;&gt;
-    &lt;head&gt;
-        &lt;title&gt;Inner iFrame Example&lt;/title&gt;
-        &lt;meta charset=&quot;utf-8&quot;&gt;
-    &lt;/head&gt;
-    &lt;body style=&quot;position: relative; min-height: 100%; top: 0px;&quot;&gt;
-        &lt;div style=&quot;overflow:auto;&quot;&gt;
-            &lt;img src=&quot;testImage.png&quot;&gt;
-            &lt;div&gt;TEST CASE TEST CASE TEST CASE TEST CASE&lt;/div&gt;
-        &lt;/div&gt;
-        &lt;div style=&quot;overflow:auto;&quot;&gt;
-            &lt;h1&gt;TEST HEADING&lt;/h1&gt;
-            &lt;p&gt;Test paragraph.&lt;/p&gt;
-            &lt;div&gt;TEST BUTTON 1&lt;/div&gt;
-            &lt;div&gt;TEST BUTTON 2&lt;/div&gt;      
-        &lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingresourcesscroll_nested_iframe_test_innerhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_inner.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-
-&lt;html&gt;
-&lt;head&gt;
-    &lt;style&gt;
-        
-        body {
-            height: 2000px;
-        }
-    &lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-
-&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
-
-&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
-
-&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingresourcesscroll_nested_iframe_test_outerhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/resources/scroll_nested_iframe_test_outer.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-
-&lt;html&gt;
-&lt;head&gt;
-    &lt;style&gt;
-    body {
-        background-image: repeating-linear-gradient(to bottom, white, silver 400px);
-    }
-    iframe {
-        position: relative;
-        width: 500px;
-        height: 3000px;
-        padding: 0;
-        background-color: gray;
-    }
-    &lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;iframe  id=&quot;nonscrollable_iframe&quot; src=&quot;resources/scroll_nested_iframe_test_inner.html&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingresourcestestContenthtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/resources/testContent.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/resources/testContent.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/resources/testContent.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;body&gt;
-
-&lt;p&gt;An iframe where scrollbars are always shown:&lt;/p&gt;
-&lt;iframe id=&quot;target&quot; name=&quot;target&quot; src=&quot;./inner_content.html&quot; width=&quot;200&quot; height=&quot;200&quot; scrolling=&quot;yes&quot;&gt;
-  &lt;p&gt;Your browser does not support iframes.&lt;/p&gt;
-&lt;/iframe&gt;
-
-&lt;p&gt;An iframe where scrollbars are never shown:&lt;/p&gt;
-&lt;iframe src=&quot;./inner_content.html&quot; width=&quot;200&quot; height=&quot;200&quot; scrolling=&quot;no&quot;&gt;
-  &lt;p&gt;Your browser does not support iframes.&lt;/p&gt;
-&lt;/iframe&gt;
-
-&lt;p&gt;The scrolling attribute is not supported in HTML5. Use CSS instead.&lt;/p&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingresourcestestImagepng"></a>
<div class="binary"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/resources/testImage.png</h4>
<pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,56 +0,0 @@
</span><del>-Put mouse here and flick downwards
-Scrollable Region
-
-Count        DATA        Rev Count
-TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP
-1        0.1100        40
-2        0.1155        39
-3        0.2200        38
-4        0.2255        37
-5        0.3300        36
-6        0.3355        35
-7        0.4400        34
-8        0.4455        33
-9        0.5500        32
-10        0.5555        31
-11        0.6600        30
-12        0.6655        29
-13        0.7700        28
-14        0.7755        27
-15        0.8800        26
-16        0.8855        25
-17        0.9900        24
-18        0.9955        23
-19        0.9999        22
-20        1.0000        21
-21        1.0000        20
-22        0.9999        19
-23        0.9955        18
-24        0.9900        17
-25        0.8855        16
-26        0.8800        15
-27        0.7755        14
-28        0.7700        13
-29        0.6655        12
-30        0.6600        11
-31        0.5555        10
-32        0.5500        9
-33        0.4455        8
-34        0.4400        7
-35        0.3355        6
-36        0.3300        5
-37        0.2255        4
-38        0.2200        3
-39        0.1155        2
-40        0.1100        1
-END END END END END        END END END END END        END END END END END
-Tests that a scrollable div doesn't pass wheel events to main frame when scrolling at bottom
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS Page did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivlatcheddivhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-div.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,163 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.scrollable_region {
-    width: 680px;
-}
-
-.table td, .table th {
-    padding: 2px;
-}
-
-.table th {
-    height: 20px;
-    text-align: left;
-    font-weight: strong;
-}
-
-.table tr:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-.scrollable_select option:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var divTarget;
-var pageScrollPositionBefore;
-var divScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll()
-{
-    // The div should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var divScrollPositionAfter = divTarget.scrollTop;
-
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testFailed(&quot;Page received wheel events.&quot;);
-    else
-        testPassed(&quot;Page did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest()
-{
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    divTarget = document.getElementById('target');
-    divTarget.scrollTop = divTarget.scrollHeight - divTarget.clientHeight - 100;
-
-    divScrollPositionBefore = divTarget.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = Math.round(divTarget.offsetLeft) + 20;
-    var startPosY = Math.round(divTarget.offsetTop) + 100; // One wheel turn before end.
-    eventSender.mouseMoveTo(startPosX, startPosY);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel()
-{
-    if (window.eventSender) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
-            + &quot;down past the div.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-    &lt;div class=&quot;scrollable_region&quot;&gt;
-        &lt;h3&gt;Scrollable Region&lt;/h3&gt;
-        &lt;div id=&quot;target&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 350px;'&gt;
-            &lt;table class=&quot;table&quot; style='width: 99%'&gt;
-                &lt;tr&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;DATA&lt;/th&gt;&lt;th&gt;Rev Count&lt;/th&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;/tr&gt;
-            &lt;/table&gt;
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that a scrollable div doesn't pass wheel events to main frame when scrolling at bottom&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-Put mouse here and flick downwards
-Scrollable Region
-
-Count        DATA        Rev Count
-TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP
-1        0.1100        40
-2        0.1155        39
-3        0.2200        38
-4        0.2255        37
-5        0.3300        36
-6        0.3355        35
-7        0.4400        34
-8        0.4455        33
-9        0.5500        32
-10        0.5555        31
-11        0.6600        30
-12        0.6655        29
-13        0.7700        28
-14        0.7755        27
-15        0.8800        26
-16        0.8855        25
-17        0.9900        24
-18        0.9955        23
-19        0.9999        22
-20        1.0000        21
-21        1.0000        20
-22        0.9999        19
-23        0.9955        18
-24        0.9900        17
-25        0.8855        16
-26        0.8800        15
-27        0.7755        14
-28        0.7700        13
-29        0.6655        12
-30        0.6600        11
-31        0.5555        10
-32        0.5500        9
-33        0.4455        8
-34        0.4400        7
-35        0.3355        6
-36        0.3300        5
-37        0.2255        4
-38        0.2200        3
-39        0.1155        2
-40        0.1100        1
-END END END END END        END END END END END        END END END END END
-Tests that a scrollable div doesn't consume wheel events when scroll is latched to main frame.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-Mouse moved to (28, 125)
-PASS Scrollable div did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivlatchedmainframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-latched-mainframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,165 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.scrollable_region {
-    width: 680px;
-}
-
-.table td, .table th {
-    padding: 2px;
-}
-
-.table th {
-    height: 20px;
-    text-align: left;
-    font-weight: strong;
-}
-
-.table tr:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-.scrollable_select option:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var divTarget;
-var pageScrollPositionBefore;
-var divScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The div should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var divScrollPositionAfter = divTarget.scrollTop;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, div after: &quot; + divScrollPositionAfter);
-
-    if (divScrollPositionBefore != divScrollPositionAfter)
-        testFailed(&quot;Scrollable div consumed wheel events.&quot;);
-    else
-        testPassed(&quot;Scrollable div did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    divTarget = document.getElementById('target');
-
-    divScrollPositionBefore = divTarget.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = Math.round(divTarget.offsetLeft) + 20;
-    var startPosY = Math.round(divTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
-            + &quot;down past the div.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-    &lt;div class=&quot;scrollable_region&quot;&gt;
-        &lt;h3&gt;Scrollable Region&lt;/h3&gt;
-        &lt;div id=&quot;target&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 485px;'&gt;
-            &lt;table class=&quot;table&quot; style='width: 99%'&gt;
-                &lt;tr&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;DATA&lt;/th&gt;&lt;th&gt;Rev Count&lt;/th&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
-                &lt;tr&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;/tr&gt;
-            &lt;/table&gt;
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that a scrollable div doesn't consume wheel events when scroll is latched to main frame.&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivnolatchingexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-Test region.
-Tests that scroll events of type 'none' work properly.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS Page received wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivnolatchinghtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-no-latching.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-body {
-    height: 1200px;
-}
-
-.post {
-    width: 500px;
-    height: 600px;
-    overflow: auto;
-    border: 1px solid black;
-}
-
-.content {
-    width: 1000px;
-    height: 100%;
-    background-image: repeating-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2) 100px), repeating-linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2) 100px);
-    
-}
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var divTarget;
-var pageScrollPositionBefore;
-var divScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var divScrollPositionAfter = divTarget.scrollLeft;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, div after: &quot; + divScrollPositionAfter);
-
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testPassed(&quot;Page received wheel events.&quot;);
-    else
-        testFailed(&quot;Page did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    divTarget = document.getElementById('parent');
-
-    divScrollPositionBefore = divTarget.scrollLeft;
-
-    var startPosX = divTarget.offsetLeft + 20;
-    //debug(&quot;div display height = &quot; + divTarget.clientHeight);
-    var startPosY = divTarget.offsetTop + (divTarget.clientHeight / 2); // One wheel turn before end.
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    //debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, div before: &quot; + divScrollPositionBefore);
-    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);
-
-    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);
-
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-    eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'none', 'none', true);
-
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;inside the textured region. (1) Use the mouse wheel to scroll vertically, then (2) hold the shift key while&lt;br/&gt;&quot;
-            + &quot;moving the mouse wheel to scroll horizontally, then (3) release the shift key and attempt to scroll vertically.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;The final set of vertical moves should modify the parent page scroll position.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-    &lt;div id=&quot;parent&quot; class=&quot;post&quot;&gt;
-        &lt;div id=&quot;target&quot; class=&quot;content&quot;&gt;
-            Test region.
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that scroll events of type 'none' work properly.&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivwithnestednonscrollableiframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-Put mouse inside the iframe (below) and flick downwards
-
-Tests that iframe does scroll when inner iframe is NOT scrollable.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-PASS div did scroll.
-PASS Page did NOT scroll.
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolldivwithnestednonscrollableiframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-div-with-nested-nonscrollable-iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,118 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script&gt;
-
-var divTarget;
-var pageScrollPositionBefore;
-var divScrollPositionBefore;
-
-function locationInWindowCoordinates(element)
-{
-    var position = {};
-    position.x = element.offsetLeft;
-    position.y = element.offsetTop;
-
-    while (element.offsetParent) {
-        position.x = position.x + element.offsetParent.offsetLeft;
-        position.y = position.y + element.offsetParent.offsetTop;
-        if (element == document.getElementsByTagName(&quot;body&quot;)[0])
-            break;
-
-        element = element.offsetParent;
-    }
-
-    return position;
-}
-
-function finishTest()
-{
-    finishJSTest();
-    testRunner.notifyDone();            
-}
-
-function checkForScroll()
-{
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var divScrollPositionAfter = divTarget.scrollTop;
-
-    if (divScrollPositionBefore != divScrollPositionAfter)
-        testPassed(&quot;div did scroll.&quot;);
-    else
-        testFailed(&quot;div did NOT scroll.&quot;);
-
-    if (pageScrollPositionBefore == pageScrollPositionAfter)
-        testPassed(&quot;Page did NOT scroll.&quot;);
-    else
-        testFailed(&quot;Page DID scroll.&quot;);
-
-    finishTest();
-}
-
-function scrollTest()
-{
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    divTarget = document.getElementById('scrollable_div');
-
-    var windowPosition = locationInWindowCoordinates(divTarget);
-
-    var startPosX = windowPosition.x + 0.5 * divTarget.clientWidth;
-    var startPosY = windowPosition.y + 0.5 * divTarget.clientHeight;
-
-    divScrollPositionBefore = divTarget.scrollTop;
-
-    eventSender.mouseMoveTo(startPosX, startPosY);
-    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);
-    eventSender.callAfterScrollingCompletes(checkForScroll);
-}
-
-function setupTopLevel()
-{
-    if (window.eventSender) {
-        jsTestIsAsync = true;
-        testRunner.waitUntilDone();
-
-        eventSender.monitorWheelEvents();
-        setTimeout(scrollTest, 0);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
-            + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 20px&quot;&gt;
-        Put mouse inside the iframe (below) and flick downwards
-    &lt;/div&gt;
-    &lt;div id=&quot;scrollable_div&quot; style=&quot;height: 400px; width: 430px; overflow-y:auto; padding: 0;&quot;&gt;
-        &lt;iframe id=&quot;non_scrollable_iframe&quot; src=&quot;resources/background.html&quot; style=&quot;height: 2100px; width:410px; overflow:hidden; scrolling: no&quot; onload=&quot;setupTopLevel();&quot;&gt;
-        &lt;/iframe&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that iframe does scroll when inner iframe is NOT scrollable.&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframefragmentexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-
-Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-IFrame display height = 500
-Mouse moved to (28, 466)
-PASS IFrame received wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframefragmenthtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-fragment.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,101 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
-        &lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-    &lt;/head&gt;
-    &lt;body&gt;
-        &lt;script&gt;
-        var iframeTarget;
-        var pageScrollPositionBefore;
-        var iFrameScrollPositionBefore;
-        var continueCount = 5;
-
-        function checkForScroll() {
-
-            // The IFrame should have scrolled, but not the main page.
-            var pageScrollPositionAfter = document.body.scrollTop;
-            var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
-
-            if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
-                testPassed(&quot;IFrame received wheel events.&quot;);
-            else
-                testFailed(&quot;IFrame did not receive wheel events.&quot;);
-
-            testRunner.notifyDone();
-        }
-
-        function scrollTest() {
-            // See where our IFrame lives:
-            pageScrollPositionBefore = document.body.scrollTop;
-
-            iframeTarget = document.getElementById('target');
-
-            var iFrameBody = window.frames['target'].document.body;
-            iFrameBody.scrollTop = iFrameBody.scrollHeight - iframeTarget.clientHeight - 100;
-
-            iFrameScrollPositionBefore = iFrameBody.scrollTop;
-
-            // Scroll the #source until we reach the #target.
-            var startPosX = iframeTarget.offsetLeft + 20;
-            debug(&quot;IFrame display height = &quot; + iframeTarget.clientHeight);
-            var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
-            eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-            debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-            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);
-            setTimeout(checkForScroll, 100);
-        }
-
-        function setupTopLevel() {
-            if (window.eventSender) {
-                testRunner.waitUntilDone();
-
-                setTimeout(scrollTest, 1000);
-            } else {
-                var messageLocation = document.getElementById('parent');
-                var message = document.createElement('div');
-                message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-                    + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
-                    + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
-                    + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
-                messageLocation.appendChild(message);
-            }
-        }
-        &lt;/script&gt;
-        &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 500px; width: 500px;&quot; 
-            src= &quot;data:text/html,
-                &lt;html&gt;
-                    &lt;head&gt;
-                        &lt;style&gt;div { width: 400px; height: 200px; } &lt;/style&gt;
-                    &lt;/head&gt;
-                    &lt;body&gt;
-                        &lt;div id='notToBeScrolled' style='height: 1000px; width: 1000px;'&gt;
-                            TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
-                            This should still be visible inside the frame after you scroll down
-                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-                            This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
-                            &lt;br/&gt;
-                            END END END END END END END END END END END END END
-                        &lt;/div&gt;
-                    &lt;/body&gt;
-                &lt;/html&gt;&quot;
-            onload=&quot;setupTopLevel();&quot;&gt;
-        &lt;/iframe&gt;
-        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-        &lt;script&gt;
-        description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom&quot;);
-        &lt;/script&gt;
-        &lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframelatchediframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-Put mouse here and flick downwards
-
-Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-IFrame display height = 500
-Mouse moved to (28, 566)
-PASS Page did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframelatchediframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,107 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script&gt;
-
-var iframeTarget;
-var pageScrollPositionBefore;
-var iFrameScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The IFrame should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, IFrame before: &quot; + iFrameScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, IFrame after: &quot; + iFrameScrollPositionAfter);
-
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testFailed(&quot;Page received wheel events.&quot;);
-    else
-        testPassed(&quot;Page did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    iframeTarget = document.getElementById('target');
-
-    var iFrameBody = window.frames['target'].document.body;
-    iFrameBody.scrollTop = iFrameBody.scrollHeight - iframeTarget.clientHeight - 100;
-
-    iFrameScrollPositionBefore = iFrameBody.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = iframeTarget.offsetLeft + 20;
-    debug(&quot;IFrame display height = &quot; + iframeTarget.clientHeight);
-    var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
-            + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-    &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 500px; width: 500px;&quot; 
-     src= &quot;data:text/html,
-     &lt;div id='notToBeScrolled' style='height: 1000px; width: 1000px;'&gt;
-     TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
-     This should still be visible inside the frame after you scroll down
-     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-     This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
-     &lt;br/&gt;
-     END END END END END END END END END END END END END
-     &lt;/div&gt;
-     &quot;
-     onload=&quot;setupTopLevel();&quot;
-     &gt;
-    &lt;/iframe&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframelatchedmainframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-Put mouse here and flick downwards
-
-Tests that iframe doesn't consume wheel events when scroll
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-Mouse moved to (28, 66)
-PASS IFrame did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframelatchedmainframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-latched-mainframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,102 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script&gt;
-
-var iframeTarget;
-var pageScrollPositionBefore;
-var iFrameScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The IFrame should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var iFrameScrollPositionAfter = window.frames['target'].document.body.scrollTop;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, IFrame before: &quot; + iFrameScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, IFrame after: &quot; + iFrameScrollPositionAfter);
-
-    if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
-        testFailed(&quot;IFrame consumed wheel events.&quot;);
-    else
-        testPassed(&quot;IFrame did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-    iFrameScrollPositionBefore = window.frames['target'].document.body.scrollTop;
-
-    iframeTarget = document.getElementById('target');
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = iframeTarget.offsetLeft + 20;
-    var startPosY = iframeTarget.offsetTop - 42; // Slightly more than one wheel scroll away from the IFrame
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
-            + &quot;down past the IFrame.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-    &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 500px; width: 500px;&quot; 
-     src= &quot;data:text/html,
-     &lt;div id='notToBeScrolled' style='height: 1000px; width: 1000px;'&gt;
-     TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
-     This should still be visible inside the frame after you scroll down
-     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-     &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-     This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
-     &lt;br/&gt;
-     END END END END END END END END END END END END END
-     &lt;/div&gt;
-     &quot;
-     onload=&quot;setupTopLevel();&quot;
-     &gt;
-    &lt;/iframe&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that iframe doesn't consume wheel events when scroll &quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframewebkit1latchingbugexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-
-Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-iframe display height = 150
-Mouse moved to (28, 116)
-PASS iframe received wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolliframewebkit1latchingbughtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-iframe-webkit1-latching-bug.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,100 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-    &lt;head&gt;
-        &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
-        &lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-    &lt;/head&gt;
-    &lt;body id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
-        &lt;script&gt;
-        var iframeTarget;
-        var pageScrollPositionBefore;
-        var iframeScrollPositionBefore;
-        var continueCount = 5;
-
-        function checkForScroll() {
-
-            // The iframe should have scrolled, but not the main page.
-            var pageScrollPositionAfter = document.body.scrollTop;
-            var iframeScrollPositionAfter = window.frames['target'].document.body.scrollTop;
-
-            if (iframeScrollPositionBefore != iframeScrollPositionAfter)
-                testPassed(&quot;iframe received wheel events.&quot;);
-            else
-                testFailed(&quot;iframe did not receive wheel events.&quot;);
-
-            testRunner.notifyDone();
-        }
-
-        function scrollTest() {
-            // See where our iframe lives:
-            pageScrollPositionBefore = document.body.scrollTop;
-
-            iframeTarget = document.getElementById('target');
-
-            var iframeBody = window.frames['target'].document.body;
-            iframeBody.scrollTop = iframeBody.scrollHeight - iframeTarget.clientHeight - 100;
-
-            iframeScrollPositionBefore = iframeBody.scrollTop;
-
-            // Scroll the #source until we reach the #target.
-            var startPosX = iframeTarget.offsetLeft + 20;
-            debug(&quot;iframe display height = &quot; + iframeTarget.clientHeight);
-            var startPosY = iframeTarget.offsetTop + iframeTarget.clientHeight - 42; // One wheel turn before end.
-            eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iframe
-            debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-            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);
-            setTimeout(checkForScroll, 100);
-        }
-
-        function setupTopLevel() {
-            if (window.eventSender) {
-                testRunner.waitUntilDone();
-
-                setTimeout(scrollTest, 1000);
-            } else {
-                var messageLocation = document.getElementById('parent');
-                var message = document.createElement('div');
-                message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-                    + &quot;inside the iframe, then use the mouse wheel or a two-finger swipe to scroll the iframe to the bottom (and beyond).&lt;br/&gt;&quot;
-                    + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
-                    + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
-                messageLocation.appendChild(message);
-            }
-        }
-        &lt;/script&gt;
-        &lt;iframe id=&quot;target&quot; name=&quot;target&quot; style=&quot;border:solid 1px green; height: 150px; width: 300px;&quot; 
-            src= &quot;data:text/html,
-                &lt;html style='height: 100%'&gt;
-                    &lt;body style='height: 100%'&gt;
-                        &lt;div style='height: 100px; width: 200px'&gt;
-                            &lt;div style='overflow-y: auto; overflow-x: hidden;'&gt;
-                            TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP TOP&lt;br/&gt;&lt;br/&gt;
-                            This should still be visible inside the frame after you scroll down
-                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-                            &lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
-                            This should NOT be visible inside the frame after you scroll down&lt;br/&gt;
-                            &lt;br/&gt;
-                            END END END END END END END END END END END END END
-                            &lt;/div&gt;
-                        &lt;/div&gt;
-                    &lt;/body&gt;
-                &lt;/html&gt;&quot;
-            onload=&quot;setupTopLevel();&quot;&gt;
-        &lt;/iframe&gt;
-        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-        &lt;script&gt;
-        description(&quot;Tests that iframe doesn't pass wheel events to main frame when scrolling at bottom&quot;);
-        &lt;/script&gt;
-        &lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolllatchednesteddivexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,66 +0,0 @@
</span><del>-Put mouse next to the table labeled 'Scrollable Region' and flick downward. The scroll movement should come to a halt. Then flick again. The overall page should scroll.
-Scrollable Region
-
-Count        DATA        Rev Count
-TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP        TOP TOP TOP TOP TOP
-1        0.1100        40
-2        0.1155        39
-3        0.2200        38
-4        0.2255        37
-5        0.3300        36
-6        0.3355        35
-7        0.4400        34
-8        0.4455        33
-9        0.5500        32
-10        0.5555        31
-11        0.6600        30
-12        0.6655        29
-13        0.7700        28
-14        0.7755        27
-15        0.8800        26
-16        0.8855        25
-17        0.9900        24
-18        0.9955        23
-19        0.9999        22
-20        1.0000        21
-21        1.0000        20
-22        0.9999        19
-23        0.9955        18
-24        0.9900        17
-25        0.8855        16
-26        0.8800        15
-27        0.7755        14
-28        0.7700        13
-29        0.6655        12
-30        0.6600        11
-31        0.5555        10
-32        0.5500        9
-33        0.4455        8
-34        0.4400        7
-35        0.3355        6
-36        0.3300        5
-37        0.2255        4
-38        0.2200        3
-39        0.1155        2
-40        0.1100        1
-END END END END END        END END END END END        END END END END END
-A set of information at the bottom of the table.
-
-Tests that a scrollable div nested inside another scrollable div properly handles wheel events under sub-pixel conditions.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-wrapperTarget = [object HTMLDivElement]
-First scroll event:
-PASS Page did not receive wheel events during the first gesture.
-PASS Wrapper received wheel events during the first gesture.
-PASS div did not receive wheel events during the first gesture.
-Second scroll event:
-PASS Page received wheel events during the second gesture.
-PASS Wrapper did not receive wheel events during the second gesture.
-PASS div did not receive wheel events during the second gesture.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrolllatchednesteddivhtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-latched-nested-div.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,228 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.scrollable_region {
-    width: 680px;
-}
-
-.table td, .table th {
-    padding: 2px;
-}
-
-.table th {
-    height: 20px;
-    text-align: left;
-    font-weight: strong;
-}
-
-.table tr:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-.scrollable_select option:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var wrapperTarget;
-var divTarget;
-var pageScrollPositionBefore;
-var wrapperScrollPositionBefore;
-var divScrollPositionBefore;
-var continueCount = 5;
-
-function checkForSecondScroll() {
-    // 'parent' should have scrolled, the content of 'target' should
-    // not have scrolled, and 'wrapper' should not have scrolled.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var wrapperScrollPositionAfter = wrapperTarget.scrollTop;
-    var divScrollPositionAfter = divTarget.scrollTop;
-
-    debug(&quot;Second scroll event:&quot;);
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testPassed(&quot;Page received wheel events during the second gesture.&quot;);
-    else
-        testFailed(&quot;Page did not receive wheel events during the second gesture.&quot;);
-
-    if (wrapperScrollPositionBefore != wrapperScrollPositionAfter)
-        testFailed(&quot;Wrapper received wheel events during the second gesture.&quot;);
-    else
-        testPassed(&quot;Wrapper did not receive wheel events during the second gesture.&quot;);
-
-    if (divScrollPositionBefore != divScrollPositionAfter)
-        testFailed(&quot;div received wheel events during the second gesture.&quot;);
-    else
-        testPassed(&quot;div did not receive wheel events during the second gesture.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function checkForFirstScroll() {
-    // 'parent' should not have scrolled, and the content of 'target' should
-    // not have moved. However, 'wrapper' should have moved.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var wrapperScrollPositionAfter = wrapperTarget.scrollTop;
-    var divScrollPositionAfter = divTarget.scrollTop;
-
-    debug(&quot;First scroll event:&quot;);
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testFailed(&quot;Page received wheel events during the first gesture.&quot;);
-    else
-        testPassed(&quot;Page did not receive wheel events during the first gesture.&quot;);
-
-    if (wrapperScrollPositionBefore != wrapperScrollPositionAfter)
-        testPassed(&quot;Wrapper received wheel events during the first gesture.&quot;);
-    else
-        testFailed(&quot;Wrapper did not receive wheel events during the first gesture.&quot;);
-
-    if (divScrollPositionBefore != divScrollPositionAfter)
-        testFailed(&quot;div received wheel events during the first gesture.&quot;);
-    else
-        testPassed(&quot;div did not receive wheel events during the first gesture.&quot;);
-
-    wrapperScrollPositionBefore = wrapperTarget.scrollTop;
-
-    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);
-    // The timeout used to be only 100, but when we added support for rubber-banding in overflow
-    // areas, we found we had to increase the timeout to allow the rubber-band to finish.
-    setTimeout(checkForSecondScroll, 1000);
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    divTarget = document.getElementById('target');
-    divTarget.scrollTop = divTarget.scrollHeight - divTarget.clientHeight - 100;
-
-    divScrollPositionBefore = divTarget.scrollTop;
-
-    wrapperTarget = document.getElementById('wrapper');
-    wrapperScrollPositionBefore = wrapperTarget.scrollTop;
-    debug(&quot;wrapperTarget = &quot; + wrapperTarget);
-
-    // Move mouse to a position to the right side of the table, and near the bottom.
-    var startPosX = divTarget.offsetLeft + divTarget.clientWidth + 50;
-    var startPosY = Math.round(divTarget.offsetTop) - 42; // One wheel turn before end.
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    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);
-    // The timeout used to be only 100, but when we added support for rubber-banding in overflow
-    // areas, we found we had to increase the timeout to allow the rubber-band to finish.
-    setTimeout(checkForFirstScroll, 1000);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll the&lt;br/&gt;&quot;
-            + &quot;down past the div.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the row of END labels if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 800px;&quot;&gt;
-    &lt;div id=&quot;wrapper&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 600px;'&gt;
-        &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 600px;&quot;&gt;
-            Put mouse next to the table labeled 'Scrollable Region' and flick downward. The scroll movement
-            should come to a halt. Then flick again. The overall page should scroll.
-        &lt;/div&gt;
-        &lt;div class=&quot;scrollable_region&quot;&gt;
-            &lt;h3&gt;Scrollable Region&lt;/h3&gt;
-            &lt;div id=&quot;target&quot; style='overflow-y: auto; overflow-x: hidden; max-height: 485.55px;'&gt;
-                &lt;table class=&quot;table&quot; style='width: 99%'&gt;
-                    &lt;tr&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;DATA&lt;/th&gt;&lt;th&gt;Rev Count&lt;/th&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;td&gt;TOP TOP TOP TOP TOP&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;40&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;38&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;37&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;34&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;1.0000&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;0.9999&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;0.9955&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;0.9900&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;0.8855&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;0.8800&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;0.7755&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;0.7700&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;0.6655&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;0.6600&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;0.5555&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;0.5500&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;0.4455&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;34&lt;/td&gt;&lt;td&gt;0.4400&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;35&lt;/td&gt;&lt;td&gt;0.3355&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;0.3300&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;37&lt;/td&gt;&lt;td&gt;0.2255&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;38&lt;/td&gt;&lt;td&gt;0.2200&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;39&lt;/td&gt;&lt;td&gt;0.1155&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;40&lt;/td&gt;&lt;td&gt;0.1100&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
-                    &lt;tr&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;td&gt;END END END END END&lt;/td&gt;&lt;/tr&gt;
-                &lt;/table&gt;
-            &lt;/div&gt;
-            &lt;div id=&quot;bottom&quot; style=&quot;height: 100px; width: 600px;&quot;&gt;
-                &lt;p&gt;A set of information at the bottom of the table.&lt;/p&gt;
-            &lt;/div&gt;
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that a scrollable div nested inside another scrollable div properly handles wheel events under sub-pixel conditions.&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollnestediframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-Put mouse inside the iframe (below) and flick downwards
-
-Tests that iframe does scroll when inner iframe is NOT scrollable.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-IFrame display height = 1000
-Mouse moved to (28, 88)
-PASS iframe did scroll.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollnestediframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-nested-iframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,96 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/DOM-Level-3-Events/#events-WheelEvent&quot;&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-    &lt;style&gt;
-    iframe {
-        width: 800px;
-        height: 1000px;
-    }
-    &lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script&gt;
-
-var iframeTarget;
-var pageScrollPositionBefore;
-var iFrameScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The IFrame should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var iFrameScrollPositionAfter = window.frames['scrollable_iframe'].document.body.scrollTop;
-
-    if (iFrameScrollPositionBefore != iFrameScrollPositionAfter)
-        testPassed(&quot;iframe did scroll.&quot;);
-    else
-        testFailed(&quot;iframe did NOT scroll.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    iframeTarget = document.getElementById('scrollable_iframe');
-
-    var iFrameBody = window.frames['scrollable_iframe'].document.body;
-    iFrameBody.scrollTop = iFrameBody.scrollHeight - iframeTarget.clientHeight - 100;
-
-    iFrameScrollPositionBefore = iFrameBody.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = iframeTarget.offsetLeft + 20;
-    debug(&quot;IFrame display height = &quot; + iframeTarget.clientHeight);
-    var startPosY = iframeTarget.offsetTop + 60; // One wheel turn before end.
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;inside the IFrame, then use the mouse wheel or a two-finger swipe to scroll the IFrame to the bottom (and beyond).&lt;br/&gt;&quot;
-            + &quot;&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;The test passes if you scroll far enough to see the row of END labels but the main page does not scroll.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 20px&quot;&gt;
-        Put mouse inside the iframe (below) and flick downwards
-    &lt;/div&gt;
-    &lt;iframe id=&quot;scrollable_iframe&quot; src=&quot;resources/scroll_nested_iframe_test_outer.html&quot; onload=&quot;setupTopLevel();&quot;&gt;
-    &lt;/iframe&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that iframe does scroll when inner iframe is NOT scrollable.&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtestexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-Put mouse here and flick downwards
-Scrollable Select
-
-
-Tests that a select doesn't pass wheel events to main frame when scrolling at bottom
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-div display height = 111
-Mouse moved to (30, 378)
-PASS Page did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectbottomtesthtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-bottom-test.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,150 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.scrollable_region {
-    width: 680px;
-}
-
-.table td, .table th {
-    padding: 2px;
-}
-
-.table th {
-    height: 20px;
-    text-align: left;
-    font-weight: strong;
-}
-
-.table tr:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-.scrollable_select option:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var clientInset = 100;
-
-var selectTarget;
-var pageScrollPositionBefore;
-var selectScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The page should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var selectScrollPositionAfter = selectTarget.scrollTop;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, select before: &quot; + selectScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, select after: &quot; + selectScrollPositionAfter);
-
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testFailed(&quot;Page received wheel events.&quot;);
-    else
-        testPassed(&quot;Page did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    selectTarget = document.getElementById('target');
-    selectTarget.scrollTop = selectTarget.scrollHeight - selectTarget.clientHeight - 100;
-
-    selectScrollPositionBefore = selectTarget.scrollTop;

-    // Scroll the #source until we reach the #target.
-    var startPosX = selectTarget.offsetLeft + 20;
-    debug(&quot;div display height = &quot; + selectTarget.clientHeight);
-    var startPosY = Math.round(selectTarget.offsetTop) + Math.round(selectTarget.clientHeight) + clientInset - 2; // Very near top (accounting for top content inset).
-    eventSender.mouseMoveTo(startPosX, startPosY);
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.dumpAsText(true);
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;inside the select box, and scroll near (but not AT) the bottom of the range. Use the mouse wheel or a two-finger&lt;br/&gt;&quot;
-            + &quot;swipe to scroll through the rest of the select options.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the page position change if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-
-    if (window.internals)
-        window.internals.setTopContentInset(clientInset);
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-        &lt;div class=&quot;scrollable_region&quot;&gt;
-            &lt;h3&gt;Scrollable Select&lt;/h3&gt;
-            &lt;select id=&quot;target&quot; class=&quot;scrollable_select&quot; size=&quot;8&quot;&gt;
-                &lt;option&gt;content1&lt;/option&gt;
-                &lt;option&gt;content2&lt;/option&gt;
-                &lt;option&gt;content3&lt;/option&gt;
-                &lt;option&gt;content4&lt;/option&gt;
-                &lt;option&gt;content5&lt;/option&gt;
-                &lt;option&gt;content6&lt;/option&gt;
-                &lt;option&gt;content7&lt;/option&gt;
-                &lt;option&gt;content8&lt;/option&gt;
-                &lt;option&gt;content9&lt;/option&gt;
-                &lt;option&gt;content10&lt;/option&gt;
-                &lt;option&gt;content11&lt;/option&gt;
-                &lt;option&gt;content12&lt;/option&gt;
-                &lt;option&gt;content13&lt;/option&gt;
-                &lt;option&gt;content14&lt;/option&gt;
-                &lt;option&gt;content15&lt;/option&gt;
-                &lt;option&gt;content16&lt;/option&gt;
-                &lt;option&gt;content17&lt;/option&gt;
-                &lt;option&gt;content18&lt;/option&gt;
-                &lt;option&gt;content19&lt;/option&gt;
-                &lt;option&gt;content20&lt;/option&gt;
-                &lt;option&gt;content21&lt;/option&gt;
-            &lt;/select&gt;
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that a select doesn't pass wheel events to main frame when scrolling at bottom&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,15 +0,0 @@
</span><del>-Put mouse here and flick downwards
-Scrollable Select
-
-
-Tests that a select doesn't consume wheel events when scroll is latched to main frame.
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-Mouse moved to (30, 127)
-PASS Select did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedmainframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-mainframe.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,142 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.scrollable_region {
-    width: 680px;
-}
-
-.table td, .table th {
-    padding: 2px;
-}
-
-.table th {
-    height: 20px;
-    text-align: left;
-    font-weight: strong;
-}
-
-.table tr:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-.scrollable_select option:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var selectTarget;
-var pageScrollPositionBefore;
-var selectScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The select should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var selectScrollPositionAfter = selectTarget.scrollTop;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, select before: &quot; + selectScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, select after: &quot; + selectScrollPositionAfter);
-
-    if (selectScrollPositionBefore != selectScrollPositionAfter)
-        testFailed(&quot;Select consumed wheel events.&quot;);
-    else
-        testPassed(&quot;Select did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    selectTarget = document.getElementById('target');
-
-    selectScrollPositionBefore = selectTarget.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = Math.round(selectTarget.offsetLeft) + 20;
-    var startPosY = Math.round(selectTarget.offsetTop) - 42; // Slightly more than one wheel scroll away from the IFrame
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;at the top of the page, and then use the mouse wheel or a two-finger swipe to scroll down&lt;br/&gt;&quot;
-            + &quot;past the selectTarget.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the 'content21' label if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-        &lt;div class=&quot;scrollable_region&quot;&gt;
-            &lt;h3&gt;Scrollable Select&lt;/h3&gt;
-            &lt;select id=&quot;target&quot; class=&quot;scrollable_select&quot; size=&quot;8&quot;&gt;
-                &lt;option&gt;content1&lt;/option&gt;
-                &lt;option&gt;content2&lt;/option&gt;
-                &lt;option&gt;content3&lt;/option&gt;
-                &lt;option&gt;content4&lt;/option&gt;
-                &lt;option&gt;content5&lt;/option&gt;
-                &lt;option&gt;content6&lt;/option&gt;
-                &lt;option&gt;content7&lt;/option&gt;
-                &lt;option&gt;content8&lt;/option&gt;
-                &lt;option&gt;content9&lt;/option&gt;
-                &lt;option&gt;content10&lt;/option&gt;
-                &lt;option&gt;content11&lt;/option&gt;
-                &lt;option&gt;content12&lt;/option&gt;
-                &lt;option&gt;content13&lt;/option&gt;
-                &lt;option&gt;content14&lt;/option&gt;
-                &lt;option&gt;content15&lt;/option&gt;
-                &lt;option&gt;content16&lt;/option&gt;
-                &lt;option&gt;content17&lt;/option&gt;
-                &lt;option&gt;content18&lt;/option&gt;
-                &lt;option&gt;content19&lt;/option&gt;
-                &lt;option&gt;content20&lt;/option&gt;
-                &lt;option&gt;content21&lt;/option&gt;
-            &lt;/select&gt;
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that a select doesn't consume wheel events when scroll is latched to main frame.&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselectexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select-expected.txt        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-Put mouse here and flick downwards
-Scrollable Select
-
-
-Tests that a select doesn't pass wheel events to main frame when scrolling at bottom
-
-On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
-
-
-PASS successfullyParsed is true
-
-TEST COMPLETE
-div display height = 111
-Mouse moved to (30, 238)
-PASS Page did not receive wheel events.
-
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacfastscrollingscrollselectlatchedselecthtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac/fast/scrolling/scroll-select-latched-select.html        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.scrollable_region {
-    width: 680px;
-}
-
-.table td, .table th {
-    padding: 2px;
-}
-
-.table th {
-    height: 20px;
-    text-align: left;
-    font-weight: strong;
-}
-
-.table tr:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-.scrollable_select option:nth-child(odd) {
-    background: #f3f3f3;
-}
-
-&lt;/style&gt;
-&lt;script src=&quot;../../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-function onLoad() {
-    setupTopLevel();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onLoad();&quot;&gt;
-&lt;script&gt;
-
-var selectTarget;
-var pageScrollPositionBefore;
-var selectScrollPositionBefore;
-var continueCount = 5;
-
-function checkForScroll() {
-
-    // The page should not have scrolled at all.
-    var pageScrollPositionAfter = document.body.scrollTop;
-    var selectScrollPositionAfter = selectTarget.scrollTop;
-
-    //debug(&quot;Page before: &quot; + pageScrollPositionBefore + &quot;, select before: &quot; + selectScrollPositionBefore);
-    //debug(&quot;Page after:  &quot; + pageScrollPositionAfter + &quot;, select after: &quot; + selectScrollPositionAfter);
-
-    if (pageScrollPositionBefore != pageScrollPositionAfter)
-        testFailed(&quot;Page received wheel events.&quot;);
-    else
-        testPassed(&quot;Page did not receive wheel events.&quot;);
-
-    testRunner.notifyDone();
-}
-
-function scrollTest() {
-    // See where our IFrame lives:
-    pageScrollPositionBefore = document.body.scrollTop;
-
-    selectTarget = document.getElementById('target');
-    selectTarget.scrollTop = selectTarget.scrollHeight - selectTarget.clientHeight - 100;
-
-    selectScrollPositionBefore = selectTarget.scrollTop;
-
-    // Scroll the #source until we reach the #target.
-    var startPosX = Math.round(selectTarget.offsetLeft) + 20;
-    debug(&quot;div display height = &quot; + selectTarget.clientHeight);
-    var startPosY = Math.round(selectTarget.offsetTop) + Math.round(selectTarget.clientHeight) - 42; // One wheel turn before end.
-    eventSender.mouseMoveTo(startPosX, startPosY); // Make sure we are just outside the iFrame
-    debug(&quot;Mouse moved to (&quot; + startPosX + &quot;, &quot; + startPosY + &quot;)&quot;);
-    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);
-    setTimeout(checkForScroll, 100);
-}
-
-function setupTopLevel() {
-
-    if (window.eventSender) {
-        testRunner.dumpAsText(true);
-        testRunner.waitUntilDone();
-
-        setTimeout(scrollTest, 1000);
-    } else {
-        var messageLocation = document.getElementById('parent');
-        var message = document.createElement('div');
-        message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
-            + &quot;inside the select box, and scroll near (but not AT) the bottom of the range. Use the mouse wheel or a two-finger&lt;br/&gt;&quot;
-            + &quot;swipe to scroll through the rest of the select options.&lt;br/&gt;&lt;br/&gt;&quot;
-            + &quot;You should not see the page position change if this test is successful.&lt;/p&gt;&quot;;
-        messageLocation.appendChild(message);
-    }
-}
-
-&lt;/script&gt;
-&lt;div id=&quot;parent&quot; style=&quot;height: 2000px; width: 2000px;&quot;&gt;
-    &lt;div id=&quot;source&quot; style=&quot;height: 100px; width: 500px;&quot;&gt;
-        Put mouse here and flick downwards
-    &lt;/div&gt;
-        &lt;div class=&quot;scrollable_region&quot;&gt;
-            &lt;h3&gt;Scrollable Select&lt;/h3&gt;
-            &lt;select id=&quot;target&quot; class=&quot;scrollable_select&quot; size=&quot;8&quot;&gt;
-                &lt;option&gt;content1&lt;/option&gt;
-                &lt;option&gt;content2&lt;/option&gt;
-                &lt;option&gt;content3&lt;/option&gt;
-                &lt;option&gt;content4&lt;/option&gt;
-                &lt;option&gt;content5&lt;/option&gt;
-                &lt;option&gt;content6&lt;/option&gt;
-                &lt;option&gt;content7&lt;/option&gt;
-                &lt;option&gt;content8&lt;/option&gt;
-                &lt;option&gt;content9&lt;/option&gt;
-                &lt;option&gt;content10&lt;/option&gt;
-                &lt;option&gt;content11&lt;/option&gt;
-                &lt;option&gt;content12&lt;/option&gt;
-                &lt;option&gt;content13&lt;/option&gt;
-                &lt;option&gt;content14&lt;/option&gt;
-                &lt;option&gt;content15&lt;/option&gt;
-                &lt;option&gt;content16&lt;/option&gt;
-                &lt;option&gt;content17&lt;/option&gt;
-                &lt;option&gt;content18&lt;/option&gt;
-                &lt;option&gt;content19&lt;/option&gt;
-                &lt;option&gt;content20&lt;/option&gt;
-                &lt;option&gt;content21&lt;/option&gt;
-            &lt;/select&gt;
-        &lt;/div&gt;
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-description(&quot;Tests that a select doesn't pass wheel events to main frame when scrolling at bottom&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (188159 => 188160)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-08-07 21:07:40 UTC (rev 188159)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations        2015-08-07 21:07:55 UTC (rev 188160)
</span><span class="lines">@@ -98,7 +98,7 @@
</span><span class="cx"> # Mavericks and prior do not support contentInset
</span><span class="cx"> [ Mavericks ] platform/mac/fast/events/content-inset-hit-testing.html [ Skip ]
</span><span class="cx"> [ Mavericks ] platform/mac/fast/events/content-inset-hit-testing-in-frame.html [ Skip ]
</span><del>-[ Mavericks ] platform/mac/fast/scrolling/scroll-select-bottom-test.html [ Skip ]
</del><ins>+[ Mavericks ] fast/scrolling/latching/scroll-select-bottom-test.html [ Skip ]
</ins><span class="cx"> [ Mavericks ] platform/mac-wk1/fast/backgrounds/top-content-inset-fixed-attachment.html [ Skip ]
</span><span class="cx"> 
</span><span class="cx"> # WK1 uses the native scrollview for scrolling by page.
</span></span></pre>
</div>
</div>

</body>
</html>