Closed Bug 4745 Opened 25 years ago Closed 25 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: 25 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: 25 years ago25 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.