Open Bug 1572797 Opened 5 years ago Updated 2 years ago

Assertion failure: AnyContentAncestorModified(item->FrameForInvalidation()), at src/layout/painting/nsDisplayList.h:2120

Categories

(Core :: Web Painting, defect, P3)

defect

Tracking

()

Tracking Status
firefox70 --- disabled

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase.html

Reduced with m-c:
BuildID=20190809095611
SourceStamp=36c3240e5cafd7b57146bab3b177bfa47f42bcfa

Testcase requires "layout.css.individual-transform.enabled=true"

Assertion failure: AnyContentAncestorModified(item->FrameForInvalidation()), at src/layout/painting/nsDisplayList.h:2120

#0 nsDisplayTableThemedBackground* MakeDisplayItem<nsDisplayTableThemedBackground, nsIFrame, nsRect&, nsIFrame*&>(nsDisplayListBuilder*, nsIFrame*, nsRect&, nsIFrame*&) src/layout/painting/nsDisplayList.h:2119:5
#1 nsDisplayBackgroundImage::AppendBackgroundItemsToTop(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayList*, bool, mozilla::ComputedStyle*, nsRect const&, nsIFrame*, mozilla::Maybe<nsDisplayListBuilder::AutoBuildingDisplayList>*) src/layout/painting/nsDisplayList.cpp:4193:11
#2 nsTableCellFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/tables/nsTableCellFrame.cpp:504:7
#3 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#4 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#5 nsTableRowFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/tables/nsTableRowFrame.cpp:567:5
#6 nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsDisplayList*, bool*) src/layout/generic/nsFrame.cpp:3268:5
#7 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3990:12
#8 DisplayRows(nsDisplayListBuilder*, nsFrame*, nsDisplayListSet const&) src/layout/tables/nsTableRowGroupFrame.cpp:222:8
#9 nsTableRowGroupFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/tables/nsTableRowGroupFrame.cpp:255:3
#10 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#11 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#12 nsTableFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/tables/nsTableFrame.cpp:1313:5
#13 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#14 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#15 nsTableWrapperFrame::BuildDisplayListForInnerTable(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/tables/nsTableWrapperFrame.cpp:205:5
#16 nsTableWrapperFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/tables/nsTableWrapperFrame.cpp:175:5
#17 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#18 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#19 DisplayLine(nsDisplayListBuilder*, nsLineList_iterator&, bool, nsDisplayListSet const&, nsBlockFrame*, mozilla::css::TextOverflow*, unsigned int, int, int&) src/layout/generic/nsBlockFrame.cpp:6698:13
#20 nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/generic/nsBlockFrame.cpp:6819:9
#21 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#22 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#23 DisplayLine(nsDisplayListBuilder*, nsLineList_iterator&, bool, nsDisplayListSet const&, nsBlockFrame*, mozilla::css::TextOverflow*, unsigned int, int, int&) src/layout/generic/nsBlockFrame.cpp:6698:13
#24 nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/generic/nsBlockFrame.cpp:6819:9
#25 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#26 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#27 nsCanvasFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/generic/nsCanvasFrame.cpp:594:5
#28 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#29 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#30 mozilla::ScrollFrameHelper::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/generic/nsGfxScrollFrame.cpp:3692:15
#31 nsIFrame::BuildDisplayListForSimpleChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&) src/layout/generic/nsFrame.cpp:3744:11
#32 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) src/layout/generic/nsFrame.cpp:3811:5
#33 mozilla::ViewportFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) src/layout/generic/ViewportFrame.cpp:62:5
#34 nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsDisplayList*, bool*) src/layout/generic/nsFrame.cpp:3268:5
#35 RetainedDisplayListBuilder::AttemptPartialUpdate(unsigned int, mozilla::DisplayListChecker*) src/layout/painting/RetainedDisplayListBuilder.cpp:1481:34
#36 nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) src/layout/base/nsLayoutUtils.cpp:3987:40
#37 mozilla::PresShell::Paint(nsView*, nsRegion const&, mozilla::PaintFlags) src/layout/base/PresShell.cpp:6083:5
#38 nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) src/view/nsViewManager.cpp:461:18
#39 nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) src/view/nsViewManager.cpp:396:22
#40 nsViewManager::ProcessPendingUpdates() src/view/nsViewManager.cpp:1019:5
#41 nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:2136:11
#42 mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) src/layout/base/nsRefreshDriver.cpp:349:7
#43 mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:366:5
#44 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:734:16
#45 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&) src/layout/base/nsRefreshDriver.cpp:629:9
#46 mozilla::layout::VsyncChild::RecvNotify(mozilla::VsyncEvent const&) src/layout/ipc/VsyncChild.cpp:65:16
#47 mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) src/obj-firefox/ipc/ipdl/PVsyncChild.cpp:187:54
#48 mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) src/obj-firefox/ipc/ipdl/PBackgroundChild.cpp:5637:32
#49 mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) src/ipc/glue/MessageChannel.cpp:2184:25
#50 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) src/ipc/glue/MessageChannel.cpp:2108:9
#51 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) src/ipc/glue/MessageChannel.cpp:1955:3
#52 mozilla::ipc::MessageChannel::MessageTask::Run() src/ipc/glue/MessageChannel.cpp:1986:13
#53 nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1225:14
#54 NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:486:10
#55 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:88:21
#56 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:315:10
#57 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:290:3
#58 nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:137:27
#59 XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:919:20
#60 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:238:9
#61 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:315:10
#62 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:290:3
#63 XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:754:34
#64 content_process_main(mozilla::Bootstrap*, int, char**) src/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28
#65 main src/browser/app/nsBrowserApp.cpp:267:18
Flags: in-testsuite?

The priority flag 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)
Flags: needinfo?(matt.woodrow)
Priority: -- → P3
See Also: → 1510486

This test case uses "will-change: translate", which may be related to Bug 1510486.

This is not a case for individual transform properties, the assertion also happens with transform property and disabling the individual transform properties' pref value.

See Also: 1510486
Severity: normal normal → S3 S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: