Closed Bug 1340257 Opened 3 years ago Closed 3 years ago

Assertion failure: mightHaveNoneSVGMask || aFrame->GetParent()->StyleContext()->GetPseudo() == nsCSSAnonBoxes::mozAnonymousBlock

Categories

(Core :: Layout, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox51 --- wontfix
firefox52 --- wontfix
firefox-esr52 --- wontfix
firefox53 --- wontfix
firefox54 --- fixed

People

(Reporter: truber, Assigned: u459114)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached file testcase.html
Attached testcase causes an assertion in mozilla-central rev 20170216-25929185c467

Assertion failure: mightHaveNoneSVGMask || aFrame->GetParent()->StyleContext()->GetPseudo() == nsCSSAnonBoxes::mozAnonymousBlock (How did we getting here, then?), at /home/worker/workspace/build/src/layout/svg/nsSVGIntegrationUtils.cpp:135
    #0 0x7ff00c0d2ae8 in PreEffectsVisualOverflowCollector::GetPreEffectsVisualOverflowRect(nsIFrame*, bool) /home/worker/workspace/build/src/layout/svg/nsSVGIntegrationUtils.cpp:132:7
    #1 0x7ff00c0d26af in PreEffectsVisualOverflowCollector::AddBox(nsIFrame*) /home/worker/workspace/build/src/layout/svg/nsSVGIntegrationUtils.cpp:72:9
    #2 0x7ff00bce5012 in AddBoxesForFrame(nsIFrame*, nsLayoutUtils::BoxCallback*) /home/worker/workspace/build/src/layout/base/nsLayoutUtils.cpp:3883:5
    #3 0x7ff00bce4e5a in nsLayoutUtils::GetAllInFlowBoxes(nsIFrame*, nsLayoutUtils::BoxCallback*) /home/worker/workspace/build/src/layout/base/nsLayoutUtils.cpp:3891:5
    #4 0x7ff00c0baf0e in GetPreEffectsVisualOverflowUnion(nsIFrame*, nsIFrame*, nsRect const&, nsPoint const&, bool) /home/worker/workspace/build/src/layout/svg/nsSVGIntegrationUtils.cpp:169:3
    #5 0x7ff00c0bad25 in nsSVGIntegrationUtils::GetSVGBBoxForNonSVGFrame(nsIFrame*) /home/worker/workspace/build/src/layout/svg/nsSVGIntegrationUtils.cpp:244:14
    #6 0x7ff00c0d9763 in nsSVGUtils::GetBBox(nsIFrame*, unsigned int) /home/worker/workspace/build/src/layout/svg/nsSVGUtils.cpp:1201:10
    #7 0x7ff00c09503b in nsFilterInstance::nsFilterInstance(nsIFrame*, nsIContent*, mozilla::dom::UserSpaceMetrics const&, nsTArray<nsStyleFilter> const&, bool, nsSVGFilterPaintCallback*, gfxMatrix const&, nsRegion const*, nsRegion const*,
 nsRect const*, gfxRect const*) /home/worker/workspace/build/src/layout/svg/nsFilterInstance.cpp:185:19
    #8 0x7ff00c0941ca in nsFilterInstance::GetPostFilterDirtyArea(nsIFrame*, nsRegion const&) /home/worker/workspace/build/src/layout/svg/nsFilterInstance.cpp:97:20
    #9 0x7ff00c0bb594 in nsSVGIntegrationUtils::AdjustInvalidAreaForSVGEffects(nsIFrame*, nsPoint const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&) /home/worker/workspace/build/src/layout/svg/nsSVGIntegrationUtils.cp
p:362:21
    #10 0x7ff00c258430 in mozilla::FrameLayerBuilder::AddPaintedDisplayItem(mozilla::PaintedLayerData*, nsDisplayItem*, mozilla::DisplayItemClip const&, mozilla::ContainerState&, mozilla::LayerState, nsPoint const&) /home/worker/workspace/
build/src/layout/painting/FrameLayerBuilder.cpp:4727:19
    #11 0x7ff00c24684f in void mozilla::ContainerState::FinishPaintedLayerData<mozilla::PaintedLayerDataNode::PopPaintedLayerData()::$_0>(mozilla::PaintedLayerData&, mozilla::PaintedLayerDataNode::PopPaintedLayerData()::$_0) /home/worker/w
