Closed Bug 4745 Opened 26 years ago Closed 26 years ago

Selecting print in Apprunner crashes system

Categories

(Core Graveyard :: Tracking, defect, P1)

x86
Windows 95
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: rubydoo123, Assigned: dcone)

References

Details

build: 1999040711 platform: win95, mac, linux expected: page to print what happens: on win95 the resources get sucked up until the system crashes, on mac the page spools uand app freezes, on linux the page just doesn't print. Tried this in viewer and the page prints. What you need to do to reproduce: use optimized builds select File|Print -- on win95 you can just hear it suck the life out of the system
Assignee: don → troy
I get a crash on printing whether I load this page inside of a XUL window or the viewer. Start the viewer, load bin/res/samples/contentframe.html, then try to print it. The PRE_CONDITIION below fails and the viewer dies. In nsWebShell: CreatePluginHost(aAllowPlugins); //mScrollPref = aScrolling; WEB_TRACE(WEB_TRACE_CALLS, ("nsWebShell::Init: this=%p", this)); // Initial error checking... NS_PRECONDITION(nsnull != aNativeParent, "null Parent Window"); if (nsnull == aNativeParent) { rv = NS_ERROR_NULL_POINTER; goto done; } // Create a document loader... if (nsnull != mParent) { nsIDocumentLoader* parentLoader; NTDLL! 77f76148() nsDebug::PreCondition(char * 0x020c888c, char * 0x020c8874, char * 0x020c884c, int 0x00000301) line 120 + 13 bytes nsWebShell::Init(nsWebShell * const 0x021e8120, void * 0x00000000, int 0x00000000, int 0x00000000, int 0x0000002d, int 0x00001770, nsScrollPreference nsScrollPreference_kAuto, int 0x00000001, int 0x00000000) line 769 + 32 bytes nsHTMLFrameInnerFrame::CreateWebShell(nsIPresContext & {...}, const nsSize & {width=0x0000006b height=0x00003840}) line 736 nsHTMLFrameInnerFrame::Reflow(nsHTMLFrameInnerFrame * const 0x021e7354, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x0012bbf0) line 771 + 19 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x021e7350, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x0012bbf0) line 388 + 28 bytes nsHTMLFrameOuterFrame::Reflow(nsHTMLFrameOuterFrame * const 0x021e7d74, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x0012bbf0) line 348 nsContainerFrame::ReflowChild(nsIFrame * 0x021e7d70, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x0012bbf0) line 388 + 28 bytes nsHTMLFramesetFrame::ReflowPlaceChild(nsIFrame * 0x021e7d70, nsIPresContext & {...}, const nsHTMLReflowState & {...}, nsPoint & {x=0x00000000 y=0x00000000}, nsSize & {width=0x0000006b height=0x00003840}, nsPoint * 0x0012bd54 {x=0x00000000 y=0x00000000}) line 751 nsHTMLFramesetFrame::Reflow(nsHTMLFramesetFrame * const 0x021e7674, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x019b0dcd) line 1143 nsLineLayout::ReflowFrame(nsIFrame * 0x021e7670, nsIFrame * * 0x0012dea8, unsigned int & 0x019b0dcd) line 837 nsBlockFrame::ReflowInlineFrame(nsBlockReflowState & {...}, nsLineBox * 0x021e7840, nsIFrame * 0x021e7670, unsigned char * 0x0012bfe0) line 2861 + 23 bytes nsBlockFrame::ReflowInlineFrames(nsBlockReflowState & {...}, nsLineBox * 0x021e7840, int * 0x0012c070) line 2742 + 24 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x021e7840, int * 0x0012c070) line 1964 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 1769 + 20 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x021e71f4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 1206 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x021e71f4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 465 + 28 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x021e71f0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 388 + 28 bytes nsPageFrame::Reflow(nsPageFrame * const 0x021e6e54, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 111 nsContainerFrame::ReflowChild(nsIFrame * 0x021e6e50, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 388 + 28 bytes nsSimplePageSequenceFrame::Reflow(nsSimplePageSequenceFrame * const 0x021e6de4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 216 nsContainerFrame::ReflowChild(nsIFrame * 0x021e6de0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 388 + 28 bytes ViewportFrame::Reflow(ViewportFrame * const 0x021e6c04, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 434 PresShell::InitialReflow(PresShell * const 0x021e6590, int 0x00002d00, int 0x00003ba0) line 903 DocumentViewerImpl::Print(DocumentViewerImpl * const 0x0146ff80) line 552 nsBrowserAppCore::Print(nsBrowserAppCore * const 0x01568830) line 1368 BrowserAppCorePrint(JSContext * 0x013fea10, JSObject * 0x01c28cf8, unsigned int 0x00000000, long * 0x01cace4c, long * 0x0012ea68) line 643 + 12 bytes js_Invoke(JSContext * 0x013fea10, unsigned int 0x00000000, int 0x00000000) line 650 + 26 bytes js_Interpret(JSContext * 0x013fea10, long * 0x0012f240) line 2183 + 15 bytes js_Invoke(JSContext * 0x013fea10, unsigned int 0x00000000, int 0x00000000) line 666 + 13 bytes js_Interpret(JSContext * 0x013fea10, long * 0x0012f9d4) line 2183 + 15 bytes js_Invoke(JSContext * 0x013fea10, unsigned int 0x00000001, int 0x00000000) line 666 + 13 bytes js_CallFunctionValue(JSContext * 0x013fea10, JSObject * 0x01c28db8, long 0x01c28dc0, unsigned int 0x00000001, long * 0x0012faf0, long * 0x0012faf8) line 735 + 15 bytes JS_CallFunctionValue(JSContext * 0x013fea10, JSObject * 0x01c28db8, long 0x01c28dc0, unsigned int 0x00000001, long * 0x0012faf0, long * 0x0012faf8) line 2369 + 29 bytes nsJSEventListener::HandleEvent(nsIDOMEvent * 0x021ca3b0) line 93 + 34 bytes nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent * 0x0012fcb0, nsIDOMEvent * * 0x0012fc44, unsigned int 0x00000003, nsEventStatus & nsEventStatus_eIgnore) line 555 + 21 bytes RDFElementImpl::HandleDOMEvent(RDFElementImpl * const 0x01598a70, nsIPresContext & {...}, nsEvent * 0x0012fcb0, nsIDOMEvent * * 0x0012fc44, unsigned int 0x00000001, nsEventStatus & nsEventStatus_eIgnore) line 2204 nsXULCommand::DoCommand(nsXULCommand * const 0x015a2d40) line 174 + 56 bytes nsXULCommand::MenuSelected(const nsMenuEvent & {...}) line 206 nsMenuItem::MenuSelected(const nsMenuEvent & {...}) line 305 nsWindow::ProcessMessage(unsigned int 0x00000111, unsigned int 0x0000000e, long 0x00000000, long * 0x0012fe60) line 1732 nsWindow::WindowProc(void * 0x00470c72, unsigned int 0x00000111, unsigned int 0x0000000e, long 0x00000000) line 478 + 27 bytes USER32! 77e71250()
Assignee: troy → nisheeth
The assert is in the web shell, and hence tha's why the bug is assigned to you. But, judging by the stack trace it may be IFRAME related
Assignee: nisheeth → law
I didn't realize that the webshell parent was being set to null in the BrowserAppCore
Priority: P3 → P1
Target Milestone: M4
Set target milestone to M4 and changed priority to P1. Bill, will this be fixed along with 3735?
I don't think the fix for #3735 will fix this. That fixes FindWebShellWithName but that's only called when you click on links with named targets. We might have to back off on the setting of the content frame's parent to 0. But doing so will break a fair number of web pages (with links targetted to _top, etc.).
QA Contact: 3853 → 3849
Status: NEW → ASSIGNED
I tried commenting out the code that reset's the content webshell's parent to 0. The result is that any attempt to load a page with frames crashes apprunner (somewhere in reflow). I tried resetting this webshell's parent back to the proper thing during print, but the same PRE_CONDITION check fails. So things are more complicated. I notice that the PRE_CONDITION doesn't check for a non-null webshell parent. Can somebody explain what's going on there and suggest a way to cause things to be right during printing? I think that might be easier than removing the line of code I wrote (setting the content webshell's parent to 0). Of course, if I remove my line of code then I might get to pawn this off on somebody else...
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
Resolved as FIXED. Matt says his fix for 4644 fixes this as well.
*** Bug 4812 has been marked as a duplicate of this bug. ***
Status: RESOLVED → REOPENED
using build 1999042108, the crash still occurs on win95, the details from the crash dialog box is this: APPRUNNER caused an invalid page fault in module RAPTORWEB.DLL at 014f:01c369b7.
I think the bug I fixed got put back in. I'll look next week.
Target Milestone: M4 → M5
Changed milestone to M5.
Assignee: law → dcone
Status: REOPENED → NEW
Component: Apprunner → other
Target Milestone: M5
Re-assigned to dcone.
Target Milestone: M5
Resolution: FIXED → ---
Status: NEW → ASSIGNED
Target Milestone: M5 → M6
This bug because FrameSets do not print-- or crash the system. Each frameset uses its own WebShell, this in turn tries to create a native window which obviously printers do not support.
on build 1999051008, using win95, the app still crashes. I did the following: selected print icon selected My Netsca[e selected file|preview selected file|print setup selected file|print here is the trace info: Trigger Reason: Access violation Call Stack: (Signature = RAPTORHTML.DLL + 0x13133 (0x019e3133) c76860bd) RAPTORHTML.DLL + 0x13133 (0x019e3133) RAPTORHTML.DLL + 0x12f2c (0x019e2f2c) ns_observer_proc [d:\builds\seamonkey\mozilla\gfx\src\nsImageRequest.cpp, line 126] XP_NotifyObservers [d:\builds\seamonkey\mozilla\modules\libutil\src\obs.c, line 260] il_pixmap_update_notify [d:\builds\seamonkey\mozilla\modules\libimg\src\if.cpp, line 309] il_flush_image_data [d:\builds\seamonkey\mozilla\modules\libimg\src\scale.cpp, line 236] ImgDCallbk::ImgDCBFlushImage [d:\builds\seamonkey\mozilla\modules\libimg\src\if.cpp, line 169] NSGIF3250.DLL + 0x2077 (0x08552077) NSGIF3250.DLL + 0x149a (0x0855149a) IL_StreamWrite [d:\builds\seamonkey\mozilla\modules\libimg\src\if.cpp, line 972] NetReaderImpl::Write [d:\builds\seamonkey\mozilla\modules\libimg\src\ilNetReader.cpp, line 95] ImageConsumer::OnDataAvailable [d:\builds\seamonkey\mozilla\gfx\src\nsImageNetContextAsync.cpp, line 234] nsDocumentBindInfo::OnDataAvailable [d:\builds\seamonkey\mozilla\webshell\src\nsDocLoader.cpp, line 1499] OnDataAvailableProxyEvent::HandleEvent [d:\builds\seamonkey\mozilla\network\module\nsNetThread.cpp, line 633] StreamListenerProxyEvent::HandlePLEvent [d:\builds\seamonkey\mozilla\network\module\nsNetThread.cpp, line 473] PL_HandleEvent [plevent.c, line 477] PL_ProcessPendingEvents [plevent.c, line 438] _md_EventReceiverProc [plevent.c, line 803] KERNEL32.DLL + 0x3663 (0xbff73663) KERNEL32.DLL + 0x22894 (0xbff92894) 0x00788c64 looking at CVS Blame and the particular area that crashed has not been edited
Status: ASSIGNED → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → FIXED
This seemed to be a bug printing frames, which is now fixed.
it is no longer crashing, marking verified
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.