Closed Bug 390668 Opened 17 years ago Closed 17 years ago

crash [@ gfxASurface::GetType (_moz_cairo_scaled_font_status)] with Tab Sidebar installed

Categories

(Core :: Graphics, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: Peter6, Assigned: vlad)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a7pre) Gecko/2007080204 Minefield/3.0a7pre ID:2007080204

repro:
Install TabSidebar (latest @ http://www.oxymoronical.com/web/firefox/TabSidebar/development )
restart and press ctrl+shift+e (to get the TabPreview sidebar)
Open http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox

result:
The page loads and displays... untill the final reflow when it crashes FF

this regressed after Cairo 1.5 landed

breakpad: 5e38c0fd-4119-11dc-a709-001a4bd43ed6
Blocks: 383960
0  	_moz_cairo_scaled_font_status  	
1 	gfxASurface::GetType() 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\gfx\thebes\src\gfxasurface.cpp:199
2 	gfxWindowsNativeDrawing::BeginNativeDrawing() 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\gfx\thebes\src\gfxwindowsnativedrawing.cpp:87
3 	nsNativeThemeWin::ClassicDrawWidgetBackground(nsIRenderingContext*, nsIFrame*, unsigned char, nsRect const&, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\widget\src\windows\nsnativethemewin.cpp:2013
4 	nsNativeThemeWin::DrawWidgetBackground(nsIRenderingContext*, nsIFrame*, unsigned char, nsRect const&, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\widget\src\windows\nsnativethemewin.cpp:835
5 	nsCSSRendering::PaintBackgroundWithSC(nsPresContext*, nsIRenderingContext&, nsIFrame*, nsRect const&, nsRect const&, nsStyleBackground const&, nsStyleBorder const&, nsStylePadding const&, int, nsRect*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nscssrendering.cpp:3418
6 	nsCSSRendering::PaintBackground(nsPresContext*, nsIRenderingContext&, nsIFrame*, nsRect const&, nsRect const&, nsStyleBorder const&, nsStylePadding const&, int, nsRect*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nscssrendering.cpp:3302
7 	nsDisplayBackground::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nsdisplaylist.cpp:532
8 	nsDisplayList::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nsdisplaylist.cpp:292
9 	PresShell::RenderDocument(nsRect const&, int, int, unsigned int, gfxContext*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nspresshell.cpp:4790
10 	nsCanvasRenderingContext2D::DrawWindow(nsIDOMWindow*, int, int, int, int, nsAString_internal const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\content\canvas\src\nscanvasrenderingcontext2d.cpp:2344
11 	NS_InvokeByIndex_P 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp:101
12 	JS_SuspendRequest 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\js\src\jsapi.c:940
13 	@0x285fdef 	
Severity: normal → critical
Keywords: crash
Summary: crash with Tab Sidebar installed → crash [@ _moz_cairo_scaled_font_status] with Tab Sidebar installed
I get it w/o the extension aswell

It seems to happen on pages that were zoomed in/out using ctrl++/ctrl+-.
These crashes seem random though, sometimes they occur, sometimes not.

http://crash-stats.mozilla.com/report/index/04a96517-411c-11dc-a03f-001a4bd43e5c

0  	_moz_cairo_scaled_font_status  	
1 	gfxASurface::GetType() 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\gfx\thebes\src\gfxasurface.cpp:199
2 	gfxWindowsNativeDrawing::BeginNativeDrawing() 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\gfx\thebes\src\gfxwindowsnativedrawing.cpp:87
3 	nsNativeThemeWin::ClassicDrawWidgetBackground(nsIRenderingContext*, nsIFrame*, unsigned char, nsRect const&, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\widget\src\windows\nsnativethemewin.cpp:2013
4 	nsNativeThemeWin::DrawWidgetBackground(nsIRenderingContext*, nsIFrame*, unsigned char, nsRect const&, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\widget\src\windows\nsnativethemewin.cpp:835
5 	nsCSSRendering::PaintBackgroundWithSC(nsPresContext*, nsIRenderingContext&, nsIFrame*, nsRect const&, nsRect const&, nsStyleBackground const&, nsStyleBorder const&, nsStylePadding const&, int, nsRect*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nscssrendering.cpp:3418
6 	nsCSSRendering::PaintBackground(nsPresContext*, nsIRenderingContext&, nsIFrame*, nsRect const&, nsRect const&, nsStyleBorder const&, nsStylePadding const&, int, nsRect*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nscssrendering.cpp:3302
7 	nsDisplayBackground::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nsdisplaylist.cpp:532
8 	nsDisplayList::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nsdisplaylist.cpp:292
9 	PresShell::RenderDocument(nsRect const&, int, int, unsigned int, gfxContext*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\layout\base\nspresshell.cpp:4790
10 	nsCanvasRenderingContext2D::DrawWindow(nsIDOMWindow*, int, int, int, int, nsAString_internal const&) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\content\canvas\src\nscanvasrenderingcontext2d.cpp:2344
11 	NS_InvokeByIndex_P 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp:101
12 	JS_SuspendRequest 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\js\src\jsapi.c:940
13 	ComputeThis 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\js\src\jsinterp.c:579
14 	PR_DestroyTrace 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\nsprpub\pr\src\misc\prtrace.c:348
15 	PR_Unlock 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\nsprpub\pr\src\threads\combined\prulock.c:355
16 	nsScriptSecurityManager::CheckPropertyAccessImpl(unsigned int, nsIXPCNativeCallContext*, JSContext*, JSObject*, nsISupports*, nsIURI*, nsIClassInfo*, char const*, long, void**) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\caps\src\nsscriptsecuritymanager.cpp:855
17 	js_Invoke 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\js\src\jsinterp.c:1378
18 	nsBaseHashtable<nsISupportsHashKey, nsTemplateMatch*, nsTemplateMatch*>::Put(nsISupports*, nsTemplateMatch*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\obj-fx-trunk\dist\include\xpcom\nsbasehashtable.h:145
19 	nsCycleCollectingAutoRefCnt::decr(nsISupports*) 	e:\builds\tinderbox\fx-trunk\winnt_5.2_depend\mozilla\obj-fx-trunk\dist\include\xpcom\nsisupportsimpl.h:162
20 	@0x12f6ef
Maybe also see Bug 390720 on this.
From my post in the daily Trunk thread, re: these type crashes:

I just installed your Ctrl-Tab add-on and restarted Minefield. When I tried to use "Ctrl+Tab" to switch between different tabs, boom! Minefield crashed. Having just placed a copy of dbghelp.dll in my program folder I was able to get my first occasion of crash reporter. (I'm on Windoze 2000 OS.) My Trunk build is Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a8pre) Gecko/2007080505 Minefield/3.0a8pre ID:2007080505.

I will try to replicate the crash, but wanted to post this for your information.

Edited to add: Crash Report ID's with comments
http://crash-stats.mozilla.com/report/index/dd201cdc-4383-11dc-8a48-001a4bd46e84 (First)
http://crash-stats.mozilla.com/report/index/c8e735ee-4385-11dc-946e-001a4bd43ef6 (Second)
http://crash-stats.mozilla.com/report/index/1682d1e8-4386-11dc-a6b7-001a4bd43ef6 (with only Ctrl-Tab enabled)
http://crash-stats.mozilla.com/report/index/b4d0bb94-4386-11dc-ac08-001a4bd43ed6 (an additional one)
http://crash-stats.mozilla.com/report/index/798cfaf3-4386-11dc-943d-001a4bd46e84 (and another)

Hope this helps.
Flags: blocking1.9?
Assignee: nobody → vladimir
Flags: blocking1.9? → blocking1.9+
Summary: crash [@ _moz_cairo_scaled_font_status] with Tab Sidebar installed → crash [@ gfxASurface::GetType (_moz_cairo_scaled_font_status)] with Tab Sidebar installed
Attached patch patchSplinter Review
Problem is that the win32 surface doesn't implement clone_similar, and so when we have to do a deep clone of the clip (which has a mask set, because we're clipping with a scale when we drawWindow), we blow up -- because there's no fallback from clone_similar.  SO, this implements that fallback.

Also adds some bulletproofing code so that we don't crash in this case if it's ever hit for some reason later on.

Waiting for review from cairo folks as well.
Attachment #275565 - Flags: review?(pavlov)
Attachment #275565 - Flags: review?(pavlov) → review+
Checked in.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a8pre) Gecko/2007080912 Minefield/3.0a8pre ID:2007080912

VERIFIED
Status: RESOLVED → VERIFIED
Crash Signature: [@ gfxASurface::GetType (_moz_cairo_scaled_font_status)]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: