Bug 1234877 - Whether a scroll frame is async scrollable is determined by mWillBuildScrollableLayer, not by usingDisplayPort. r?tn
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -3101,17 +3101,17 @@ ScrollFrameHelper::BuildDisplayList(nsDi
if (mClipAllDescendants) {
contentBoxClipState.ClipContentDescendants(*contentBoxClipForCaret);
} else {
contentBoxClipState.ClipContainingBlockDescendants(*contentBoxClipForCaret);
}
}
DisplayListClipState::AutoSaveRestore clipStateForScrollClip(aBuilder);
- if (usingDisplayPort) {
+ if (mWillBuildScrollableLayer) {
if (mClipAllDescendants) {
clipStateForScrollClip.TurnClipIntoScrollClipForContentDescendants(aBuilder, sf);
} else {
clipStateForScrollClip.TurnClipIntoScrollClipForContainingBlockDescendants(aBuilder, sf);
}
} else {
// Create a scroll clip anyway because we might need to activate for scroll handoff.
if (mClipAllDescendants) {
@@ -3130,17 +3130,17 @@ ScrollFrameHelper::BuildDisplayList(nsDi
DisplayListClipState::AutoSaveRestore contentBoxClipState(aBuilder);
if (mClipAllDescendants) {
contentBoxClipState.ClipContentDescendants(*contentBoxClipForNonCaretContent);
} else {
contentBoxClipState.ClipContainingBlockDescendants(*contentBoxClipForNonCaretContent);
}
DisplayListClipState::AutoSaveRestore clipStateForScrollClip(aBuilder);
- if (usingDisplayPort) {
+ if (mWillBuildScrollableLayer) {
if (mClipAllDescendants) {
clipStateForScrollClip.TurnClipIntoScrollClipForContentDescendants(aBuilder, sf);
} else {
clipStateForScrollClip.TurnClipIntoScrollClipForContainingBlockDescendants(aBuilder, sf);
}
}
const DisplayItemClip* clipNonCaret = aBuilder->ClipState().GetCurrentCombinedClip(aBuilder);
const DisplayItemScrollClip* scrollClipNonCaret = aBuilder->ClipState().GetCurrentInnermostScrollClip();