mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-15 03:00:30 +00:00
Bug 1564071 - Disable paint skipping for scroll frames that contain a sticky element inside a CSS filter. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D37604 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
3561a852a5
commit
af4d7feac5
@ -3535,6 +3535,14 @@ void nsIFrame::BuildDisplayListForStackingContext(
|
||||
aBuilder, this, &resultList, stickyASR,
|
||||
aBuilder->CurrentActiveScrolledRoot());
|
||||
ct.TrackContainer(resultList.GetTop());
|
||||
|
||||
// If the sticky element is inside a filter, annotate the scroll frame that
|
||||
// scrolls the filter as having out-of-flow content inside a filter (this
|
||||
// inhibits paint skipping).
|
||||
if (aBuilder->GetFilterASR() && aBuilder->GetFilterASR() == stickyASR) {
|
||||
aBuilder->GetFilterASR()
|
||||
->mScrollableFrame->SetHasOutOfFlowContentInsideFilter();
|
||||
}
|
||||
}
|
||||
|
||||
/* If there's blending, wrap up the list in a blend-mode item. Note
|
||||
|
@ -1128,6 +1128,8 @@ class nsDisplayListBuilder {
|
||||
return mActiveScrolledRootForRootScrollframe;
|
||||
}
|
||||
|
||||
const ActiveScrolledRoot* GetFilterASR() const { return mFilterASR; }
|
||||
|
||||
/**
|
||||
* Transfer off main thread animations to the layer. May be called
|
||||
* with aBuilder and aItem both null, but only if the caller has
|
||||
|
Loading…
Reference in New Issue
Block a user