orkspace/build/src/layout/painting/FrameLayerBuilder.cpp:3187:5
    #12 0x7ff00c2462d9 in mozilla::PaintedLayerDataNode::PopPaintedLayerData() /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:2891:3
    #13 0x7ff00c246077 in mozilla::PaintedLayerDataNode::PopAllPaintedLayerData() /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:2901:5
    #14 0x7ff00c245eeb in mozilla::PaintedLayerDataNode::Finish(bool) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:2855:3
    #15 0x7ff00c24600d in mozilla::PaintedLayerDataNode::FinishAllChildren(bool) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:2844:5
    #16 0x7ff00c245ee3 in mozilla::PaintedLayerDataNode::Finish(bool) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:2853:3
    #17 0x7ff00c24831b in mozilla::PaintedLayerDataTree::Finish() /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:2915:5
    #18 0x7ff00c25b3d7 in mozilla::ContainerState::Finish(unsigned int*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, nsDisplayList*, bool*) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:5232:3
    #19 0x7ff00c25c683 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x
4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits> const*, unsigned int) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:5655:5
    #20 0x7ff00c2c73ba in nsDisplayOwnLayer::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) /home/worker/workspace/build/src/layout/painting/nsDisplayList.cpp:5417:34
    #21 0x7ff00c2c7af9 in nsDisplaySubDocument::BuildLayer(nsDisplayListBuilder*, mozilla::layers::LayerManager*, mozilla::ContainerLayerParameters const&) /home/worker/workspace/build/src/layout/painting/nsDisplayList.cpp:5468:25
    #22 0x7ff00c2532d0 in mozilla::ContainerState::ProcessDisplayItems(nsDisplayList*) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:4249:32
    #23 0x7ff00c25c546 in mozilla::FrameLayerBuilder::BuildContainerLayerFor(nsDisplayListBuilder*, mozilla::layers::LayerManager*, nsIFrame*, nsDisplayItem*, nsDisplayList*, mozilla::ContainerLayerParameters const&, mozilla::gfx::Matrix4x
4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits> const*, unsigned int) /home/worker/workspace/build/src/layout/painting/FrameLayerBuilder.cpp:5641:5
    #24 0x7ff00c2b148f in nsDisplayList::PaintRoot(nsDisplayListBuilder*, nsRenderingContext*, unsigned int) /home/worker/workspace/build/src/layout/painting/nsDisplayList.cpp:2104:12
    #25 0x7ff00bce14b9 in nsLayoutUtils::PaintFrame(nsRenderingContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) /home/worker/workspace/build/src/layout/base/nsLayoutUtils.cpp:367
8:7
    #26 0x7ff00bc1cf3a in mozilla::PresShell::Paint(nsView*, nsRegion const&, unsigned int) /home/worker/workspace/build/src/layout/base/PresShell.cpp:6481:5
    #27 0x7ff00b687070 in nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) /home/worker/workspace/build/src/view/nsViewManager.cpp:484:7
    #28 0x7ff00b6869e5 in nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) /home/worker/workspace/build/src/view/nsViewManager.cpp:416:9
    #29 0x7ff00b689199 in nsViewManager::ProcessPendingUpdates() /home/worker/workspace/build/src/view/nsViewManager.cpp:1105:5
    #30 0x7ff00bba4409 in nsRefreshDriver::Tick(long, mozilla::TimeStamp) /home/worker/workspace/build/src/layout/base/nsRefreshDriver.cpp:2037:7
    #31 0x7ff00bba8537 in nsRefreshDriver::FinishedWaitingForTransaction() /home/worker/workspace/build/src/layout/base/nsRefreshDriver.cpp:2137:5
    #32 0x7ff0081d4f41 in mozilla::layers::ClientLayerManager::DidComposite(unsigned long, mozilla::TimeStamp const&, mozilla::TimeStamp const&) /home/worker/workspace/build/src/gfx/layers/client/ClientLayerManager.cpp:495:5
    #33 0x7ff00828add8 in mozilla::layers::CompositorBridgeChild::RecvDidComposite(unsigned long const&, unsigned long const&, mozilla::TimeStamp const&, mozilla::TimeStamp const&) /home/worker/workspace/build/src/gfx/layers/ipc/Compositor
