Closed
Bug 856235
Opened 11 years ago
Closed 4 years ago
"ASSERTION: this type of frame can't have overflow containers" and abort with -moz-column, flex
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
DUPLICATE
of bug 1622935
People
(Reporter: jruderman, Assigned: dholbert)
References
(Depends on 1 open bug)
Details
(4 keywords)
Attachments
(4 files)
###!!! ASSERTION: this type of frame can't have overflow containers: '(aProperty != nsContainerFrame::OverflowContainersProperty() && aProperty != nsContainerFrame::ExcessOverflowContainersProperty()) || IsFrameOfType(nsIFrame::eCanContainOverflowContainers)', file layout/generic/nsContainerFrame.cpp, line 1468 ###!!! ABORT: unexpected frame type: file layout/base/nsCSSFrameConstructor.cpp, line 8785 Nightly: Crash bp-3780ba87-7e00-40f2-9cad-8c4022130330 (somewhat busted stack)
Reporter | ||
Comment 1•11 years ago
|
||
Reporter | ||
Comment 2•11 years ago
|
||
Oh, "unexpected frame type" is a NS_RUNTIMEABORT, so the nightly stack isn't as busted as I thought.
Reporter | ||
Comment 3•11 years ago
|
||
Comment 4•11 years ago
|
||
WFM, trunk and beta debug builds on Linux64 and trunk debug build on OSX.
Assignee | ||
Comment 5•11 years ago
|
||
I can still repro in Nightly, on linux, with up-to-date nightly. (build ID 20130515141643) bp-97596fc8-d1c2-4e08-8b51-4e1e72130516 I'll take a closer look at this.
Assignee: nobody → dholbert
Status: NEW → ASSIGNED
Assignee | ||
Updated•11 years ago
|
Comment 6•11 years ago
|
||
That's odd, I wouldn't expect a difference between Opt/Debug builds for the NS_RUNTIMEABORT. Would be good if you can figure out why that happened...
Assignee | ||
Comment 7•11 years ago
|
||
(I'm not actually seeing a difference between opt/debug builds, on my machine. My Nightly build crashes, and my debug build does as well.)
Assignee | ||
Comment 8•11 years ago
|
||
So what's going on here is: - Flexbox doesn't currently support pagination (working on that in bug 811024) - It conveys that to its children by passing them NS_UNCONSTRAINEDSIZE availableHeight. - **However** it doesn't do that for its *absolutely-positioned* children. Those guys get reflowed in the FinishReflowWithAbsoluteFrames() call, which doesn't have any special availableHeight behavior. The right fix is just to fix bug 811024, and given that this is a safe crash (via NS_RUNTIMEABORT), it's probably not worth landing a bandaid. However, for the record, one strawman bandaid would be to just pass a tweaked nsHTMLReflowState to FinishReflowWithAbsoluteFrames, with availableHeight manually set to NS_UNCONSTRAINEDSIZE.
Depends on: 811024
Assignee | ||
Updated•11 years ago
|
Flags: in-testsuite?
Assignee | ||
Comment 9•11 years ago
|
||
Here's a strawman patch per end of prev. comment, using a Maybe<> stack-allocated nsHTMLReflowState that's a mutable clone of the existing one. (basically following what we do towards the beginning of nsBlockFrame::Reflow, here: https://mxr.mozilla.org/mozilla-central/source/layout/generic/nsBlockFrame.cpp#909 ) But I think it's probably better to just let this be fixed by bug 811024.
Comment 10•11 years ago
|
||
btw bughunter also run into some websites with this abort
Reporter | ||
Comment 11•11 years ago
|
||
Tomcat, do those sites use CSS flex properties? If not, please file a separate bug.
Assignee | ||
Comment 12•10 years ago
|
||
I can still reproduce this in trunk; it likely depends on bug 939897 now (which was spun off of bug 811024).
Depends on: 939897
Comment 13•4 years ago
|
||
I cannot reproduce this on my local debug build or on Nightly. Bug 1622935 implemented flex item fragmentation. Specifically, Bug 1622935 Part 3 allow flex container being an overflow container. I believe we can dup this over bug 1622935.
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•