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;
|
||||
}
|
||||
|
||||
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) {
|
||||
for (nsIFrame* cont = frame; cont;
|
||||
cont = nsLayoutUtils::GetNextContinuationOrIBSplitSibling(cont)) {
|
||||
|
||||
Reference in New Issue
Block a user