Bug 1236828 part 1 - Apply proper clip state to top layer frames. r=mstange
MozReview-Commit-ID: JW2tAFu4wIP
--- 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,