Closed Bug 136185 Opened 22 years ago Closed 22 years ago

[FIX]Crash in print preview when viewing contents of local drive [@ CallQueryInterface]

Categories

(Core :: Print Preview, defect)

x86
All
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla1.0

People

(Reporter: lasse, Assigned: rods)

References

()

Details

(Keywords: crash, Whiteboard: [FIXED_ON_TRUNK][adt2])

Crash Data

Attachments

(1 file)

Mozilla crashes when selecting print preview while viewing contents of local 
drive, such as C:

Reproducible: Always

Steps to reproduce:

1. Type C: in the location bar and click enter.
2. Select Print Preview

Result: crash

This is 2002040803 on winXP.
Nice catch, crashing on linux 2002030510 when previewing file:///home/user/
TB4959039G
Keywords: crash
OS: Windows XP → All
Ups, build is 2002040510, sorry for the spam.
Same with 2002040803/Win2K -> TB4959062K
win2k stack trace:

CallQueryInterface(nsIPageSequenceFrame * 0x00000000, nsIFrame * * 0x0012d2f0) 
line 270 + 13 bytes
DocumentViewerImpl::CalcNumPrintableDocsAndPages(int & 0, int & 0) line 4469 + 
13 bytes
DocumentViewerImpl::SetupToPrintContent(nsIWebShell * 0x03a67ed8, 
nsIDeviceContext * 0x03a58bf0, nsIDOMWindowInternal * 0x00000000) line 4131
DocumentViewerImpl::DocumentReadyForPrinting() line 4847 + 44 bytes
DocumentViewerImpl::PrintPreview(DocumentViewerImpl * const 0x03e67710, 
nsIPrintSettings * 0x03e29bc0) line 6046 + 11 bytes
XPTC_InvokeByIndex(nsISupports * 0x03e67710, unsigned int 17, unsigned int 1, 
nsXPTCVariant * 0x0012d664) line 106
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode 
CALL_METHOD) line 2025 + 42 bytes
XPC_WN_CallMethod(JSContext * 0x01714868, JSObject * 0x03ad7ec8, unsigned int 1, 
long * 0x03e270bc, long * 0x0012d940) line 1266 + 14 bytes
js_Invoke(JSContext * 0x01714868, unsigned int 1, unsigned int 0) line 788 + 23 
bytes
js_Interpret(JSContext * 0x01714868, long * 0x0012e780) line 2745 + 15 bytes
js_Invoke(JSContext * 0x01714868, unsigned int 1, unsigned int 2) line 805 + 13 
bytes
js_InternalInvoke(JSContext * 0x01714868, JSObject * 0x03ad7a58, long 61700712, 
unsigned int 0, unsigned int 1, long * 0x0012e9d8, long * 0x0012e8a8) line 880 + 
20 bytes
JS_CallFunctionValue(JSContext * 0x01714868, JSObject * 0x03ad7a58, long 
61700712, unsigned int 1, long * 0x0012e9d8, long * 0x0012e8a8) line 3412 + 31 
bytes
nsJSContext::CallEventHandler(nsJSContext * const 0x02c611e8, void * 0x03ad7a58, 
void * 0x03ad7a68, unsigned int 1, void * 0x0012e9d8, int * 0x0012e9dc, int 0) 
line 1016 + 33 bytes
nsJSEventListener::HandleEvent(nsJSEventListener * const 0x02d1a9d0, nsIDOMEvent 
* 0x03e55d50) line 180 + 77 bytes
nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x02d1abd8, 
nsIDOMEvent * 0x03e55d50, nsIDOMEventTarget * 0x02d1aaa8, unsigned int 8, 
unsigned int 7) line 1217 + 20 bytes
nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x02d1ab08, 
nsIPresContext * 0x01721340, nsEvent * 0x0012f4ec, nsIDOMEvent * * 0x0012f39c, 
nsIDOMEventTarget * 0x02d1aaa8, unsigned int 7, nsEventStatus * 0x0012f538) line 
2207 + 36 bytes
nsXULElement::HandleDOMEvent(nsXULElement * const 0x02d1aaa0, nsIPresContext * 
0x01721340, nsEvent * 0x0012f4ec, nsIDOMEvent * * 0x0012f39c, unsigned int 1, 
nsEventStatus * 0x0012f538) line 3461
PresShell::HandleDOMEventWithTarget(PresShell * const 0x01737b30, nsIContent * 
0x02d1aaa0, nsEvent * 0x0012f4ec, nsEventStatus * 0x0012f538) line 6125 + 36 
bytes
nsMenuFrame::Execute() line 1677
nsMenuFrame::HandleEvent(nsMenuFrame * const 0x03e166e8, nsIPresContext * 
0x01721340, nsGUIEvent * 0x0012f90c, nsEventStatus * 0x0012f718) line 486
PresShell::HandleEventInternal(nsEvent * 0x0012f90c, nsIView * 0x03e1d500, 
unsigned int 1, nsEventStatus * 0x0012f718) line 6093 + 38 bytes
PresShell::HandleEvent(PresShell * const 0x01737b34, nsIView * 0x03e1d500, 
nsGUIEvent * 0x0012f90c, nsEventStatus * 0x0012f718, int 0, int & 1) line 6001 + 
25 bytes
nsViewManager::HandleEvent(nsView * 0x03dc3c28, nsGUIEvent * 0x0012f90c, int 0) 
line 2064
nsView::HandleEvent(nsViewManager * 0x0167a300, nsGUIEvent * 0x0012f90c, int 0) 
line 306
nsViewManager::DispatchEvent(nsViewManager * const 0x0167a300, nsGUIEvent * 
0x0012f90c, nsEventStatus * 0x0012f808) line 1869 + 23 bytes
HandleEvent(nsGUIEvent * 0x0012f90c) line 83
nsWindow::DispatchEvent(nsWindow * const 0x03dc3ce4, nsGUIEvent * 0x0012f90c, 
nsEventStatus & nsEventStatus_eIgnore) line 865 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f90c) line 886
nsWindow::DispatchMouseEvent(unsigned int 301, unsigned int 0, nsPoint * 
0x00000000) line 4710 + 21 bytes
ChildWindow::DispatchMouseEvent(unsigned int 301, unsigned int 0, nsPoint * 
0x00000000) line 4967
nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 10420323, long * 
0x0012fd20) line 3595 + 28 bytes
nsWindow::WindowProc(HWND__ * 0x002201a8, unsigned int 514, unsigned int 0, long 
10420323) line 1130 + 27 bytes
USER32! 77e02e98()
USER32! 77e030e0()
USER32! 77e05824()
nsAppShellService::Run(nsAppShellService * const 0x015862a8) line 309
main1(int 2, char * * 0x002830b0, nsISupports * 0x00000000) line 1415 + 32 bytes
main(int 2, char * * 0x002830b0) line 1763 + 37 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 77e87d08()
Summary: Crash in print preview when viewing contents of local drive → Crash in print preview when viewing contents of local drive [@ CallQueryInterface]
This is a XUL document and at the moment we can't print these.
Status: NEW → ASSIGNED
Keywords: nsbeta1
Target Milestone: --- → mozilla1.0
Summary: Crash in print preview when viewing contents of local drive [@ CallQueryInterface] → [FIX]Crash in print preview when viewing contents of local drive [@ CallQueryInterface]
The real fix is to enable the printing of XUL docs, which is what is crashing.

