Bug 1236828 part 1 - Apply proper clip state to top layer frames. r=mstange draft
authorXidorn Quan <quanxunzhen@gmail.com>
Wed, 06 Apr 2016 18:48:31 +1000
changeset 349567 8e77980eb1ffc41af0bba82f292dc6470a6ceea5
parent 349566 fb29911c335b340696847685f85689115017e70a
child 349568 fcdfc7b4a3b2a7536a980d6fa3318fdb4e3d1778
push id15135
push userxquan@mozilla.com
push dateMon, 11 Apr 2016 23:35:18 +0000
reviewersmstange
bugs1236828
milestone48.0a1
Bug 1236828 part 1 - Apply proper clip state to top layer frames. r=mstange MozReview-Commit-ID: JW2tAFu4wIP
layout/generic/nsViewportFrame.cpp
--- a/layout/generic/nsViewportFrame.cpp
+++ b/layout/generic/nsViewportFrame.cpp
@@ -94,20 +94,25 @@ ShouldInTopLayerForFullscreen(Element* a
 #endif // DEBUG
 
 static void
 BuildDisplayListForTopLayerFrame(nsDisplayListBuilder* aBuilder,
                                  nsIFrame* aFrame,
                                  nsDisplayList* aList)
 {
   nsRect dirty;
+  DisplayListClipState::AutoClipMultiple clipState(aBuilder);
   nsDisplayListBuilder::OutOfFlowDisplayData*
     savedOutOfFlowData = nsDisplayListBuilder::GetOutOfFlowData(aFrame);
   if (savedOutOfFlowData) {
     dirty = savedOutOfFlowData->mDirtyRect;
+    clipState.SetClipForContainingBlockDescendants(
+      &savedOutOfFlowData->mContainingBlockClip);
+    clipState.SetScrollClipForContainingBlockDescendants(
+      savedOutOfFlowData->mContainingBlockScrollClip);
   }
   nsDisplayList list;
   aFrame->BuildDisplayListForStackingContext(aBuilder, dirty, &list);
   aList->AppendToTop(&list);
 }
 
 void
 ViewportFrame::BuildDisplayListForTopLayer(nsDisplayListBuilder* aBuilder,