Closed
Bug 64632
Opened 25 years ago
Closed 24 years ago
hr height < 0 - crash in printing, assert on display
Categories
(Core :: Layout, defect)
Tracking
()
mozilla0.9
People
(Reporter: jesup, Assigned: attinasi)
References
()
Details
(Keywords: crash, regression)
FreeBSD 4.1 20010105xx
Fresh pull; went to this site, registered (so it shows a list of digital
stations (sets a cookie so you don't need to register again), then clicked on
the print button. Requester came up, told it to print, boom.
The bug appears to be in nsHRFrame.cpp line 210:
thickness = aReflowState.mComputedHeight;
// fix up thickness based on noshade and mode. see bug 53568 and 54980
if (eCompatibility_NavQuirks == mode)
{
nscoord adjustment = aReflowState.mComputedBorderPadding.top +
aReflowState.mComputedBorderPadding.bottom;
thickness += adjustment; // adjust for -moz-bg-inset
PRBool noShadeAttribute = GetNoShade();
if (thickness != onePixel)
{
if (!noShadeAttribute) { // this makes us compatible with Nav4, and one
pixel taller than IE5
thickness += onePixel;
}
}
}
In this case, the thickness is -14; which is apparently from the moz-bg-inset.
mode is eCompatibility_Standard, which is why this doesn't get corrected. In
any case, however, the size should not be negative! I think there's a problem
with moz-bg-inset or it's use for HR's, or perhaps there shouldn't be a mode
test. See the bugs referenced above (bug 53568 and bug 54980).
Here are comments from the end of 53568. It appears my worries about it only
being compensated for in quirks mode are valid.
------- Additional Comments From Randell Jesup 2000-10-05 11:33 -------
Appears fixed on trunk FreeBSD 20001004xx
I looked at the patch - it appears to compensate for -moz-bg-inset within the HR
code. Is that the "correct" fix, or is -moz-bg-inset inherently incorrect?
Also, it looked as if the code only compensated in quirks mode. Is that right?
There's still a bug in rendering of noshade HR's with the endcaps, but that's
another issue. I think someone got way too fancy with making the rounded
endcaps....
I'm REALLY glad that it got fixed for the PR3 release - Not fixing it would have
been asking to be pilloried. I'm also glad I spent the time to track it through
the code.
------- Additional Comments From buster@netscape.com 2000-10-05 11:41 -------
Randell: I'm glad you pushed on this one, too!
You are correct, I compensate for the inset computation inside the HR reflow
code in quirks mode. That's what quirks mode is all about. This is to account
for Nav's bizzare sizing algorithm with HR heights, and Nav/IE's odd treatment
of HR's with respect to floaters. Basically, legacy behavior is to treat an HR
as a block element unless it's impacted by a floater, in which case it's treated
like an inline element. That's very tough for a CSS-compliant browser to
emulate.
This isn't necessary in standard mode at all, where HR's are block elements,
period.
Reporter | ||
Comment 1•25 years ago
|
||
Added crash, regression
Severity to major
Severity: normal → major
Keywords: crash,
regression
Reporter | ||
Comment 2•24 years ago
|
||
FreeBSD 4.1 20010306xx re-verified bug exists (assertion on display, didn't try
crashing it on print)
Assertions (10 of them for height < 0) can be seen at http://sharkyextreme.com
###!!! ASSERTION: Negative Height Result- very bad: 'mComputedHeight>=0', file
nsHTMLReflowState.cpp, line 2444
(height was -14 again, due to moz-bg-inset). Note that this page is NOT marked
as standard (though it does use some simple styles).
OS->All
Severity->critical (it's a crasher)
Changed subject
Related issue: on Linux ns4.7, shaded (normal) HR's are all 1 pixel too tall. I
suspect this code:
if (!noShadeAttribute) { // this makes us compatible with Nav4, and one pixel
taller than IE5
thickness += onePixel;
We're one pixel taller than ns4.7 (Linux). I suspect we're one pixel taller
than ns 4.x and ie5 on all platforms, and that this if should go away.
Again, I suggest that we remove this test:
// fix up thickness based on noshade and mode. see bug 53568 and 54980
if (eCompatibility_NavQuirks == mode)
I think that the border thickness (moz-bg-inset) needs to be compensated for in
all cases.
Severity: major → critical
OS: FreeBSD → All
Summary: Printing crashes mozilla due to hr height < 0 → hr height < 0 - crash in printing, assert on display
Comment 3•24 years ago
|
||
reassigning to attinasi and marking m0.9.
Target Milestone: --- → mozilla0.9
Assignee | ||
Comment 5•24 years ago
|
||
I think that bug 71210 covers the remaining issue here (the assert, which has
been commented out for now since the layout code now handels it correctly).
There is no longer a crash printing AFAICT. Please re-open is you are still
seeing the crash on a current build - thanks!
*** This bug has been marked as a duplicate of 71210 ***
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•