Closed Bug 1332588 Opened 5 years ago Closed 2 years ago

ASSERTION: Unexpected UpdateTransformLayer hint: '!(aChange & nsChangeHint_UpdateTransformLayer) || aFrame->IsTransformed() || aFrame->StyleDisplay()->HasTransformStyle()', file RestyleManagerBase.cpp, line 915

Categories

(Core :: CSS Parsing and Computation, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox-esr68 --- wontfix
firefox61 --- wontfix
firefox64 --- wontfix
firefox76 --- wontfix
firefox77 --- wontfix
firefox78 --- fixed

People

(Reporter: hiro, Assigned: hiro)

References

(Blocks 1 open bug, Regressed 2 open bugs)

Details

(Keywords: assertion)

Attachments

(5 files)

Attachment file spews below assertion:

ASSERTION: Unexpected UpdateTransformLayer hint: '!(aChange & nsChangeHint_UpdateTransformLayer) || aFrame->IsTransformed() || aFrame->StyleDisplay()->HasTransformStyle()', file /home/ikezoe/central/layout/base/RestyleManagerBase.cpp
Priority: -- → P3
I hit this assertion repeatedly when loading mozilla.slack.com:

[Child 57020, Main Thread] ###!!! ASSERTION: Unexpected UpdateTransformLayer hint: '!(aChange & nsChangeHint_UpdateTransformLayer) || aFrame->IsTransformed() || aFrame->StyleDisplay()->HasTransformStyle()', file layout/base/RestyleManager.cpp, line 1138
[Child 57020, Main Thread] ###!!! ASSERTION: Unexpected UpdateTransformLayer hint: '!(aChange & nsChangeHint_UpdateTransformLayer) || aFrame->IsTransformed() || aFrame->StyleDisplay()->HasTransformStyle()', file layout/base/RestyleManager.cpp, line 1138
[Child 57020, Main Thread] ###!!! ASSERTION: Unexpected UpdateTransformLayer hint: '!(aChange & nsChangeHint_UpdateTransformLayer) || aFrame->IsTransformed() || aFrame->StyleDisplay()->HasTransformStyle()', file layout/base/RestyleManager.cpp, line 1138
[Child 57020, Main Thread] ###!!! ASSERTION: Unexpected UpdateTransformLayer hint: '!(aChange & nsChangeHint_UpdateTransformLayer) || aFrame->IsTransformed() || aFrame->StyleDisplay()->HasTransformStyle()', file layout/base/RestyleManager.cpp, line 1138
I hit this assertion when repeating steps from bug 1268901
I hit this assertion failure when trying to open an email in Gmail.
See Also: → 1617677

Presumably we should also drop nsChangeHint_UpdateTransformLayer here along with nsChangeHint_UpdatePostTransformOverflow.

Let's see if what happens on try;
https://treeherder.mozilla.org/#/jobs?repo=try&revision=2b33125977930765b6bdb71e0b1f1c3543aa1b07

The try run told us that there is a pre-exising issue that we don't set NS_FRAME_MAY_BE_TRANSFORMED property here in KeyframeEffect::UpdateEffectSet.

Pushed another try;
https://treeherder.mozilla.org/#/jobs?repo=try&revision=cbfd4723e84c1be75439d32e0a837fa505273fef

Blocks: 1636806

Without this change stacking-context-transform-changing-keyframe.html will fail
with the next change, since we will incorrectly remove
nsChangeHint_UpdateTransformLayer from the target nsIFrame if the frame doesn't
have NS_FRAME_MAY_BE_TRANSFORMED bit.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED

The right place to set the bit was in
nsIFrame::SetMayHaveTransformAnimations() (i.e. when we call
KeyframeEffect::UpdateEffectSet) for cases where we add transform animations.
on an nsIFrame which has been already initialized.

Depends on D75050

Since we no longer see the "Unexpected UpdateTransformLayer hint" assertion
on those tests.

Depends on D75051

Blocks: 1637047
Attachment #9147913 - Attachment description: Bug 1332588 - Drop explicit setting of dom.animations-api.core.enabled. r?boris → Bug 1332588 - Drop explicit setting of dom.animations.mainthread-synchronization-with-geometric-animations. r?boris
Pushed by hikezoe.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/641d8019eb5e
Set NS_FRAME_MAY_BE_TRANSFORMED bit in nsIFrame::SetMayHaveTransformAnimation. r=boris
https://hg.mozilla.org/integration/autoland/rev/194aab18de04
Drop nsChangeHint_UpdateTransformLayer on the frame that we don't support transform. r=boris
https://hg.mozilla.org/integration/autoland/rev/2eb1dfb0ba11
Drop the code to set NS_FRAME_MAY_BE_TRANSFORMED introduced in bug 1524480. r=boris
https://hg.mozilla.org/integration/autoland/rev/a14a719778ae
Drop explicit setting of dom.animations.mainthread-synchronization-with-geometric-animations. r=boris
Blocks: 1617677
Regressions: 1648221
Regressions: 1745845
You need to log in before you can comment on or make changes to this bug.