Closed Bug 1343362 Opened 7 years ago Closed 7 years ago

stylo: Assertion failure: aRestyleHint == 0 in dom/xbl/crashtests/493123-1.xhtml

Categories

(Core :: CSS Parsing and Computation, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox54 --- fixed

People

(Reporter: manishearth, Assigned: bholley)

References

Details

Attachments

(2 files)

Attached file backtrace
(marking the test as skip for now)

Top of the stack:

Assertion failure: aRestyleHint == 0, at /Users/manishearth/mozilla/higgsino/layout/base/ServoRestyleManager.cpp:52
LLVM ERROR: IO failure on output stream.
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: internal objdump command failed
#01: mozilla::ServoRestyleManager::PostRestyleEvent(mozilla::dom::Element*, nsRestyleHint, nsChangeHint) (ServoRestyleManager.cpp:52, in XUL)
#02: mozilla::RestyleManager::PostRestyleEvent(mozilla::dom::Element*, nsRestyleHint, nsChangeHint) (RestyleManagerInlines.h:24, in XUL)
#03: nsIPresShell::RestyleForCSSRuleChanges() (PresShell.cpp:4583, in XUL)
#04: mozilla::PresShell::EndUpdate(nsIDocument*, unsigned int) (PresShell.cpp:2500, in XUL)

(Full backtrace attached)


13:54 < bholley> Manishearth: the basic problem in your stack is that frame reconstruction causes XBL to be uninstalled, which alters the set of stylesheets
I think we should just allow restyle hints to be posted during change hint processing. I'll attach a patch.
Assignee: nobody → bobbyholley
MozReview-Commit-ID: 6ZU24tLQCjV
Attachment #8842699 - Flags: review?(emilio+bugs)
Comment on attachment 8842699 [details] [diff] [review]
Allow restyle hints to be posted during change hint handling. v1

Review of attachment 8842699 [details] [diff] [review]:
-----------------------------------------------------------------

r=me, though I hope we could have stronger assertions about how layout and style interact, sigh.

Thanks for fixing this! :)

::: layout/base/ServoRestyleManager.cpp
@@ +379,5 @@
>  
> +
> +  // Perform the Servo traversal, and the post-traversal if required. We do this
> +  // in a loop because certain rare paths in the frame constructor (like
> +  // uninstalling XBL bindings) can trigger additional style validations.

This is pretty unfortunate :(.
Attachment #8842699 - Flags: review?(emilio+bugs) → review+
Pushed by bholley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1029e1a5b03d
Allow restyle hints to be posted during change hint handling. r=emilio
https://hg.mozilla.org/mozilla-central/rev/1029e1a5b03d
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
You need to log in before you can comment on or make changes to this bug.