BridgeChild.cpp:584:5
    #34 0x7ff007832fae in mozilla::layers::PCompositorBridgeChild::OnMessageReceived(IPC::Message const&) /home/worker/workspace/build/src/obj-firefox/ipc/ipdl/PCompositorBridgeChild.cpp:1537:20
    #35 0x7ff0073af16f in mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) /home/worker/workspace/build/src/ipc/glue/MessageChannel.cpp:1795:14
    #36 0x7ff0073ac62a in mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) /home/worker/workspace/build/src/ipc/glue/MessageChannel.cpp:1730:17
    #37 0x7ff0073ada5e in mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) /home/worker/workspace/build/src/ipc/glue/MessageChannel.cpp:1603:5
    #38 0x7ff0073ae34b in mozilla::ipc::MessageChannel::MessageTask::Run() /home/worker/workspace/build/src/ipc/glue/MessageChannel.cpp:1636:5
    #39 0x7ff0068988e5 in nsThread::ProcessNextEvent(bool, bool*) /home/worker/workspace/build/src/xpcom/threads/nsThread.cpp:1264:7
    #40 0x7ff006894f80 in NS_ProcessNextEvent(nsIThread*, bool) /home/worker/workspace/build/src/xpcom/threads/nsThreadUtils.cpp:389:10
    #41 0x7ff0073b57d9 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /home/worker/workspace/build/src/ipc/glue/MessagePump.cpp:96:21
    #42 0x7ff007321467 in MessageLoop::RunInternal() /home/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:238:3
    #43 0x7ff0073212f9 in MessageLoop::Run() /home/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:211:3
    #44 0x7ff00b6ee90a in nsBaseAppShell::Run() /home/worker/workspace/build/src/widget/nsBaseAppShell.cpp:156:3
    #45 0x7ff00e0a759c in nsAppStartup::Run() /home/worker/workspace/build/src/toolkit/components/startup/nsAppStartup.cpp:283:19
    #46 0x7ff00e1e84b9 in XREMain::XRE_mainRun() /home/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp:4470:10
    #47 0x7ff00e1ea047 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp:4647:8
    #48 0x7ff00e1eae92 in XRE_main(int, char**, mozilla::BootstrapConfig const&) /home/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp:4738:16
    #49 0x4e0c83 in do_main(int, char**, char**) /home/worker/workspace/build/src/browser/app/nsBrowserApp.cpp:234:10
    #50 0x4e0500 in main /home/worker/workspace/build/src/browser/app/nsBrowserApp.cpp:305:16
    #51 0x7ff023f6e290 in __libc_start_main (/usr/lib/libc.so.6+0x20290)
    #52 0x41cb34 in _start (/home/truber/builds/m-c-1487261076-asan-debug/firefox+0x41cb34)
Flags: in-testsuite?
The root cause of this bug might be the same with bug 1340992, but the test case here is much simpler, thanks
Assignee: nobody → cku
See Also: → 1340992
We do not calls nsIFrame::FinishAndStoreOverflow in BRFrame::Reflow, so PreEffectsBBoxProperty did not cached.
Attachment #8839828 - Flags: review?(cam)
Attachment #8839829 - Flags: review?(cku)
Comment on attachment 8839829 [details]
Bug 1340257 - Part 2. Revert the change in bug 842114.

https://reviewboard.mozilla.org/r/114408/#review115866
Attachment #8839829 - Flags: review?(cku) → review+
Comment on attachment 8839828 [details]
Bug 1340257 - Part 1. Remove Assertion failure: mightHaveNoneSVGMask.

https://reviewboard.mozilla.org/r/114406/#review115872

That reasoning sounds OK, thanks.
Attachment #8839828 - Flags: review?(cam) → review+
Pushed by cku@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/771cb7e75d7c
Part 1. Remove Assertion failure: mightHaveNoneSVGMask. r=heycam
https://hg.mozilla.org/integration/autoland/rev/ba444f145ea8
Part 2. Revert the change in bug 842114. r=cjku
https://hg.mozilla.org/mozilla-central/rev/ba444f145ea8
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Is this worth backporting to 53 or should we let it ride the 54 train?
Flags: needinfo?(cku)
In 53, we use NS_ASSERTION instead of MOZ_ASSERT. Only dump a debug message on the console, not really noticeable for users, so I think we can just just ride these patches on 54 train.
Flags: needinfo?(cku)
Duplicate of this bug: 1331533
You need to log in before you can comment on or make changes to this bug.