Open Bug 1672266 Opened 4 years ago Updated 3 years ago

Assertion failure: IsAncestorFrameCrossDoc(aAncestor.mFrame, aFrame) (Fix the caller), at src/layout/base/nsLayoutUtils.cpp:2486

Categories

(Core :: Web Painting, defect, P3)

defect

Tracking

()

Tracking Status
firefox83 --- affected
firefox84 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: assertion, regression, testcase, Whiteboard: [bugmon:bisected,confirmed])

Attachments

(1 file)

Attached file testcase.html

Assertion failure: IsAncestorFrameCrossDoc(aAncestor.mFrame, aFrame) (Fix the caller), at src/layout/base/nsLayoutUtils.cpp:2486

#0 0x7f11ba9e2dce in nsLayoutUtils::TransformFrameRectToAncestor(nsIFrame const*, nsRect const&, mozilla::RelativeTo, bool*, mozilla::Maybe<mozilla::gfx::Matrix4x4TypedFlagged<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits> >*, bool, nsIFrame**) src/layout/base/nsLayoutUtils.cpp:2485:3
#1 0x7f11bad323f8 in TransformFrameRectToAncestor src/layout/base/nsLayoutUtils.h:804:12
#2 0x7f11bad323f8 in FinishPaintedLayerData<(lambda at src/layout/painting/FrameLayerBuilder.cpp:3145:52)> src/layout/painting/FrameLayerBuilder.cpp:3615:21
#3 0x7f11bad323f8 in mozilla::PaintedLayerDataNode::PopAllPaintedLayerData() src/layout/painting/FrameLayerBuilder.cpp:3145:23
#4 0x7f11bad308c3 in mozilla::PaintedLayerDataNode::Finish(bool) src/layout/painting/FrameLayerBuilder.cpp:3114:3
#5 0x7f11bad42dc3 in Finish src/layout/painting/FrameLayerBuilder.cpp:3164:12
#6 0x7f11bad42dc3 in mozilla::ContainerState::Finish(unsigned int*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, nsDisplayList*) src/layout/painting/FrameLayerBuilder.cpp:5921:25
#7 0x7f11bad44981 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const*, unsigned int) src/layout/painting/FrameLayerBuilder.cpp:6314:9
#8 0x7f11bad99a18 in nsDisplayTransform::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) src/layout/painting/nsDisplayList.cpp:8106:36
#9 0x7f11bad3c20f in mozilla::ContainerState::ProcessDisplayItems(nsDisplayList*) src/layout/painting/FrameLayerBuilder.cpp:4889:41
#10 0x7f11bad44889 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const*, unsigned int) src/layout/painting/FrameLayerBuilder.cpp:6307:9
#11 0x7f11bada2cae in nsDisplayFilters::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) src/layout/painting/nsDisplayList.cpp:9770:36
#12 0x7f11bad34da0 in mozilla::PaintedLayerData::CreateInactiveLayerData(mozilla::ContainerState*, nsPaintedDisplayItem*, mozilla::DisplayItemData*) src/layout/painting/FrameLayerBuilder.cpp:3794:25
#13 0x7f11bad3533c in mozilla::PaintedLayerData::Accumulate(mozilla::ContainerState*, nsPaintedDisplayItem*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, nsRect const&, mozilla::DisplayItemClip const&, mozilla::LayerState, nsDisplayList*, mozilla::DisplayItemEntryType, nsTArray<unsigned long>&, RefPtr<mozilla::TransformClipNode> const&) src/layout/painting/FrameLayerBuilder.cpp:3845:9
#14 0x7f11bad3b6c2 in mozilla::ContainerState::ProcessDisplayItems(nsDisplayList*) src/layout/painting/FrameLayerBuilder.cpp:5092:27
#15 0x7f11bad44889 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const*, unsigned int) src/layout/painting/FrameLayerBuilder.cpp:6307:9
#16 0x7f11bad99a18 in nsDisplayTransform::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) src/layout/painting/nsDisplayList.cpp:8106:36
#17 0x7f11bad3c20f in mozilla::ContainerState::ProcessDisplayItems(nsDisplayList*) src/layout/painting/FrameLayerBuilder.cpp:4889:41
#18 0x7f11bad44889 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const*, unsigned int) src/layout/painting/FrameLayerBuilder.cpp:6307:9
#19 0x7f11bada2cae in nsDisplayFilters::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) src/layout/painting/nsDisplayList.cpp:9770:36
#20 0x7f11bad34da0 in mozilla::PaintedLayerData::CreateInactiveLayerData(mozilla::ContainerState*, nsPaintedDisplayItem*, mozilla::DisplayItemData*) src/layout/painting/FrameLayerBuilder.cpp:3794:25
#21 0x7f11bad3533c in mozilla::PaintedLayerData::Accumulate(mozilla::ContainerState*, nsPaintedDisplayItem*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, nsRect const&, mozilla::DisplayItemClip const&, mozilla::LayerState, nsDisplayList*, mozilla::DisplayItemEntryType, nsTArray<unsigned long>&, RefPtr<mozilla::TransformClipNode> const&) src/layout/painting/FrameLayerBuilder.cpp:3845:9
#22 0x7f11bad3a17e in mozilla::ContainerState::ProcessDisplayItems(nsDisplayList*) src/layout/painting/FrameLayerBuilder.cpp:4600:22
#23 0x7f11bad44889 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const*, unsigned int) src/layout/painting/FrameLayerBuilder.cpp:6307:9
#24 0x7f11bad90309 in nsDisplayOwnLayer::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) src/layout/painting/nsDisplayList.cpp:6324:36
#25 0x7f11bad94eda in nsDisplayAsyncZoom::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) src/layout/painting/nsDisplayList.cpp:7301:26
#26 0x7f11bad3c20f in mozilla::ContainerState::ProcessDisplayItems(nsDisplayList*) src/layout/painting/FrameLayerBuilder.cpp:4889:41
#27 0x7f11bad44889 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const*, unsigned int) src/layout/painting/FrameLayerBuilder.cpp:6307:9
#28 0x7f11bad7a907 in nsDisplayList::BuildLayers(nsDisplayListBuilder*, mozilla::layers::LayerManager*, unsigned int, bool) src/layout/painting/nsDisplayList.cpp:2320:28
#29 0x7f11bad7ba06 in nsDisplayList::PaintRoot(nsDisplayListBuilder*, gfxContext*, unsigned int) src/layout/painting/nsDisplayList.cpp:2535:9
#30 0x7f11ba9e67c5 in nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) src/layout/base/nsLayoutUtils.cpp:3465:13
#31 0x7f11ba963edc in mozilla::PresShell::Paint(nsView*, nsRegion const&, mozilla::PaintFlags) src/layout/base/PresShell.cpp:6361:5
#32 0x7f11ba6363df in nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) src/view/nsViewManager.cpp:460:18
#33 0x7f11ba635ed3 in nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) src/view/nsViewManager.cpp:395:22
#34 0x7f11ba63783f in nsViewManager::ProcessPendingUpdates() src/view/nsViewManager.cpp:1018:5
#35 0x7f11ba923c81 in nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:2369:11
#36 0x7f11ba92b031 in TickDriver src/layout/base/nsRefreshDriver.cpp:374:13
#37 0x7f11ba92b031 in mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) src/layout/base/nsRefreshDriver.cpp:353:7
#38 0x7f11ba92af1c in mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:368:5
#39 0x7f11ba92a4c8 in RunRefreshDrivers src/layout/base/nsRefreshDriver.cpp:829:5
#40 0x7f11ba92a4c8 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:747:16
#41 0x7f11ba929dd0 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyParentProcessVsync() src/layout/base/nsRefreshDriver.cpp:649:7
#42 0x7f11ba929849 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&) src/layout/base/nsRefreshDriver.cpp:570:9
#43 0x7f11bace87e7 in mozilla::layout::VsyncChild::RecvNotify(mozilla::VsyncEvent const&) src/layout/ipc/VsyncChild.cpp:55:16
#44 0x7f11b6fb6d15 in mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PVsyncChild.cpp:187:54
#45 0x7f11b6d6938d in mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PBackgroundChild.cpp:6231:32
#46 0x7f11b6a2679e in mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) src/ipc/glue/MessageChannel.cpp:2150:25
#47 0x7f11b6a22f5f in mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) src/ipc/glue/MessageChannel.cpp:2074:9
#48 0x7f11b6a24366 in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) src/ipc/glue/MessageChannel.cpp:1922:3
#49 0x7f11b6a24f8b in mozilla::ipc::MessageChannel::MessageTask::Run() src/ipc/glue/MessageChannel.cpp:1953:13
#50 0x7f11b6121dbf in mozilla::RunnableTask::Run() src/xpcom/threads/TaskController.cpp:245:16
#51 0x7f11b612043a in mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) src/xpcom/threads/TaskController.cpp:515:26
#52 0x7f11b611f4e4 in mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) src/xpcom/threads/TaskController.cpp:374:15
#53 0x7f11b611f697 in mozilla::TaskController::ProcessPendingMTTask(bool) src/xpcom/threads/TaskController.cpp:171:36
#54 0x7f11b61252e6 in operator() src/xpcom/threads/TaskController.cpp:85:37
#55 0x7f11b61252e6 in mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_3>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:577:5
#56 0x7f11b6136537 in nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1197:14
#57 0x7f11b613c0da in NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:513:10
#58 0x7f11b6a2c086 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:87:21
#59 0x7f11b699e813 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:334:10
#60 0x7f11b699e72d in RunHandler src/ipc/chromium/src/base/message_loop.cc:327:3
#61 0x7f11b699e72d in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:309:3
#62 0x7f11ba67c358 in nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:137:27
#63 0x7f11bbe75413 in XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:913:20
#64 0x7f11b6a2ce49 in mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:237:9
#65 0x7f11b699e813 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:334:10
#66 0x7f11b699e72d in RunHandler src/ipc/chromium/src/base/message_loop.cc:327:3
#67 0x7f11b699e72d in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:309:3
#68 0x7f11bbe74ff8 in XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:744:34
#69 0x557925159657 in content_process_main src/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28
#70 0x557925159657 in main src/browser/app/nsBrowserApp.cpp:304:18
Flags: in-testsuite?
Component: Layout → Web Painting

