Closed Bug 333051 Opened 15 years ago Closed 15 years ago

Menus (top-level and context) no longer work

Categories

(Core :: Layout, defect)

x86
Windows 2000
defect
Not set
blocker

Tracking

()

VERIFIED FIXED

People

(Reporter: stevee, Assigned: bryner)

References

(Blocks 1 open bug)

Details

(5 keywords)

Attachments

(1 file)

Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a1) Gecko/20060406 Firefox/1.6a1 ID:2006040613 (13 is an approximate guess).

1. Start firefox, new profile
2. Observe no right click menu, no chrome menus work (File, Edit, etc), no bookmark folders work.
I should have pointed out I am not on a cairo build.
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a1) Gecko/20060406 Firefox/3.0a1 ID:2006040613 [cairo]

wfm on a cairo build
dbaron's clobber on "WINNT 5.2 Pacifica Dep Release" (that ended 04/06 17:01:08) did not fix this bug.
We should at least get this into menus, although it may be a gfx thing...
Component: General → Menus
QA Contact: general → menus
*** Bug 333094 has been marked as a duplicate of this bug. ***
This is smacking SeaMonkey as well:  See bug 333094.

I am not using Cairo, as there's another bug with Cairo rendering on Windows that makes SeaMonkey pretty unusable.

This violates smoketest B.3, as File->Open cannot be used.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20060406 SeaMonkey/1.5a

Assertions from SeaMonkey trunk:

For context menu in main browser, at http://www.mozilla.org/projects/seamonkey/start/
###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file m:/vc8/mozilla/layout/generic/nsFrame.cpp, line 4656

 	ntdll.dll!7c901230() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]	
>	xpcom_core.dll!Break(const char * aMsg=0x0012ee3c)  Line 471	C++
 	xpcom_core.dll!NS_DebugBreak_P(unsigned int aSeverity=1, const char * aStr=0x01c220c8, const char * aExpr=0x01c22060, const char * aFile=0x01c22030, int aLine=4656)  Line 354 + 0xc bytes	C++
 	gklayout.dll!nsIFrame::FinishAndStoreOverflow(nsRect * aOverflowArea=0x0012f35c, nsSize aNewSize={...})  Line 4656 + 0x87 bytes	C++
 	gklayout.dll!nsBox::SyncLayout(nsBoxLayoutState & aState={...})  Line 884	C++
 	gklayout.dll!nsBox::EndLayout(nsBoxLayoutState & aState={...})  Line 227	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 800	C++
 	gklayout.dll!nsPopupSetFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 252	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsSprocketLayout::Layout(nsIFrame * aBox=0x02b5001c, nsBoxLayoutState & aState={...})  Line 547	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsStackLayout::Layout(nsIFrame * aBox=0x02b4fddc, nsBoxLayoutState & aState={...})  Line 321	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsBoxFrame::Reflow(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0)  Line 820	C++
 	gklayout.dll!nsRootBoxFrame::Reflow(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0)  Line 218	C++
 	gklayout.dll!nsContainerFrame::ReflowChild(nsIFrame * aKidFrame=0x02b4fddc, nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, int aX=0, int aY=0, unsigned int aFlags=0, unsigned int & aStatus=0)  Line 739 + 0x21 bytes	C++
 	gklayout.dll!ViewportFrame::Reflow(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0)  Line 248 + 0x2b bytes	C++
 	gklayout.dll!IncrementalReflow::Dispatch(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsSize & aMaxSize={...}, nsIRenderingContext & aRendContext={...})  Line 862	C++
 	gklayout.dll!PresShell::ProcessReflowCommands(int aInterruptible=1)  Line 6536	C++
 	gklayout.dll!ReflowEvent::HandleEvent()  Line 6359	C++
 	gklayout.dll!HandlePLEvent(PLEvent * aEvent=0x032c8358)  Line 6377	C++
 	xpcom_core.dll!PL_HandleEvent(PLEvent * self=0x032c8358)  Line 688 + 0xc bytes	C
 	xpcom_core.dll!PL_ProcessPendingEvents(PLEventQueue * self=0x00a6a9c8)  Line 623 + 0x9 bytes	C
 	xpcom_core.dll!_md_TimerProc(HWND__ * hwnd=0x000205cc, unsigned int uMsg=275, unsigned int idEvent=0, unsigned long dwTime=51529578)  Line 1013 + 0x9 bytes	C
 	user32.dll!77d48734() 	
 	user32.dll!77d49857() 	
 	user32.dll!77d49791() 	
 	user32.dll!77d48a10() 	
 	gkwidget.dll!nsAppShell::Run()  Line 135	C++
 	appcomps.dll!nsAppStartup::Run()  Line 208	C++
 	seamonkey.exe!main1(int argc=1, char * * argv=0x003d2fb0, nsISupports * nativeApp=0x00a6b0f0)  Line 1248 + 0x22 bytes	C++
 	seamonkey.exe!main(int argc=1, char * * argv=0x003d2fb0)  Line 1750 + 0x25 bytes	C++
 	seamonkey.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes	C
 	seamonkey.exe!mainCRTStartup()  Line 403	C
 	kernel32.dll!7c816d4f() 	
 	kernel32.dll!7c8399f3() 	

Accessing the QA menu, first assertion:
###!!! ASSERTION: Computed overflow area must contain frame bounds: 'aNewSize.width == 0 || aNewSize.height == 0 || aOverflowArea->Contains(nsRect(nsPoint(0, 0), aNewSize))', file m:/vc8/mozilla/layout/generic/nsFrame.cpp, line 4656

 	ntdll.dll!7c901230() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]	
>	xpcom_core.dll!Break(const char * aMsg=0x0012d918)  Line 471	C++
 	xpcom_core.dll!NS_DebugBreak_P(unsigned int aSeverity=1, const char * aStr=0x01c220c8, const char * aExpr=0x01c22060, const char * aFile=0x01c22030, int aLine=4656)  Line 354 + 0xc bytes	C++
 	gklayout.dll!nsIFrame::FinishAndStoreOverflow(nsRect * aOverflowArea=0x0012de38, nsSize aNewSize={...})  Line 4656 + 0x87 bytes	C++
 	gklayout.dll!nsBox::SyncLayout(nsBoxLayoutState & aState={...})  Line 884	C++
 	gklayout.dll!nsBox::EndLayout(nsBoxLayoutState & aState={...})  Line 227	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 800	C++
 	gklayout.dll!nsMenuFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1050	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsSprocketLayout::Layout(nsIFrame * aBox=0x02e5c154, nsBoxLayoutState & aState={...})  Line 547	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsSprocketLayout::Layout(nsIFrame * aBox=0x02e5ba84, nsBoxLayoutState & aState={...})  Line 547	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsSprocketLayout::Layout(nsIFrame * aBox=0x02bd2efc, nsBoxLayoutState & aState={...})  Line 547	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsSprocketLayout::Layout(nsIFrame * aBox=0x02bd2e2c, nsBoxLayoutState & aState={...})  Line 547	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsSprocketLayout::Layout(nsIFrame * aBox=0x02b5001c, nsBoxLayoutState & aState={...})  Line 547	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsStackLayout::Layout(nsIFrame * aBox=0x02b4fddc, nsBoxLayoutState & aState={...})  Line 321	C++
 	gklayout.dll!nsBoxFrame::DoLayout(nsBoxLayoutState & aState={...})  Line 1069 + 0x24 bytes	C++
 	gklayout.dll!nsIFrame::Layout(nsBoxLayoutState & aState={...})  Line 798	C++
 	gklayout.dll!nsBoxFrame::Reflow(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0)  Line 820	C++
 	gklayout.dll!nsRootBoxFrame::Reflow(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0)  Line 218	C++
 	gklayout.dll!nsContainerFrame::ReflowChild(nsIFrame * aKidFrame=0x02b4fddc, nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, int aX=0, int aY=0, unsigned int aFlags=0, unsigned int & aStatus=0)  Line 739 + 0x21 bytes	C++
 	gklayout.dll!ViewportFrame::Reflow(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0)  Line 248 + 0x2b bytes	C++
 	gklayout.dll!IncrementalReflow::Dispatch(nsPresContext * aPresContext=0x02ba6608, nsHTMLReflowMetrics & aDesiredSize={...}, const nsSize & aMaxSize={...}, nsIRenderingContext & aRendContext={...})  Line 862	C++
 	gklayout.dll!PresShell::ProcessReflowCommands(int aInterruptible=0)  Line 6536	C++
 	gklayout.dll!PresShell::FlushPendingNotifications(mozFlushType aType=Flush_OnlyReflow)  Line 5070	C++
 	gklayout.dll!nsMenuFrame::OpenMenuInternal(int aActivateFlag=1)  Line 850	C++
 	gklayout.dll!nsMenuFrame::OpenMenu(int aActivateFlag=1)  Line 743	C++
 	gklayout.dll!nsMenuFrame::ToggleMenuState()  Line 554	C++
 	gklayout.dll!nsMenuFrame::HandleEvent(nsPresContext * aPresContext=0x02ba6608, nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aEventStatus=0x0012f15c)  Line 408	C++
 	gklayout.dll!nsPresShellEventCB::HandleEvent(nsEventChainPostVisitor & aVisitor={...})  Line 1477	C++
 	gklayout.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 503	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 401 + 0x12 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x02c450f0, nsPresContext * aPresContext=0x02ba6608, nsEvent * aEvent=0x0012f7fc, nsIDOMEvent * aDOMEvent=0x00000000, nsEventStatus * aEventStatus=0x0012f5c0, nsDispatchingCallback * aCallback=0x0012f4dc, int aTargetIsChromeHandler=0)  Line 575 + 0x10 bytes	C++
 	gklayout.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x0012f7fc, nsIView * aView=0x02b627f8, nsEventStatus * aStatus=0x0012f5c0)  Line 6124 + 0x2b bytes	C++
 	gklayout.dll!PresShell::HandlePositionedEvent(nsIView * aView=0x02b627f8, nsIFrame * aTargetFrame=0x02e84710, nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aEventStatus=0x0012f5c0)  Line 5999 + 0x14 bytes	C++
 	gklayout.dll!PresShell::HandleEvent(nsIView * aView=0x02b627f8, nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aEventStatus=0x0012f5c0)  Line 5827 + 0x1b bytes	C++
 	gklayout.dll!nsViewManager::HandleEvent(nsView * aView=0x02b627f8, nsPoint aPoint={...}, nsGUIEvent * aEvent=0x0012f7fc, int aCaptured=0)  Line 1712	C++
 	gklayout.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aStatus=0x0012f6e8)  Line 1665 + 0x22 bytes	C++
 	gklayout.dll!HandleEvent(nsGUIEvent * aEvent=0x0012f7fc)  Line 174	C++
 	gkwidget.dll!nsWindow::DispatchEvent(nsGUIEvent * event=0x0012f7fc, nsEventStatus & aStatus=nsEventStatus_eIgnore)  Line 1100 + 0xc bytes	C++
 	gkwidget.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event=0x0012f7fc)  Line 1121	C++
 	gkwidget.dll!nsWindow::DispatchMouseEvent(unsigned int aEventType=302, unsigned int wParam=1, long lParam=459155)  Line 6095 + 0x1a bytes	C++
 	gkwidget.dll!ChildWindow::DispatchMouseEvent(unsigned int aEventType=302, unsigned int wParam=1, long lParam=459155)  Line 6278	C++
 	gkwidget.dll!nsWindow::ProcessMessage(unsigned int msg=513, unsigned int wParam=1, long lParam=459155, long * aRetValue=0x0012fc80)  Line 4568 + 0x20 bytes	C++
 	gkwidget.dll!nsWindow::WindowProc(HWND__ * hWnd=0x000205ba, unsigned int msg=513, unsigned int wParam=1, long lParam=459155)  Line 1289 + 0x1d bytes	C++
 	user32.dll!77d48734() 	
 	user32.dll!77d48816() 	
 	user32.dll!77d489cd() 	
 	user32.dll!77d49402() 	
 	user32.dll!77d48a10() 	
 	gkwidget.dll!nsAppShell::Run()  Line 135	C++
 	appcomps.dll!nsAppStartup::Run()  Line 208	C++
 	seamonkey.exe!main1(int argc=1, char * * argv=0x003d2fb0, nsISupports * nativeApp=0x00a6b0f0)  Line 1248 + 0x22 bytes	C++
 	seamonkey.exe!main(int argc=1, char * * argv=0x003d2fb0)  Line 1750 + 0x25 bytes	C++
 	seamonkey.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes	C
 	seamonkey.exe!mainCRTStartup()  Line 403	C
 	kernel32.dll!7c816d4f() 	
 	kernel32.dll!7c8399f3() 	

Accessing the QA menu, second and third assertions:
###!!! ASSERTION: Negative width passed to nsWindow::Resize: '(aWidth >=0 )', file m:/vc8/mozilla/widget/src/windows/nsWindow.cpp, line 2009
###!!! ASSERTION: Negative height passed to nsWindow::Resize: '(aHeight >=0 )', file m:/vc8/mozilla/widget/src/windows/nsWindow.cpp, line 2010
 	ntdll.dll!7c901230() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]	
>	xpcom_core.dll!Break(const char * aMsg=0x0012e8d0)  Line 471	C++
 	xpcom_core.dll!NS_DebugBreak_P(unsigned int aSeverity=1, const char * aStr=0x0209c51c, const char * aExpr=0x0209c50c, const char * aFile=0x0209c4dc, int aLine=2009)  Line 354 + 0xc bytes	C++
 	gkwidget.dll!nsWindow::Resize(int aWidth=-3, int aHeight=-3, int aRepaint=1)  Line 2009 + 0x22 bytes	C++
 	gklayout.dll!nsView::DoResetWidgetBounds(int aMoveOnly=0, int aInvalidateChangedSize=1)  Line 408	C++
 	gklayout.dll!nsView::ResetWidgetBounds(int aRecurse=0, int aMoveOnly=0, int aInvalidateChangedSize=1)  Line 339 + 0x10 bytes	C++
 	gklayout.dll!nsViewManager::ProcessPendingUpdates(nsView * aView=0x03426768, int aDoInvalidate=1)  Line 1019	C++
 	gklayout.dll!nsViewManager::ProcessPendingUpdates(nsView * aView=0x02b627f8, int aDoInvalidate=1)  Line 1022	C++
 	gklayout.dll!nsViewManager::FlushPendingInvalidates()  Line 2845	C++
 	gklayout.dll!nsViewManager::EnableRefresh(unsigned int aUpdateFlags=0)  Line 2428	C++
 	gklayout.dll!nsViewManager::EndUpdateViewBatch(unsigned int aUpdateFlags=0)  Line 2470 + 0x18 bytes	C++
 	gklayout.dll!PresShell::FlushPendingNotifications(mozFlushType aType=Flush_OnlyReflow)  Line 5085	C++
 	gklayout.dll!nsMenuFrame::OpenMenuInternal(int aActivateFlag=1)  Line 850	C++
 	gklayout.dll!nsMenuFrame::OpenMenu(int aActivateFlag=1)  Line 743	C++
 	gklayout.dll!nsMenuFrame::ToggleMenuState()  Line 554	C++
 	gklayout.dll!nsMenuFrame::HandleEvent(nsPresContext * aPresContext=0x02ba6608, nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aEventStatus=0x0012f15c)  Line 408	C++
 	gklayout.dll!nsPresShellEventCB::HandleEvent(nsEventChainPostVisitor & aVisitor={...})  Line 1477	C++
 	gklayout.dll!nsEventTargetChainItem::HandleEventTargetChain(nsEventChainPostVisitor & aVisitor={...}, unsigned int aFlags=6, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 503	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 401 + 0x12 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventTargetChainItem::CreateChainAndHandleEvent(nsEventChainPreVisitor & aVisitor={...}, nsDispatchingCallback * aCallback=0x0012f4dc)  Line 392 + 0x10 bytes	C++
 	gklayout.dll!nsEventDispatcher::Dispatch(nsISupports * aTarget=0x02c450f0, nsPresContext * aPresContext=0x02ba6608, nsEvent * aEvent=0x0012f7fc, nsIDOMEvent * aDOMEvent=0x00000000, nsEventStatus * aEventStatus=0x0012f5c0, nsDispatchingCallback * aCallback=0x0012f4dc, int aTargetIsChromeHandler=0)  Line 575 + 0x10 bytes	C++
 	gklayout.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x0012f7fc, nsIView * aView=0x02b627f8, nsEventStatus * aStatus=0x0012f5c0)  Line 6124 + 0x2b bytes	C++
 	gklayout.dll!PresShell::HandlePositionedEvent(nsIView * aView=0x02b627f8, nsIFrame * aTargetFrame=0x02e84710, nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aEventStatus=0x0012f5c0)  Line 5999 + 0x14 bytes	C++
 	gklayout.dll!PresShell::HandleEvent(nsIView * aView=0x02b627f8, nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aEventStatus=0x0012f5c0)  Line 5827 + 0x1b bytes	C++
 	gklayout.dll!nsViewManager::HandleEvent(nsView * aView=0x02b627f8, nsPoint aPoint={...}, nsGUIEvent * aEvent=0x0012f7fc, int aCaptured=0)  Line 1712	C++
 	gklayout.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent=0x0012f7fc, nsEventStatus * aStatus=0x0012f6e8)  Line 1665 + 0x22 bytes	C++
 	gklayout.dll!HandleEvent(nsGUIEvent * aEvent=0x0012f7fc)  Line 174	C++
 	gkwidget.dll!nsWindow::DispatchEvent(nsGUIEvent * event=0x0012f7fc, nsEventStatus & aStatus=nsEventStatus_eIgnore)  Line 1100 + 0xc bytes	C++
 	gkwidget.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event=0x0012f7fc)  Line 1121	C++
 	gkwidget.dll!nsWindow::DispatchMouseEvent(unsigned int aEventType=302, unsigned int wParam=1, long lParam=459155)  Line 6095 + 0x1a bytes	C++
 	gkwidget.dll!ChildWindow::DispatchMouseEvent(unsigned int aEventType=302, unsigned int wParam=1, long lParam=459155)  Line 6278	C++
 	gkwidget.dll!nsWindow::ProcessMessage(unsigned int msg=513, unsigned int wParam=1, long lParam=459155, long * aRetValue=0x0012fc80)  Line 4568 + 0x20 bytes	C++
 	gkwidget.dll!nsWindow::WindowProc(HWND__ * hWnd=0x000205ba, unsigned int msg=513, unsigned int wParam=1, long lParam=459155)  Line 1289 + 0x1d bytes	C++
 	user32.dll!77d48734() 	
 	user32.dll!77d48816() 	
 	user32.dll!77d489cd() 	
 	user32.dll!77d49402() 	
 	user32.dll!77d48a10() 	
 	gkwidget.dll!nsAppShell::Run()  Line 135	C++
 	appcomps.dll!nsAppStartup::Run()  Line 208	C++
 	seamonkey.exe!main1(int argc=1, char * * argv=0x003d2fb0, nsISupports * nativeApp=0x00a6b0f0)  Line 1248 + 0x22 bytes	C++
 	seamonkey.exe!main(int argc=1, char * * argv=0x003d2fb0)  Line 1750 + 0x25 bytes	C++
 	seamonkey.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes	C
 	seamonkey.exe!mainCRTStartup()  Line 403	C
 	kernel32.dll!7c816d4f() 	
 	kernel32.dll!7c8399f3() 
