Assertion failure: !itemIter.AtEnd() (Why can't we find FlexItem for our child frame?), at src/layout/generic/nsFlexContainerFrame.cpp:3983
Categories
(Core :: Layout: Flexbox, defect)
Tracking
()
People
(Reporter: tsmith, Assigned: TYLin)
References
(Blocks 1 open bug)
Details
(Keywords: assertion, testcase)
Attachments
(3 files)
Assertion failure: !itemIter.AtEnd() (Why can't we find FlexItem for our child frame?), at /builds/worker/checkouts/gecko/layout/generic/nsFlexContainerFrame.cpp:3983
0|0|libxul.so|nsFlexContainerFrame::GenerateFlexLines(nsFlexContainerFrame::SharedFlexData const&, nsTArray<nsFlexContainerFrame::FlexLine>&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsFlexContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3982|0x29
0|1|libxul.so|nsFlexContainerFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsFlexContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|4392|0xb
0|2|libxul.so|nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, bool, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockReflowContext.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|293|0x1e
0|3|libxul.so|nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3768|0x43
0|4|libxul.so|nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3121|0x16
0|5|libxul.so|nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|2660|0x24
0|6|libxul.so|nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1374|0xb
0|7|libxul.so|nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1074|0x1a
0|8|libxul.so|nsColumnSetFrame::ReflowChildren(mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&, nsColumnSetFrame::ReflowConfig const&, bool)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|702|0x3b
0|9|libxul.so|nsColumnSetFrame::ReflowColumns(mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&, nsColumnSetFrame::ReflowConfig&, bool)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|412|0x5
0|10|libxul.so|nsColumnSetFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1213|0x38
0|11|libxul.so|nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, bool, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockReflowContext.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|293|0x1e
0|12|libxul.so|nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3768|0x43
0|13|libxul.so|nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3121|0x16
0|14|libxul.so|nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|2660|0x24
0|15|libxul.so|nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1374|0xb
0|16|libxul.so|nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, bool, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockReflowContext.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|293|0x1e
0|17|libxul.so|nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3768|0x43
0|18|libxul.so|nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3121|0x16
0|19|libxul.so|nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|2660|0x24
0|20|libxul.so|nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1374|0xb
0|21|libxul.so|nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1074|0x1a
0|22|libxul.so|nsColumnSetFrame::ReflowChildren(mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&, nsColumnSetFrame::ReflowConfig const&, bool)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|702|0x3b
0|23|libxul.so|nsColumnSetFrame::ReflowColumns(mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&, nsColumnSetFrame::ReflowConfig&, bool)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|412|0x5
0|24|libxul.so|nsColumnSetFrame::FindBestBalanceBSize(mozilla::ReflowInput const&, nsPresContext*, nsColumnSetFrame::ReflowConfig&, nsColumnSetFrame::ColumnBalanceData, mozilla::ReflowOutput&, bool, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1095|0x22
0|25|libxul.so|nsColumnSetFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsColumnSetFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1220|0x3b
0|26|libxul.so|nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, bool, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockReflowContext.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|293|0x1e
0|27|libxul.so|nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3768|0x43
0|28|libxul.so|nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|3121|0x16
0|29|libxul.so|nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|2660|0x24
0|30|libxul.so|nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsBlockFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1374|0xb
0|31|libxul.so|nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1074|0x1a
0|32|libxul.so|nsCanvasFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsCanvasFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|750|0x22
0|33|libxul.so|nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1074|0x1a
0|34|libxul.so|nsHTMLScrollFrame::ReflowScrolledFrame(mozilla::ScrollReflowInput*, bool, bool, mozilla::ReflowOutput*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsGfxScrollFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|661|0x3a
0|35|libxul.so|nsHTMLScrollFrame::ReflowContents(mozilla::ScrollReflowInput*, mozilla::ReflowOutput const&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsGfxScrollFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|775|0x15
0|36|libxul.so|nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsGfxScrollFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1161|0x15
0|37|libxul.so|nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, nsIFrame::ReflowChildFlags, nsReflowStatus&, nsOverflowContinuationTracker*)|hg:hg.mozilla.org/mozilla-central:layout/generic/nsContainerFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1114|0x18
0|38|libxul.so|mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)|hg:hg.mozilla.org/mozilla-central:layout/generic/ViewportFrame.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|296|0x2b
0|39|libxul.so|mozilla::PresShell::DoReflow(nsIFrame*, bool, mozilla::OverflowChangedTracker*)|hg:hg.mozilla.org/mozilla-central:layout/base/PresShell.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|9555|0x1c
0|40|libxul.so|mozilla::PresShell::ProcessReflowCommands(bool)|hg:hg.mozilla.org/mozilla-central:layout/base/PresShell.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|9728|0x12
0|41|libxul.so|mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush)|hg:hg.mozilla.org/mozilla-central:layout/base/PresShell.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|4209|0x12
0|42|libxul.so|nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/PresShell.h:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1435|0xb
0|43|libxul.so|mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|373|0xb
0|44|libxul.so|mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|367|0x12
0|45|libxul.so|mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|745|0x17
0|46|libxul.so|mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&)|hg:hg.mozilla.org/mozilla-central:layout/base/nsRefreshDriver.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|644|0xf
0|47|libxul.so|mozilla::layout::VsyncChild::RecvNotify(mozilla::VsyncEvent const&)|hg:hg.mozilla.org/mozilla-central:layout/ipc/VsyncChild.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|55|0x13
0|48|libxul.so|mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&)|s3:gecko-generated-sources:27495909b8eb16a2f6224f9af7a0c052f58ac4a1f37ddd12d240b8b6a62795d131a51db23214bbde8ed61a33c6a97d727ae972f588d3f35141a1a66f3aadceeb/ipc/ipdl/PVsyncChild.cpp:|187|0x8
0|49|libxul.so|mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&)|s3:gecko-generated-sources:75695bbbf1ec93aad4718f03c359901f1be9ae34cba79945a5c42f3e8a2da054cc4ed1a56d373be9953080b82b366a6cd792a7b5323cd7f0d62bfa3c3b040098/ipc/ipdl/PBackgroundChild.cpp:|6083|0x24
0|50|libxul.so|mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|2190|0x1c
0|51|libxul.so|mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|2114|0x12
0|52|libxul.so|mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1962|0xb
0|53|libxul.so|mozilla::ipc::MessageChannel::MessageTask::Run()|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessageChannel.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1993|0x12
0|54|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|1211|0x11
0|55|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|501|0xc
0|56|libxul.so|mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|109|0x14
0|57|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|315|0x17
0|58|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|290|0x8
0|59|libxul.so|nsBaseAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|137|0xd
0|60|libxul.so|XRE_RunAppShell()|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|913|0xe
0|61|libxul.so|mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|237|0x5
0|62|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|315|0x17
0|63|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|290|0x8
0|64|libxul.so|XRE_InitChildProcess(int, char**, XREChildData const*)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|744|0x5
0|65|firefox-bin|content_process_main(mozilla::Bootstrap*, int, char**)|hg:hg.mozilla.org/mozilla-central:ipc/contentproc/plugin-container.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|56|0x11
0|66|firefox-bin|main|hg:hg.mozilla.org/mozilla-central:browser/app/nsBrowserApp.cpp:9c1b2859111c0b84b8a1112dd3b36bd5910376e1|303|0x20
Reporter | ||
Comment 1•4 years ago
|
||
A Pernosco session is available here: https://pernos.co/debug/65gVIUc7Jnvc1SCQgGqpog/index.html
Assignee | ||
Comment 2•4 years ago
|
||
I'll take a look next week.
Assignee | ||
Comment 3•4 years ago
|
||
The root cause is: when sorting frames by DOM order in MergeSortedFrameLists
(which is used by many helpers like PushIncompleteChildren
, NormalizeChildLists
, etc.), we call GetContent
directly on the the frame. However, if the frame is an anonymous flex item, its content is the flex container, which yields a wrong result that the anonymous flex item is placed in the front of the frame list.
Assignee | ||
Comment 4•4 years ago
|
||
Assignee | ||
Comment 5•4 years ago
|
||
An anonymous flex item has the same content as the flex container. If we
don't find the item's actual content, when sorting its frame in DOM
order, it will be placed to the front of the list.
Depends on D81000
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Pushed by aethanyc@gmail.com: https://hg.mozilla.org/integration/autoland/rev/f250ca90d499 Part 1 - Move GetFirstNonAnonBoxDescendant() to nsContainerFrame. r=dholbert https://hg.mozilla.org/integration/autoland/rev/e32e59c330e6 Part 2 - Find the first non-anonymous-box's content node when sorting frame list. r=dholbert
Comment 7•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/f250ca90d499
https://hg.mozilla.org/mozilla-central/rev/e32e59c330e6
Updated•4 years ago
|
Description
•