A Pernosco session is available here: https://pernos.co/debug/MaY66gYHz8rSlnyqgaO31Q/index.html

Bugmon Analysis:
Verified bug as reproducible on mozilla-central 20201020145547-5b5ffbe4add9.
The bug appears to have been introduced in the following build range:

Start: 459f586ec85a54f60d475d8315db21ba43de742e (20200930235025)
End: 5e28d7b69c23a40b2282e9a1b350fd428c6507ed (20200930235050)
Pushlog: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=459f586ec85a54f60d475d8315db21ba43de742e&tochange=5e28d7b69c23a40b2282e9a1b350fd428c6507ed

Whiteboard: [bugmon:bisected,confirmed]
Regressed by: 1668156
Has Regression Range: --- → yes

I took a quick look. The 'supposed to be' descendant frame is a column set wrapper that is in the absolute list of a column set wrapper for a different element. The 'supposed to be' ancestor frame is the next in flow of the latter frame. So some mix up with continuations?

The severity field is not set for this bug.
:mattwoodrow, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(matt.woodrow)
Severity: -- → S3
Flags: needinfo?(matt.woodrow)

Still reproduces with FLB. Could not reproduce with WR enabled.

Priority: -- → P3

(In reply to Miko Mynttinen [:miko] from comment #5)

Still reproduces with FLB. Could not reproduce with WR enabled.

Perhaps we can close this as fixed-by-webrender then, at this point? (bug 1464426)

Bugmon Analysis
Testcase crashes using the initial build (mozilla-central 20201020145547-5b5ffbe4add9) but not with tip (mozilla-central 20210820095755-1e6d20eb3a01.)
The bug appears to have been fixed in the following build range:

Start: 5913a4a254df767b3f74d5ec40102bbb733b9fa7 (20210210010432)
End: 9adc4db005f1af04f021d10aa60a16231823da80 (20210210031538)
Pushlog: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=5913a4a254df767b3f74d5ec40102bbb733b9fa7&tochange=9adc4db005f1af04f021d10aa60a16231823da80
Removing bugmon keyword as no further action possible. Please review the bug and re-add the keyword for further analysis.

Keywords: bugmon
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: