Stylo Assertion failure: sheet->IsGecko() (GatherRuleProcessor must only be called for nsXBLPrototypeResources objects with Gecko-flavored style backends), at dom/xbl/nsXBLPrototypeResources.cpp:154

RESOLVED FIXED in Firefox 56

Status

()

Core
Layout
P1
normal
RESOLVED FIXED
a year ago
2 hours ago

People

(Reporter: cpeterson, Assigned: heycam)

Tracking

(Depends on: 1 bug, Blocks: 3 bugs, {assertion})

unspecified
mozilla56
assertion
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox54 unaffected, firefox55 unaffected, firefox56 fixed, firefox-esr52 unaffected)

Details

(Whiteboard: [stylo:m2])

(Reporter)

Description

a year ago
To reproduce, run `./mach reftest --disable-e10s <filename>` or replace <filename> with `layout/reftest/reftest.list`.

TEST-UNEXPECTED-FAIL | file:///home/shinglyu/workspace/stylo/gecko-dev/layout/reftests/webcomponents/input-transition-1.html | application terminated with exit code 11
REFTEST PROCESS-CRASH | file:///home/shinglyu/workspace/stylo/gecko-dev/layout/reftests/webcomponents/input-transition-1.html | application crashed [None]

Assertion failure: sheet->IsGecko() (GatherRuleProcessor must only be called for nsXBLPrototypeResources objects with Gecko-flavored style backends), at /files/mozilla/stylo/bb/gecko/dom/xbl/nsXBLPrototypeResources.cpp:154
(Reporter)

Updated

10 months ago
Priority: -- → P1
Assignee: nobody → mbrubeck
The top of the stack is:

#01: nsXBLPrototypeResources::GatherRuleProcessor() (/home/mbrubeck/src/mozilla-central/dom/xbl/nsXBLPrototypeResources.cpp:151 (discriminator 1))
#02: nsXBLPrototypeResources::FlushSkinSheets() (/home/mbrubeck/src/mozilla-central/dom/xbl/nsXBLPrototypeResources.cpp:112)
#03: nsXBLPrototypeBinding::FlushSkinSheets() (/home/mbrubeck/src/mozilla-central/dom/xbl/nsXBLPrototypeBinding.cpp:257)
#04: mozilla::dom::ShadowRoot::StyleSheetChanged() (/home/mbrubeck/src/mozilla-central/dom/base/ShadowRoot.cpp:126)
#05: mozilla::StyleSheet::SetComplete() (/home/mbrubeck/src/mozilla-central/layout/style/StyleSheet.cpp:93)
#06: mozilla::css::Loader::DoSheetComplete(mozilla::css::SheetLoadData*, nsresult, nsTArray<RefPtr<mozilla::css::SheetLoadData> >&) (/home/mbrubeck/src/mozilla-central/layout/style/Loader.cpp:1898)
#07: mozilla::css::Loader::SheetComplete(mozilla::css::SheetLoadData*, nsresult) (/home/mbrubeck/src/mozilla-central/layout/style/Loader.cpp:1825)
#08: mozilla::css::Loader::ParseSheet(nsAString_internal const&, mozilla::css::SheetLoadData*, bool&) (/home/mbrubeck/src/mozilla-central/layout/style/Loader.cpp:1802)
#09: mozilla::css::Loader::LoadInlineStyle(nsIContent*, nsAString_internal const&, unsigned int, nsAString_internal const&, nsAString_internal const&, mozilla::dom::Element*, nsICSSLoaderObserver*, bool*, bool*) (/home/mbrubeck/src/mozilla-central/layout/style/Loader.cpp:2041)
#10: nsStyleLinkElement::DoUpdateStyleSheet(nsIDocument*, mozilla::dom::ShadowRoot*, nsICSSLoaderObserver*, bool*, bool*, bool) (/home/mbrubeck/src/mozilla-central/dom/base/nsStyleLinkElement.cpp:427)
#11: nsStyleLinkElement::UpdateStyleSheet(nsICSSLoaderObserver*, bool*, bool*, bool) (/home/mbrubeck/src/mozilla-central/dom/base/nsStyleLinkElement.cpp:223)
#12: nsHtml5DocumentBuilder::UpdateStyleSheet(nsIContent*) (/home/mbrubeck/src/mozilla-central/parser/html/nsHtml5DocumentBuilder.cpp:78)
#13: nsHtml5TreeBuilder::elementPopped(int, nsIAtom*, void*) (/home/mbrubeck/src/mozilla-central/parser/html/nsHtml5TreeBuilderCppSupplement.h:902)
This depends on shadow DOM support (bug 1293844).
Depends on: 1293844
Ok - can we convert this into a warning instead for now?
Priority: P1 → P3
Duplicate of this bug: 1365687
Blocks: 1362908

Comment 5

2 months ago
> Ok - can we convert this into a warning instead for now?

Well, in an opt build it crashes.  This is also hitting dom/events/test/test_bug1145910.html

Updated

2 months ago
Duplicate of this bug: 1370782
Duplicate of this bug: 1323689
Setting P1 per https://bugzilla.mozilla.org/show_bug.cgi?id=1323689#c2
Priority: P3 → P1
Assignee: mbrubeck → nobody
We can mark any shadow-dom tests as skip-if stylo. Does this still reproduce on anything that doesn't explicitly pref-on shadow DOM?

Comment 10

a month ago
I would think it would also reproduce any time someone dispatches the "chrome-flush-skin-caches" observer notification.

Comment 11

a month ago
But also, some nightly users have shadow DOM enabled.  We should at the very least not crash in that configuration...
(Assignee)

Comment 12

26 days ago
Bug 1373155 disabled shadow DOM in document styled by Servo, so we should no longer be able to create a ShadowRoot and have the chrome-flush-skin-caches notification crash.
(Assignee)

Comment 13

14 hours ago
I think this is fixed by bug 1373155.
Status: NEW → RESOLVED
Last Resolved: 14 hours ago
Resolution: --- → FIXED
Assignee: nobody → cam
status-firefox54: --- → unaffected
status-firefox55: --- → unaffected
status-firefox56: --- → fixed
status-firefox-esr52: --- → unaffected
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.