Backed out changeset 4b705aaa6f5a (bug 1293125) from Firefox 51. r=mstange, a=gchang
authorBotond Ballo <botond@mozilla.com>
Fri, 18 Nov 2016 12:03:44 -0500
changeset 356719 ef45a0a736433bb947d0dad1f0e5adfdc93c82c1
parent 356718 2330bfeeff17c5848284f8cb54c17462b12bf7b3
child 356720 fab9a1ea282d2f5cda17e846da6c698e3d2c755c
push id6605
push userryanvm@gmail.com
push dateWed, 23 Nov 2016 23:45:22 +0000
treeherdermozilla-beta@f8cd956e52d6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmstange, gchang
bugs1293125, 1316101
milestone51.0
backs out4b705aaa6f5a50c84d4bdde5f0854e14afb418fa
Backed out changeset 4b705aaa6f5a (bug 1293125) from Firefox 51. r=mstange, a=gchang It caused a regression (bug 1316101). MozReview-Commit-ID: 5H8k8P0kXBH
layout/generic/StickyScrollContainer.cpp
layout/reftests/async-scrolling/reftest.list
layout/reftests/async-scrolling/sticky-pos-scrollable-2-ref.html
layout/reftests/async-scrolling/sticky-pos-scrollable-2.html
--- a/layout/generic/StickyScrollContainer.cpp
+++ b/layout/generic/StickyScrollContainer.cpp
@@ -278,26 +278,17 @@ StickyScrollContainer::GetScrollRanges(n
 
   nsRect stick;
   nsRect contain;
   ComputeStickyLimits(firstCont, &stick, &contain);
 
   aOuter->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX);
   aInner->SetRect(nscoord_MIN/2, nscoord_MIN/2, nscoord_MAX, nscoord_MAX);
 
-  // Due to margin collapsing, |firstCont->GetNormalPosition()| can sometimes
-  // fall outside of |contain|. (This is because GetNormalPosition() returns
-  // the actual position after margin collapsing, while|contain| is
-  // calculated based on the frame's GetUsedMargin() which is pre-collapsing.)
-  // This can cause |aInner|, as computed below, to not be contained inside
-  // |aOuter|, which confuses the code that consumes these values.
-  // This is hard to fix properly (TODO), but clamping |normalPosition| to
-  // |contain| works around it.
-  const nsPoint normalPosition =
-      contain.ClampPoint(firstCont->GetNormalPosition());
+  const nsPoint normalPosition = firstCont->GetNormalPosition();
 
   // Bottom and top
   if (stick.YMost() != nscoord_MAX/2) {
     aOuter->SetTopEdge(contain.y - stick.YMost());
     aInner->SetTopEdge(normalPosition.y - stick.YMost());
   }
 
   if (stick.y != nscoord_MIN/2) {
--- a/layout/reftests/async-scrolling/reftest.list
+++ b/layout/reftests/async-scrolling/reftest.list
@@ -20,17 +20,16 @@ skip-if(!asyncPan) == position-fixed-bod
 skip-if(!asyncPan) == position-fixed-cover-1.html position-fixed-cover-1-ref.html
 skip-if(!asyncPan) == position-fixed-cover-2.html position-fixed-cover-2-ref.html
 skip-if(!asyncPan) == position-fixed-cover-3.html position-fixed-cover-3-ref.html
 fuzzy-if(Android,5,4) skip-if(!asyncPan) == position-fixed-transformed-1.html position-fixed-transformed-1-ref.html
 skip-if(!asyncPan) == split-layers-1.html split-layers-1-ref.html
 skip-if(!asyncPan) == split-layers-multi-scrolling-1.html split-layers-multi-scrolling-1-ref.html
 fuzzy-if(skiaContent,2,240000) fuzzy-if(browserIsRemote&&!skiaContent&&(cocoaWidget||winWidget),1,240000) skip-if(!asyncPan) == split-opacity-layers-1.html split-opacity-layers-1-ref.html
 skip-if(!asyncPan) == sticky-pos-scrollable-1.html sticky-pos-scrollable-1-ref.html
-skip-if(!asyncPan) == sticky-pos-scrollable-2.html sticky-pos-scrollable-2-ref.html
 skip-if(!asyncPan) == fixed-pos-scrollable-1.html fixed-pos-scrollable-1-ref.html
 skip-if(!asyncPan) == culling-1.html culling-1-ref.html
 skip-if(!asyncPan) == position-fixed-iframe-1.html position-fixed-iframe-1-ref.html
 skip-if(!asyncPan) == position-fixed-iframe-2.html position-fixed-iframe-2-ref.html
 fuzzy-if(skiaContent,1,11300) skip-if(!asyncPan) == position-fixed-in-scroll-container.html position-fixed-in-scroll-container-ref.html
 skip-if(!asyncPan) == position-fixed-inside-sticky-1.html position-fixed-inside-sticky-1-ref.html
 fuzzy(1,60000) skip-if(!asyncPan) == group-opacity-surface-size-1.html group-opacity-surface-size-1-ref.html
 skip-if(!asyncPan) == position-sticky-transformed.html position-sticky-transformed-ref.html
deleted file mode 100644
--- a/layout/reftests/async-scrolling/sticky-pos-scrollable-2-ref.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html>
-<style>
-body {
-  margin: 0;
-  height: 4000px;
-  overflow: hidden;
-}
-div {
-  background: blue;
-  width: 200px;
-  height: 200px;
-  margin-top: 300px;
-  position: sticky;
-  bottom: 100px;
-}
-</style>
-<div></div>
deleted file mode 100644
--- a/layout/reftests/async-scrolling/sticky-pos-scrollable-2.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html reftest-async-scroll
-      reftest-displayport-x="0" reftest-displayport-y="0"
-      reftest-displayport-w="800" reftest-displayport-h="2000"
-      reftest-async-scroll-x="0" reftest-async-scroll-y="100">
-<style>
-body {
-  margin: 0;
-  height: 4000px;
-  overflow: hidden;
-}
-div {
-  background: blue;
-  width: 200px;
-  height: 200px;
-  margin-top: 400px;
-  position: sticky;
-  bottom: 100px;
-}
-</style>
-<div></div>