Bug 950301. Make the underlying frame of scroll layer items be the scrolled frame before the layerizing display lists. r=mattwoodrow
authorTimothy Nikkel <tnikkel@gmail.com>
Mon, 27 Jan 2014 17:30:29 -0600
changeset 181452 c7d862c7116d6412cae96ac994eb1638c3cc828a
parent 181451 5041c3109c5a60b8a0d506c71dd4a93e5056f5f1
child 181453 13bffcd29d309406509f0df401920b07ea4036d3
push id3343
push userffxbld
push dateMon, 17 Mar 2014 21:55:32 +0000
treeherdermozilla-beta@2f7d3415f79f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmattwoodrow
bugs950301
milestone29.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 950301. Make the underlying frame of scroll layer items be the scrolled frame before the layerizing display lists. r=mattwoodrow
layout/base/nsDisplayList.cpp
--- a/layout/base/nsDisplayList.cpp
+++ b/layout/base/nsDisplayList.cpp
@@ -3704,16 +3704,20 @@ nsDisplayScrollLayer::ShouldFlattenAway(
   if (GetScrollLayerCount() > 1) {
     // Propagate our clip to our children. The clip for the scroll frame is
     // on this item, but not our child items so that they can draw non-visible
     // parts of the display port. But if we are flattening we failed and can't
     // draw the extra content, so it needs to be clipped.
     PropagateClip(aBuilder, GetClip(), &mList);
     return true;
   }
+  if (mFrame != mScrolledFrame) {
+    mMergedFrames.AppendElement(mFrame);
+    mFrame = mScrolledFrame;
+  }
   return false;
 }
 
 intptr_t
 nsDisplayScrollLayer::GetScrollLayerCount()
 {
   FrameProperties props = mScrolledFrame->Properties();
 #ifdef DEBUG