Merge backout of bug 469613: Page scrolling by clicking the scrollbar track
authorDave Townsend <dtownsend@oxymoronical.com>
Fri, 09 Jan 2009 13:47:19 +0000
changeset 23509 0ff733711384
parent 23507 02f596a6b80c (current diff)
parent 23508 48b1dea326bb (diff)
child 23510 4c4df6ed1b41
push id4568
push userdtownsend@mozilla.com
push dateFri, 09 Jan 2009 13:47:34 +0000
treeherdermozilla-central@0ff733711384 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs469613
milestone1.9.2a1pre
Merge backout of bug 469613: Page scrolling by clicking the scrollbar track can get stuck if the page is very long
layout/generic/test/test_bug469613.xul
--- a/layout/generic/test/Makefile.in
+++ b/layout/generic/test/Makefile.in
@@ -60,16 +60,15 @@ include $(topsrcdir)/config/rules.mk
 		test_bug402380.html \
 		test_bug404872.html \
 		test_bug405178.html \
 		test_bug416168.html \
 		test_bug421436.html \
 		test_bug448860.html \
 		test_bug460532.html \
 		test_bug468167.html \
-		test_bug469613.xul \
 		test_character_movement.html \
 		test_word_movement.html \
 		test_backspace_delete.html \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
deleted file mode 100644
--- a/layout/generic/test/test_bug469613.xul
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
-<?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?>
-<!--
-https://bugzilla.mozilla.org/show_bug.cgi?id=469613
--->
-<window title="Mozilla Bug 469613"
-  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
-  <title>Test for Bug 469613</title>
-  <script type="application/javascript" src="/MochiKit/packed.js" />
-  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"/>
-  <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"/>
-<body  xmlns="http://www.w3.org/1999/xhtml">
-  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=469613">Mozilla Bug 469613</a>
-
-  <p id="display"></p>
-<div id="content" style="display: none">
-</div>
-</body>
-
-<vbox style="height: 100px; overflow: auto;" id="scrollbox">
-  <hbox style="height: 120px;"/>
-</vbox>
-
-<script class="testbody" type="application/javascript;version=1.7"><![CDATA[
-
-/** Test for Bug 469613 **/
-
-function doTest() {
-  netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-
-  let scrollbox = document.getElementById("scrollbox");
-  scrollbox.scrollTop = 0;
-
-  // Make sure that the "scroll focus" is inside the scrollbox by moving the
-  // mouse in the scrollbox.
-  synthesizeMouse(scrollbox, 6, 6, { type: "mousemove" });
-  synthesizeMouse(scrollbox, 8, 8, { type: "mousemove" });
-
-  // Now scroll 10px down.
-  synthesizeMouseScroll(scrollbox, 10, 10, {axis:"vertical", delta:10, type:"MozMousePixelScroll"});
-
-  // Send a 0-delta scroll.
-  synthesizeMouseScroll(scrollbox, 10, 10, {axis:"vertical", delta:0, type:"MozMousePixelScroll"});
-
-  setTimeout(function() {
-    // Check if the 10px were scrolled.
-    is(scrollbox.scrollTop, 10, "Starting a 0-delta scroll shouldn't cancel a pending async scroll.")
-    SimpleTest.finish();
-  }, 0);
-}
-
-SimpleTest.waitForExplicitFinish();
-addLoadEvent(doTest);
-
-]]></script>
-
-</window>
--- a/view/src/nsScrollPortView.cpp
+++ b/view/src/nsScrollPortView.cpp
@@ -238,22 +238,19 @@ static nsresult ClampScrollValues(nscoor
   
 /*
  * this method wraps calls to ScrollToImpl(), either in one shot or incrementally,
  *  based on the setting of the smooth scroll pref
  */
 NS_IMETHODIMP nsScrollPortView::ScrollTo(nscoord aDestinationX, nscoord aDestinationY,
                                          PRUint32 aUpdateFlags)
 {
-  // Do nothing if the target scroll position hasn't changed.
-  if (aDestinationX == mDestinationX && aDestinationY == mDestinationY)
-    return NS_OK;
-
-  if (aDestinationX == mOffsetX && aDestinationY == mOffsetY) {
-    // Kill any in-progress async scroll.
+  // do nothing if the we aren't scrolling.
+  if (aDestinationX == mDestinationX && aDestinationY == mDestinationY) {
+    // kill any in-progress smooth scroll
     delete mAsyncScroll;
     mAsyncScroll = nsnull;
     return NS_OK;
   }
 
   mDestinationX = aDestinationX;
   mDestinationY = aDestinationY;
   ClampScrollValues(mDestinationX, mDestinationY, this);