Blocks: 332640
Since this affects SeaMonkey as well, it's not a Firefox bug.
Component: Menus → Layout
Product: Firefox → Core
Assignee: nobody → bryner
QA Contact: menus → layout
*** Bug 333103 has been marked as a duplicate of this bug. ***
Also effects Sunbird -> blocks Sunbird 0.3a2 release
Summary: Firefox menus no longer work → Menus (top-level and context) no longer work
Ah... I see BUG https://bugzilla.mozilla.org/show_bug.cgi?id=333051 was opened... Sorry for the bug spam..

Bryan
So is there some indication that bug 332640 is what's responsible here?  What's our regression range?
Flags: blocking1.9a1?
Flags: blocking1.8.1?
The indication is that I backed out the patch from bug 332640 (on ajschult's advice), and things started working again.
Flags: blocking1.9a1?
Flags: blocking1.9a1+
Flags: blocking1.8.1?
Flags: blocking1.8.1+
(In reply to comment #12)
> The indication is that I backed out the patch from bug 332640 (on ajschult's
> advice), and things started working again.
> 
Sorry, but it doesn't appear that they're working again, at least not in the Pacifica trunk builds.
Joe, Alex is talking about a local backout in his copy of the tree.
(In reply to comment #14)
> Joe, Alex is talking about a local backout in his copy of the tree.
> 
OK, sorry for le boog spam.
Ok, I think the issue must be that the widget doesn't have a device context associated with it.  The docshell doesn't actually use its widget's device context, instead, it creates a new device context and initializes it with the widget.

So, we could fix this by:

1. backing out the patch, I can work around it for bug 329871
2. exposing the docshell's device context on an interface.  it would need to be a _1_8_BRANCH interface since we'd need this for ff2
3. having the Screen object create a device context using the docshell's widget.  would not require interface changes.

I am ok with any of these; I guess I'd probably lean more towards 1 because there's no chance of breaking something else in Gecko.

Boris, any preference?
Attachment #217643 - Flags: superreview?(bzbarsky)
Attachment #217643 - Flags: review?(bzbarsky)
Attachment #217643 - Flags: approval-branch-1.8.1?(bzbarsky)
Comment on attachment 217643 [details] [diff] [review]
back out the patch

Let's do this for now, yeah.  If needed, I'd think #2 should hopefully be safe... hopfully.  :(
Attachment #217643 - Flags: superreview?(bzbarsky)
Attachment #217643 - Flags: superreview+
Attachment #217643 - Flags: review?(bzbarsky)
Attachment #217643 - Flags: review+
Attachment #217643 - Flags: approval-branch-1.8.1?(bzbarsky)
Attachment #217643 - Flags: approval-branch-1.8.1+
backout checked in.
Status: NEW → RESOLVED
Closed: 15 years ago
Keywords: fixed1.8.1
Resolution: --- → FIXED
*** Bug 333214 has been marked as a duplicate of this bug. ***
The backout most definitely fixed it.
Status: RESOLVED → VERIFIED
verified with 2.0b2 builds from 0821
You need to log in before you can comment on or make changes to this bug.