Bug 1374966 - Drop nsChangeHint_UpdateTransformLayer when we also have nsChangeHint_AddOrRemoveTransform; r=heycam
MozReview-Commit-ID: 2eFl7cDXNA
This commit is contained in:
@@ -1531,6 +1531,25 @@ RestyleManager::ProcessRestyledFrames(nsStyleChangeList& aChangeList)
|
|||||||
hint &= ~nsChangeHint_UpdatePostTransformOverflow;
|
hint &= ~nsChangeHint_UpdatePostTransformOverflow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (hint & nsChangeHint_AddOrRemoveTransform) {
|
||||||
|
// When dropping a running transform animation we will first add an
|
||||||
|
// nsChangeHint_UpdateTransformLayer hint as part of the animation-only
|
||||||
|
// restyle. During the subsequent regular restyle, if the animation was
|
||||||
|
// the only reason the element had any transform applied, we will add
|
||||||
|
// nsChangeHint_AddOrRemoveTransform as part of the regular restyle.
|
||||||
|
//
|
||||||
|
// With the Gecko backend, these two change hints are processed
|
||||||
|
// after each restyle but when using the Servo backend they accumulate
|
||||||
|
// and are processed together after we have already removed the
|
||||||
|
// transform as part of the regular restyle. Since we don't actually
|
||||||
|
// need the nsChangeHint_UpdateTransformLayer hint if we already have
|
||||||
|
// a nsChangeHint_AddOrRemoveTransform hint, and since we
|
||||||
|
// will fail an assertion in ApplyRenderingChangeToTree if we try
|
||||||
|
// specify nsChangeHint_UpdateTransformLayer but don't have any
|
||||||
|
// transform style, we just drop the unneeded hint here.
|
||||||
|
hint &= ~nsChangeHint_UpdateTransformLayer;
|
||||||
|
}
|
||||||
|
|
||||||
if (hint & nsChangeHint_UpdateEffects) {
|
if (hint & nsChangeHint_UpdateEffects) {
|
||||||
for (nsIFrame* cont = frame; cont;
|
for (nsIFrame* cont = frame; cont;
|
||||||
cont = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(cont)) {
|
cont = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(cont)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user