Closed Bug 892638 Opened 7 years ago Closed 6 years ago

Unhooking XML prettyprinter due to node insertion asserts in frame construction code

Categories

(Core :: XBL, defect)

x86
macOS
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla28
Tracking Status
firefox27 --- fixed
firefox28 --- fixed

People

(Reporter: bzbarsky, Assigned: neil)

References

Details

(Whiteboard: [qa-])

Attachments

(1 file)

This is causing asserts in these tests:

  dom/tests/mochitest/dom-level1-core/test_nodeappendchildchildexists.html
  dom/tests/mochitest/dom-level1-core/test_nodeinsertbeforenewchildexists.html
  dom/tests/mochitest/dom-level1-core/test_nodereplacechildnewchildexists.html

with a stack like so:

11:22:36     INFO -  [Parent 277] ###!!! ASSERTION: Ancestors of nodes with frames to be constructed lazily should have frames: '!noPrimaryFrame', file ../../../layout/base/nsCSSFrameConstructor.cpp, line 6248
11:22:36     INFO -  nsCSSFrameConstructor::ContentAppended(nsIContent*, nsIContent*, bool) [layout/base/nsCSSFrameConstructor.cpp:6519]
11:22:36     INFO -  PresShell::ContentAppended(nsIDocument*, nsIContent*, nsIContent*, int) [layout/base/nsPresShell.cpp:4064]
11:22:36     INFO -  nsNodeUtils::ContentAppended(nsIContent*, nsIContent*, int) [obj-firefox/dist/include/nsTObserverArray.h:309]
11:22:36     INFO -  nsINode::doInsertChildAt(nsIContent*, unsigned int, bool, nsAttrAndChildArray&) [content/base/src/nsINode.cpp:1394]
11:22:36     INFO -  nsINode::ReplaceOrInsertBefore(bool, nsINode*, nsINode*, mozilla::ErrorResult&) [content/base/src/nsINode.cpp:1992]
11:22:36     INFO -  mozilla::dom::NodeBinding::appendChild [obj-firefox/dist/include/mozilla/ErrorResult.h:96]
(In reply to Boris Zbarsky (:bz) from comment #0)
> This is causing asserts in these tests:

Just to be clear: "this" is bug 890193's patch, right?
Blocks: 890193
No, "this" is this bug.  TBug 890193 just (re)exposed this bug by making the unhooking not be a no-op again.
Attached file another testcase
This appears to have had the same cause as bug 943804, so I backed out the assertion annotations:

https://hg.mozilla.org/integration/mozilla-inbound/rev/eef2361b1f9b

The test case no longer asserts either.
Depends on: 943804
https://hg.mozilla.org/mozilla-central/rev/eef2361b1f9b
https://hg.mozilla.org/releases/mozilla-aurora/rev/5567a9a910e3
Assignee: nobody → neil
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Flags: in-testsuite+
Given in-testsuite coverage this fix will not be manually verified by QA. If you believe this warrants extra QA attention please nominate for testing by removing this whiteboard tag and adding the verifyme keyword. Please also provide any details you have that may inform our testing.
Whiteboard: [qa-]
You need to log in before you can comment on or make changes to this bug.