Closed
Bug 361091
Opened 18 years ago
Closed 18 years ago
block nested in inline element doesn't wrap with float right
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
FIXED
People
(Reporter: phiw2, Unassigned)
References
()
Details
(Keywords: regression, testcase)
Attachments
(3 files)
42.46 KB,
image/png
|
Details | |
422 bytes,
text/html
|
Details | |
2.68 KB,
patch
|
Details | Diff | Splinter Review |
A block element is (incorrectly ) nested inside an inline element: e.g. <a href=""><h5>text</h5></a>.
The text doesn't wrap in the presence of right floated elements
In the example URL, scroll down a little and watch the left column, under 'sports'.
(testcase coming)
Other example url: http://justworldnews.org/ the big fat numbers belong to the right column.
Regression:
Ok with Camino Version 2006111605 (1.2+)
Fails Version 2006111622 (1.2+)
Fails in Minefield:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.9a1) Gecko/20061116 Minefield/3.0a1 ID:2006111612
![]() |
Reporter | |
Comment 1•18 years ago
|
||
![]() |
Reporter | |
Updated•18 years ago
|
Attachment #245866 -
Attachment mime type: image/jpeg → image/png
![]() |
Reporter | |
Comment 2•18 years ago
|
||
![]() |
Reporter | |
Comment 3•18 years ago
|
||
Comment 4•18 years ago
|
||
I can see this on Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20061117 Minefield/3.0a1 ID:2006111704 [cairo]
![]() |
||
Comment 5•18 years ago
|
||
Yeah, this looks like bug 354600. It seems that I don't have as good an idea of what space managers do as I thought... In this case, having its own space manager causes the block to ignore floats that are outside it.
The problem, of course, is that when the block is initially created it has an inline parent. It's only when we get back into ConstructInline that we backtrack and put it in a different place.
I suppose we could keep track of whether we set these flags in this code, either in a member or in more block state flags (I think there are some free ones like 0x10000000 and 0x80000000), and unset the flags as needed when the parent changes, per that XXX comment.
Or we could just back out bug 354600, I guess. :(
roc, dbaron, thoughts?
Blocks: 354600
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking1.9?
Keywords: regression
OS: Mac OS X 10.3 → All
Hardware: Macintosh → All
Another option is to undo 354600 and instead, replace all checks of the space manager and margin-root flags with wrapper functions that return true when the flag is set OR the parent is not a block.
![]() |
||
Comment 7•18 years ago
|
||
Hmm.... True. That might work better, though it'll be a bit more expensive. Are any of those checks particularly perf-sensitive?
Comment 8•18 years ago
|
||
It happens on most article from www.smh.com.au too
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a1) Gecko/20061118 Minefield/3.0a1 ID:2006111804 [cairo]
(In reply to comment #7)
> Hmm.... True. That might work better, though it'll be a bit more expensive.
> Are any of those checks particularly perf-sensitive?
I don't think so. We can do them just once per nsBlockFrame::Reflow and store the results in the nsBlockReflowState, using that elsewhere.
![]() |
||
Comment 10•18 years ago
|
||
Fixed by backing out bug 354600. I'll make sure to test that testcase before
landing again.
Status: NEW → RESOLVED
Closed: 18 years ago
Flags: blocking1.9? → in-testsuite?
Resolution: --- → FIXED
![]() |
||
Comment 11•18 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•