The best we can do right now is not print XUL Docs. This patch checks to see if
it is a XUL document and if it is it idsplay a dialog and and doesn't Print or
Print Preview.
nsbeta1+
Keywords: nsbeta1nsbeta1+
Yikes. So, why can't we print XUL docs? And what about XML docs in general? Can
somebody please attach the XUL doc in question as an attachment - I'm curious
about how we display it in non-printing presentations.
Attachment #78598 - Flags: superreview+
Comment on attachment 78598 [details] [diff] [review]
patch (stops the crash)

sr=attinasi, but we need a new bug (unless one already exists, in which case it
should be stated in this bug) for making the XUL changes needed to support
printing, and the code added by this patch should be marked as temporary
pending the new bug. In the long run we need to support printing XUL docs, me
thinks.
Comment on attachment 78598 [details] [diff] [review]
patch (stops the crash)

r=dcone
Attachment #78598 - Flags: review+
fixed on trunk
Whiteboard: [trunk]
Whiteboard: [trunk] → [trunk][adt2]
Does this mean we can't print XUL docs or any XHTML docs which contain XUL
widgets ?
Whiteboard: [trunk][adt2] → [FIXED_ON_TRUNK][adt2]
sujay: Could you verify the fix on the trunk? Thanks!
WinXP, 2002041203:

