Open Bug 1403727 Opened 7 years ago Updated 2 months ago

Assertion failure: mFrame->Combines3DTransformWithAncestors() || IsTransformSeparator() [@ nsDisplayTransform::ComputeBounds]

Categories

(Core :: Web Painting, defect, P3)

defect

Tracking

()

People

(Reporter: tsmith, Unassigned)

References

(Blocks 2 open bugs, )

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

Attached file test_case.html
Assertion failure: mFrame->Combines3DTransformWithAncestors() || IsTransformSeparator(), at /src/layout/painting/nsDisplayList.h:5291

#0 nsDisplayTransform::DoUpdateBoundsPreserves3D(nsDisplayListBuilder*) /src/layout/painting/nsDisplayList.h:5290:5
#1 nsDisplayTransform::StoreList::DoUpdateBoundsPreserves3D(nsDisplayListBuilder*) /src/layout/painting/nsDisplayList.h:5020:12
#2 nsDisplayTransform::ComputeBounds(nsDisplayListBuilder*) /src/layout/painting/nsDisplayList.cpp:8374:17
#3 nsDisplayTransform::UpdateBoundsFor3D(nsDisplayListBuilder*) /src/layout/painting/nsDisplayList.h:5314:5
#4 nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsDisplayList*) /src/layout/generic/nsFrame.cpp:2809:24
#5 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3192:12
#6 DisplayLine(nsDisplayListBuilder*, nsRect const&, nsLineList_iterator&, int, int&, nsDisplayListSet const&, nsBlockFrame*, mozilla::css::TextOverflow*, unsigned int) /src/layout/generic/nsBlockFrame.cpp:6716:13
#7 nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsBlockFrame.cpp:6811:7
#8 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#9 DisplayLine(nsDisplayListBuilder*, nsRect const&, nsLineList_iterator&, int, int&, nsDisplayListSet const&, nsBlockFrame*, mozilla::css::TextOverflow*, unsigned int) /src/layout/generic/nsBlockFrame.cpp:6716:13
#10 nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsBlockFrame.cpp:6811:7
#11 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#12 nsCanvasFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsCanvasFrame.cpp:600:5
#13 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#14 mozilla::ScrollFrameHelper::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsGfxScrollFrame.cpp:3530:15
#15 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#16 mozilla::ViewportFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/ViewportFrame.cpp:65:5
#17 nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsDisplayList*) /src/layout/generic/nsFrame.cpp:2603:5
#18 nsSubDocumentFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsSubDocumentFrame.cpp:479:9
#19 nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsDisplayList*) /src/layout/generic/nsFrame.cpp:2603:5
#20 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3192:12
#21 nsStackFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsStackFrame.cpp:58:5
#22 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#23 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#24 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#25 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#26 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#27 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#28 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#29 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#30 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#31 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#32 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#33 nsDeckFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsDeckFrame.cpp:198:3
#34 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#35 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#36 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#37 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#38 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#39 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#40 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#41 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#42 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#43 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#44 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#45 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#46 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#47 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#48 nsDeckFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsDeckFrame.cpp:198:3
#49 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#50 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#51 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#52 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#53 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#54 nsDeckFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsDeckFrame.cpp:198:3
#55 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#56 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#57 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#58 nsBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1353:3
#59 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#60 nsBoxFrame::BuildDisplayListForChildren(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsBoxFrame.cpp:1392:5
#61 nsRootBoxFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/xul/nsRootBoxFrame.cpp:189:3
#62 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3243:14
#63 mozilla::ViewportFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/ViewportFrame.cpp:65:5
#64 nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder*, nsDisplayList*) /src/layout/generic/nsFrame.cpp:2603:5
#65 nsLayoutUtils::GetFramesForArea(nsIFrame*, nsRect const&, nsTArray<nsIFrame*>&, unsigned int) /src/layout/base/nsLayoutUtils.cpp:3326:11
#66 nsLayoutUtils::GetFrameForPoint(nsIFrame*, nsPoint, unsigned int) /src/layout/base/nsLayoutUtils.cpp:3290:8
#67 mozilla::FindFrameTargetedByInputEvent(mozilla::WidgetGUIEvent*, nsIFrame*, nsPoint const&, unsigned int) /src/layout/base/PositionedEventTargeting.cpp:542:5
#68 mozilla::PresShell::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, nsEventStatus*, nsIContent**) /src/layout/base/PresShell.cpp:7530:9
#69 nsViewManager::DispatchEvent(mozilla::WidgetGUIEvent*, nsView*, nsEventStatus*) /src/view/nsViewManager.cpp:812:14
#70 mozilla::PresShell::DispatchSynthMouseMove(mozilla::WidgetGUIEvent*, bool) /src/layout/base/PresShell.cpp:3735:33
#71 mozilla::PresShell::ProcessSynthMouseMoveEvent(bool) /src/layout/base/PresShell.cpp:5702:12
#72 mozilla::PresShell::nsSynthMouseMoveEvent::WillRefresh(mozilla::TimeStamp) /src/obj-firefox/dist/include/mozilla/PresShell.h:649:16
#73 nsRefreshDriver::Tick(long, mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:1886:12
#74 mozilla::RefreshDriverTimer::TickRefreshDrivers(long, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) /src/layout/base/nsRefreshDriver.cpp:307:7
#75 mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:329:5
#76 mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:770:5
#77 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:683:35
#78 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run() /src/layout/base/nsRefreshDriver.cpp:529:20
#79 nsThread::ProcessNextEvent(bool, bool*) /src/xpcom/threads/nsThread.cpp:1039:14
#80 NS_ProcessNextEvent(nsIThread*, bool) /src/xpcom/threads/nsThreadUtils.cpp:524:10
#81 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:97:21
#82 MessageLoop::RunInternal() /src/ipc/chromium/src/base/message_loop.cc:326:10
#83 MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299:3
#84 nsBaseAppShell::Run() /src/widget/nsBaseAppShell.cpp:158:27
#85 nsAppStartup::Run() /src/toolkit/components/startup/nsAppStartup.cpp:288:30
#86 XREMain::XRE_mainRun() /src/toolkit/xre/nsAppRunner.cpp:4701:22
#87 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4865:8
#88 XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4960:21
#89 do_main(int, char**, char**) /src/browser/app/nsBrowserApp.cpp:236:22
#90 main /src/browser/app/nsBrowserApp.cpp:309:16
#91 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:291
#92 _start (firefox+0x41eb24)
Flags: in-testsuite?
This one seems to reproduce consistently using --xvfb with ffpuppet[1] to launch the browser & test case.

[1] https://github.com/MozillaSecurity/ffpuppet
This reproduces on Windows easily but goes back further than mozregression can bisect (~1yr).
Has Regression Range: --- → no
Priority: -- → P3
Bughunter found this on https://www.chimpion.io/home/ on Windows/Linux.
Component: Layout → Web Painting
Severity: normal → S3
See Also: → 1826033
See Also: → 1853501

[clearing all the old-version wontfix flags since they're just taking up space at the top of this bug now]

This has been detected by live site testing.

Blocks: site-scout
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: