Closed
Bug 153785
Opened 23 years ago
Closed 23 years ago
Table align left renders correctly on screen, suppresses pages after pg1 from previewing/printing
Categories
(Core :: Printing: Output, defect, P2)
Tracking
()
RESOLVED
FIXED
mozilla1.1alpha
People
(Reporter: Joern.Becker, Assigned: karnaze)
References
()
Details
(Keywords: testcase)
Attachments
(6 files, 2 obsolete files)
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.1a) Gecko/20020611
BuildID: 2002061104
In some cases and circumstands Mozilla does not print (even in the preview of a
page) the pages after page 1 of a html-document. In some cases it helps to vary
the size (in %) of the document being printed, but in the above example nothing
helps ?!
In the Browser itself all looks fine, but printing is not possible (only page 1
is printed.
Reproducible: Always
Steps to Reproduce:
1.Just load the given website
2.and choose Print Preview
3.
Actual Results: Only the first page is printed, the second page is just empty
and no other pages are printed at all.
Expected Results: Print all the pages
Comment 1•23 years ago
|
||
Pared-down code that highlights the problem.
The page content (the right side) is within a overall table that is aligned
left. The main text is in a subtable, separated by a br clear=all from another
table that holds the footer links.
There is some kind of interaction between the overall table left align and the
br all clear going on. If you remove either of those from the code, the page
prints correctly (though removing the br clear all screws up the intended
layout).
Comment 2•23 years ago
|
||
Confirming in 2002062308 PC Win98, adding keyword TESTCASE.
Comment 3•23 years ago
|
||
Updated summary.
Old summary: do not print page 2 till n of a longer html site
Summary: do not print page 2 till n of a longer html site → Table align left renders correctly on screen, suppresses pages after pg1 from previewing/printing
Assignee | ||
Updated•23 years ago
|
Severity: major → critical
Status: NEW → ASSIGNED
Priority: -- → P2
Target Milestone: --- → mozilla1.0.1
Assignee | ||
Comment 5•23 years ago
|
||
Assignee | ||
Comment 6•23 years ago
|
||
I will be attaching a patch. I filed bug 157147 to deal with the problem where
the left image (the one containing HOME, POLITIK, etc) is not showing up in
print/print preview.
Assignee | ||
Comment 7•23 years ago
|
||
Assignee | ||
Comment 8•23 years ago
|
||
Assignee | ||
Comment 9•23 years ago
|
||
Comment 10•23 years ago
|
||
With the changes from attachment 91137 [details] [diff] [review] in my tree, I hit this assertion:
###!!! ASSERTION: hello: 'firstFrame != lastPlaceholder', file
X:\mozilla\layout
\html\base\src\nsBlockFrame.cpp, line 4593
Break: at file X:\mozilla\layout\html\base\src\nsBlockFrame.cpp, line 4593
when print previewing this test case, then the browser hangs. It seems to be an
infinite loop in nsBlockFrame::DrainOverflowLines() because the placeholder's
mNextSibling is pointing to itself.
Here's the stack:
nsIFrame::GetNextSibling(nsIFrame * * 0x0012bd20) line 690
nsBlockFrame::DrainOverflowLines(nsIPresContext * 0x03b63860) line 4666
nsBlockFrame::Reflow(nsBlockFrame * const 0x03b87124, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 863
nsBlockReflowContext::DoReflowBlock(nsHTMLReflowState & {...}, nsReflowReason
eReflowReason_Initial, nsIFrame * 0x03b87124, const nsRect & {...}, int 0,
nsCollapsingMargin & {...}, int 1, nsMargin & {...}, unsigned int & 0) line 569
+ 36 bytes
nsBlockReflowContext::ReflowBlock(nsIFrame * 0x03b87124, const nsRect & {...},
int 0, nsCollapsingMargin & {...}, int 1, nsMargin & {...}, unsigned int & 0)
line 345 + 50 bytes
nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineList_iterator
{...}, int * 0x0012c9ec) line 3288 + 59 bytes
nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineList_iterator {...},
int * 0x0012c9ec, int 0) line 2471 + 27 bytes
nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2253 + 31 bytes
nsBlockFrame::Reflow(nsBlockFrame * const 0x03b87254, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 950 + 15 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x03b87254, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int
0, int 0, unsigned int 0, unsigned int & 0) line 807 + 31 bytes
nsPageContentFrame::Reflow(nsPageContentFrame * const 0x03b8720c,
nsIPresContext * 0x03b63860, nsHTMLReflowMetrics & {...}, const
nsHTMLReflowState & {...}, unsigned int & 0) line 97
nsContainerFrame::ReflowChild(nsIFrame * 0x03b8720c, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int
1170, int 1170, unsigned int 0, unsigned int & 0) line 807 + 31 bytes
nsPageFrame::Reflow(nsPageFrame * const 0x03b871a0, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 222
nsContainerFrame::ReflowChild(nsIFrame * 0x03b871a0, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int
360, int 17520, unsigned int 0, unsigned int & 0) line 807 + 31 bytes
nsSimplePageSequenceFrame::Reflow(nsSimplePageSequenceFrame * const 0x03b48ab8,
nsIPresContext * 0x03b63860, nsHTMLReflowMetrics & {...}, const
nsHTMLReflowState & {...}, unsigned int & 0) line 437
nsBoxToBlockAdaptor::Reflow(nsBoxLayoutState & {...}, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0, int 0, int 0, int 12240, int 15840, int 1) line 882
nsBoxToBlockAdaptor::DoLayout(nsBoxToBlockAdaptor * const 0x03b7c9cc,
nsBoxLayoutState & {...}) line 625 + 46 bytes
nsBox::Layout(nsBox * const 0x03b7c9cc, nsBoxLayoutState & {...}) line 1062
nsScrollBoxFrame::DoLayout(nsScrollBoxFrame * const 0x03b49038,
nsBoxLayoutState & {...}) line 394
nsBox::Layout(nsBox * const 0x03b49038, nsBoxLayoutState & {...}) line 1062
nsContainerBox::LayoutChildAt(nsBoxLayoutState & {...}, nsIBox * 0x03b49038,
const nsRect & {...}) line 645 + 16 bytes
nsGfxScrollFrameInner::LayoutBox(nsBoxLayoutState & {...}, nsIBox * 0x03b49038,
const nsRect & {...}) line 1085 + 17 bytes
nsGfxScrollFrameInner::Layout(nsBoxLayoutState & {...}) line 1240
nsGfxScrollFrame::DoLayout(nsGfxScrollFrame * const 0x03b48e90,
nsBoxLayoutState & {...}) line 1093 + 15 bytes
nsBox::Layout(nsBox * const 0x03b48e90, nsBoxLayoutState & {...}) line 1062
nsBoxFrame::Reflow(nsBoxFrame * const 0x03b48e58, nsIPresContext * 0x03b63860,
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 1004
nsGfxScrollFrame::Reflow(nsGfxScrollFrame * const 0x03b48e58, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 780 + 25 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x03b48e58, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int
0, int 0, unsigned int 0, unsigned int & 0) line 807 + 31 bytes
ViewportFrame::Reflow(ViewportFrame * const 0x03b48a7c, nsIPresContext *
0x03b63860, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 577
PresShell::InitialReflow(PresShell * const 0x03b46068, int 12240, int 15840)
line 2864
DocumentViewerImpl::ReflowPrintObject(PrintObject * 0x03b62758, int 1) line
3936 + 43 bytes
DocumentViewerImpl::ReflowDocList(PrintObject * 0x03b62758, int 0, int 1) line
3691 + 16 bytes
DocumentViewerImpl::SetupToPrintContent(nsIWebShell * 0x038db860,
nsIDeviceContext * 0x038a1638, nsIDOMWindowInternal * 0x00000000) line 4475 +
41 bytes
DocumentViewerImpl::DocumentReadyForPrinting() line 5334 + 47 bytes
DocumentViewerImpl::FinishPrintPreview() line 6649 + 8 bytes
DocumentViewerImpl::PrintPreview(DocumentViewerImpl * const 0x03b139f0,
nsIPrintSettings * 0x03af9590, nsIDOMWindow * 0x00000000,
nsIWebProgressListener * 0x03b25ecc) line 6632 + 11 bytes
XPTC_InvokeByIndex(nsISupports * 0x03b139f0, unsigned int 14, unsigned int 3,
nsXPTCVariant * 0x0012e838) line 106
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode
CALL_METHOD) line 1994 + 42 bytes
XPC_WN_CallMethod(JSContext * 0x01a4bd08, JSObject * 0x038d9080, unsigned int
3, long * 0x03adefa8, long * 0x0012eb14) line 1266 + 14 bytes
js_Invoke(JSContext * 0x01a4bd08, unsigned int 3, unsigned int 0) line 788 + 23
bytes
js_Interpret(JSContext * 0x01a4bd08, long * 0x0012f954) line 2743 + 15 bytes
js_Invoke(JSContext * 0x01a4bd08, unsigned int 1, unsigned int 2) line 805 + 13
bytes
js_InternalInvoke(JSContext * 0x01a4bd08, JSObject * 0x013def88, long 51937328,
unsigned int 0, unsigned int 1, long * 0x0388e578, long * 0x0012fa7c) line 880
+ 20 bytes
JS_CallFunctionValue(JSContext * 0x01a4bd08, JSObject * 0x013def88, long
51937328, unsigned int 1, long * 0x0388e578, long * 0x0012fa7c) line 3428 + 31
bytes
nsJSContext::CallEventHandler(nsJSContext * const 0x0302c8c8, void *
0x013def88, void * 0x03188030, unsigned int 1, void * 0x0388e578, int *
0x0012fb14, int 0) line 1042 + 33 bytes
GlobalWindowImpl::RunTimeout(nsTimeoutImpl * 0x0388e4f0) line 4571 + 84 bytes
GlobalWindowImpl::TimerCallback(nsITimer * 0x03ad1520, void * 0x0388e4f0) line
4922
nsTimerImpl::Fire() line 339 + 17 bytes
handleTimerEvent(TimerEventType * 0x036eb0c0) line 405
PL_HandleEvent(PLEvent * 0x036eb0c0) line 596 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x01393fa0) line 526 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x001902d8, unsigned int 49539, unsigned int 0,
long 20529056) line 1077 + 9 bytes
USER32! 77e11b60()
USER32! 77e11cca()
USER32! 77e183f1()
nsAppShellService::Run(nsAppShellService * const 0x018dbe60) line 452
main1(int 1, char * * 0x003074d8, nsISupports * 0x00000000) line 1456 + 32
bytes
main(int 1, char * * 0x003074d8) line 1805 + 37 bytes
mainCRTStartup() line 338 + 17 bytes
Assignee | ||
Comment 11•23 years ago
|
||
Attachment #91137 -
Attachment is obsolete: true
Comment 12•23 years ago
|
||
Isn't this a duplicate of bug 85768?
Comment 13•23 years ago
|
||
Comment on attachment 91389 [details] [diff] [review]
revised patch to reset overflow floaters after they have been used
r= alexsavulov
sorry i could not get earlyer to this, i started to review it last friday, but
then i got cought with other stuff
Attachment #91389 -
Flags: review+
Comment 14•23 years ago
|
||
Comment on attachment 91389 [details] [diff] [review]
revised patch to reset overflow floaters after they have been used
karnaze and I went over this by phone. I'm giving him a conditional sr=kin with
the following provisions we discussed:
1. Put back the code he added in PushLines() back into Reflow().
2. Modify PlaceLine() so that it returns a bool of whether or not it did
a push, instead of passing in an aLastOverflowPlaceholder arg, since
this will keep the knowledge of the last overflow placeholder entirely
in the caller.
3. Remove this change:
@@ -3303,6 +3366,7 @@
// Advance to next line since some of the block fit. That way
// only the following lines will be pushed.
+ ::UndoPlaceholders(aState, lastPlaceholder);
PushLines(aState, aLine);
aState.mReflowStatus = NS_FRAME_NOT_COMPLETE;
*aKeepReflowGoing = PR_FALSE;
Attachment #91389 -
Flags: superreview+
Comment 15•23 years ago
|
||
Comment on attachment 91389 [details] [diff] [review]
revised patch to reset overflow floaters after they have been used
a=asa (on behalf of drivers) for checkin to 1.1
Attachment #91389 -
Flags: approval+
Assignee | ||
Comment 16•23 years ago
|
||
Attachment #91389 -
Attachment is obsolete: true
Assignee | ||
Comment 17•23 years ago
|
||
The patch is in the trunk. I should have reversed the meaning of the return
value of PlaceLine in the patch; I'll change it later.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Target Milestone: mozilla1.0.1 → mozilla1.1alpha
Blocks: 85768
You need to log in
before you can comment on or make changes to this bug.
Description
•