Although the crash is "fixed" there are still issues:

* When selecting Print Preview the dialog is displayed, but then it actually
goes into print preview, contrary to what rods says in comment 6. 
* Page Setup is available - should be disabled.
* View Source is available - shows a blank page
* Save page is available, and it "works". The page saved is a text file with no
extension containing something like this:
300: file:///c:/
200: filename content-length last-modified file-type
201: AUTOEXEC.001 134 Wed,%2003%20Jan%202001%2002:01:00%20GMT FILE 
201: CONFIG.SYS 27 Sun,%2025%20Nov%202001%2001:50:10%20GMT FILE 
201: Documents%20and%20Settings 0 Thu,%2006%20Dec%202001%2020:01:25%20GMT DIRECTORY 
etc

The temporary fix should disable these menu items. Otherwise it looks a bit
silly. Different bugs should probably be filed on these issues, I'll leave it
for others to decide. 

Attanasi: Did you file a new bug, as mentioned in comment 9? 

FWIW the ability to print the contents of a local drive or folder is a nice
feature of 4.x which Windows/IE does not have.
fixed
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Opened Bug 137526 for printing XUL documents
verified in 4/15 trunk build. no more crash.

opened bug 135761 on going into PP mode anyway even though
you are warned that you can't PP that page.

Lasse, please file other bugs on issues you are mentioning
if they are not covered by bug 137526 which Rod opened or
the one I opened = bug 135761
Status: RESOLVED → VERIFIED
OK, filed bug 137586 for disabling menu items. 

Sujay: you probably meant bug 137651.
Keywords: adt1.0.0
Please get l10n approval before we plus this.
What UI is changing and how much?
thanks
The UI change is a dialog saying "We are unable to Print or Print Preview this
page" when selecting either print or print preview while viewing a XUL document
(like a list of local folders). 

You can avoid the l10n issues by fixing bug 137586 which is for disabling the
menu items instead of giving a warning. Should probably be done for the NS
release if the real fix isn't done (bug 137526).

And by the way, the bug number we are trying to say in comment 17 and comment 18
is  bug 137561, and it's fixed.
Michele, can you comment on the l10n changes mentioned in the previous comment?
L10N is NOT taking any UI chnages, after today. If you can check in the string
changes into the branch today, then pls do so. If not, we should look at fixing
the crash, without UI for the user for Beta, and check UI changes in for RTM. - ADT
Did the string changes get checked into the branch yesterday. If not, then we
should just address the crash, and check the UI changes in for RTM
*** Bug 139156 has been marked as a duplicate of this bug. ***
Comment on attachment 78598 [details] [diff] [review]
patch (stops the crash)

a=scc for checkin to the mozilla 1.0 branch
Attachment #78598 - Flags: approval+
Please do not check this into the branch until after beta ships. thanks
The ADT will take this fix if you can create a patch with no string changes. 
For the beta, I think it would be better to fail without any feedback than to
crash so it would be great if this could be done.  Adding adt1.0.0+ pending
removing the strings.  If the change in the patch consists of much more than
removing the strings and removing the calls to show the error message, please
renominate as adt1.0.0.
Keywords: adt1.0.0adt1.0.0+
thank you - sounds like a good plan from l10n standpoint. 
I can check in all but the printing.properties changes and if there is an error
it will show the "default" message string. Then after beta I can check in the
properties file.
all but the properties file has been checked in, will wait until after beta to
check in properties file, so I am not marking this fixed1.0.0 yet
completely fixed on branch
Keywords: fixed1.0.0
Can someone check if bug 108846 is related to that one? It's not the same
symptoms (hang vs crash) but they may be related to the same cause (that we
shouldn't try to print XUL documents).
verified in 5/3 branch build.
Keywords: verified1.0.0
Crash Signature: [@ CallQueryInterface]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: