Closed Bug 580834 Opened 14 years ago Closed 14 years ago

"ASSERTION: Should have stopped before popup"


(Core :: Layout, defect)

Not set



Tracking Status
blocking2.0 --- final+


(Reporter: jruderman, Assigned: roc)



(Keywords: assertion, testcase)


(3 files)

Attached file testcase
###!!! ASSERTION: Should have stopped before popup: '!IsPopup(f)', file layout/base/nsLayoutUtils.cpp, line 689

nsLayoutUtils::GetActiveScrolledRootFor [layout/base/nsLayoutUtils.cpp:690]
mozilla::::ContainerState::ProcessDisplayItems [layout/base/FrameLayerBuilder.cpp:911]
mozilla::::ContainerState::ProcessDisplayItems [layout/base/FrameLayerBuilder.cpp:854]
mozilla::FrameLayerBuilder::BuildContainerLayerFor [layout/base/FrameLayerBuilder.cpp:1174]
nsDisplayList::PaintForFrame [layout/base/nsDisplayList.cpp:394]
nsDisplayList::PaintRoot [layout/base/nsDisplayList.cpp:346]
nsLayoutUtils::PaintFrame [layout/base/nsLayoutUtils.cpp:1346]
PresShell::Paint [layout/base/nsPresShell.cpp:5906]
nsViewManager::RenderViews [view/src/nsViewManager.cpp:448]
nsViewManager::Refresh [view/src/nsViewManager.cpp:416]
nsViewManager::DispatchEvent [view/src/nsViewManager.cpp:844]
HandleEvent [view/src/nsView.cpp:160]
nsChildView::DispatchEvent [widget/src/cocoa/]
nsChildView::DispatchWindowEvent [widget/src/cocoa/]
-[ChildView drawRect:inContext:] [widget/src/cocoa/]
-[ChildView drawRect:] [widget/src/cocoa/]
-AppKit + 0x11db09
-AppKit + 0x11b1d5
-AppKit + 0x11bb68
-AppKit + 0x11bb68
-AppKit + 0x11bb68
-AppKit + 0x11bb68
-AppKit + 0x11a767
-AppKit + 0x1170ae
-AppKit + 0x77d3f
-AppKit + 0x41050
AppKit + 0x72572
CoreFoundation + 0x802c2
CoreFoundation + 0x3c9bd
CoreFoundation + 0x3c094
CoreFoundation + 0x3bec1
HIToolbox + 0x34f9c
HIToolbox + 0x34c8d
HIToolbox + 0x34bd6
AppKit + 0x48a89
-AppKit + 0x482ca
nsAppShell::ProcessNextNativeEvent [widget/src/cocoa/]
nsBaseAppShell::DoProcessNextNativeEvent [widget/src/xpwidgets/nsBaseAppShell.cpp:156]
nsBaseAppShell::OnProcessNextEvent [widget/src/xpwidgets/nsBaseAppShell.cpp:312]
nsAppShell::OnProcessNextEvent [widget/src/cocoa/]
nsThread::ProcessNextEvent [xpcom/threads/nsThread.cpp:519]
NS_ProcessPendingEvents_P [nsThreadUtils.cpp:200]
nsBaseAppShell::NativeEventCallback [widget/src/xpwidgets/nsBaseAppShell.cpp:127]
nsAppShell::ProcessGeckoEvents [widget/src/cocoa/]
CoreFoundation + 0x3f0fb
CoreFoundation + 0x3cbbf
CoreFoundation + 0x3c094
CoreFoundation + 0x3bec1
HIToolbox + 0x34f9c
HIToolbox + 0x34d51
HIToolbox + 0x34bd6
AppKit + 0x48a89
-AppKit + 0x482ca
-AppKit + 0xa55b
nsAppShell::Run [widget/src/cocoa/]
nsAppStartup::Run [toolkit/components/startup/src/nsAppStartup.cpp:191]
XRE_main [toolkit/xre/nsAppRunner.cpp:3630]
main [browser/app/nsBrowserApp.cpp:158]
firefox-bin + 0x148e
This happened on tinderbox today, got this assertion several dozen times and then a slew of test failures.
OS: Mac OS X → All
This happens all the time when I open some menu in the bookmarks toolbar
(on OSX).
This is something new.
Attached file testcase 2
I don't get this bug for bookmarks, but do for the inspector popups.

This testcase is a more real world example that uses opacity on the panel.

Not sure what nsLayoutUtils::GetActiveScrolledRootFor does, but it seems to assume that aFrame will only be called for elements not in scrollable menus.
Assignee: nobody → roc
Attached patch fixSplinter Review
nsLayoutUtils::GetActiveScrolledRootFor is called with null aAncestor in some places, and that should be fine; we should just use the nearest popup as an active scrolled root.
Attachment #465434 - Flags: review?(tnikkel)
Attachment #465434 - Flags: review?(tnikkel) → review+
Whiteboard: [needs approval]
Comment on attachment 465434 [details] [diff] [review]

frequent annoying new assertion, safe fix
Attachment #465434 - Flags: approval2.0?
Attachment #465434 - Flags: approval2.0? → approval2.0+
blocking2.0: --- → final+
Whiteboard: [needs approval] → [needs landing]
Closed: 14 years ago
Resolution: --- → FIXED
Whiteboard: [needs landing]
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.