Closed Bug 1517297 Opened 6 years ago Closed 6 years ago

Assertion failure: mOwner == ExpectedOwnerForChild(aFrame) (Missed some frame in the hierarchy?), at /builds/worker/workspace/build/src/layout/base/RestyleManager.cpp:2017

Categories

(Core :: Layout: Columns, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla66
Tracking Status
firefox-esr60 --- unaffected
firefox64 --- unaffected
firefox65 --- unaffected
firefox66 --- fixed

People

(Reporter: jkratzer, Assigned: TYLin)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase.html
Testcase found while fuzzing mozilla-central rev 5826b2352ac0. Assertion failure: mOwner == ExpectedOwnerForChild(aFrame) (Missed some frame in the hierarchy?), at /builds/worker/workspace/build/src/layout/base/RestyleManager.cpp:2017 We currently don't have symbolized debug builds so no stack trace is available at this time.
Flags: in-testsuite?
Has column-span -> Over to layout: columns.
Component: CSS Parsing and Computation → Layout: Columns
Flags: needinfo?(aethanyc)
Tentatively P3, since we haven't shipped column-span yet.
Priority: -- → P3
A column-span element in multicol subtree should not go into this path because we have a specialized logic for it in RestyleManager::ProcessPostTraversal() [1]. When the assertion happens, (rr) p aFrame $1 = (const nsGridContainerFrame *) 0x7f383c9e9240 (rr) p aFrame->IsColumnSpan() $2 = true (rr) p aFrame->IsColumnSpanInMulticolSubtree() $3 = false That's because after bug 1507244 is landed, only block and inline frames can have NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR. We need a new notion for IsColumnSpanInMulticolSubtree(). [1] https://searchfox.org/mozilla-central/source/layout/base/RestyleManager.cpp#2590-2591,2621-2624
Assignee: nobody → aethanyc
Blocks: 1507244
Status: NEW → ASSIGNED
Flags: needinfo?(aethanyc)
After Bug 1507244 Part 2, only block and inline frames can have NS_FRAME_HAS_MULTI_COLUMN_ANCESTOR bit set. We need another notion for IsColumnSpanInMulticolSubtree(). Under multi-column formatting context, every frame having a column-span:all style will be wrapped by a -moz-column-span-wrapper frame. We can use this to check whether other types of frames such as nsGridContainerFrame having column-span:all style are really in a multi-column subtree.
Pushed by aethanyc@gmail.com: https://hg.mozilla.org/integration/autoland/rev/763f3f9bc7c3 Fix nsIFrame::IsColumnSpanInMulticolSubtree(). r=emilio
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: