Closed Bug 423306 Opened 15 years ago Closed 14 years ago

use containing block (not parent inline) direction for deciding which side margin to ignore

Categories

(Core :: Layout: Block and Inline, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9.1a1

People

(Reporter: dbaron, Assigned: dbaron)

References

Details

(Keywords: css2)

Attachments

(1 file)

Bug 328181 made us use the containing block direction instead of the element's direction when deciding which side margin to ignore for elements where one side margin has to be ignored due to overconstrained CSS2.1 10.3.3 calculations.  However, this fix didn't work right in the case where the block was inside an inline, because we (internally) treat the containing block as the :-moz-anonymous-block pseudo-element, whereas the spec says, I think, that the direction used should be that of the actual block.

I think this is the only reason we currently fail layout/reftests/box-properties/CSS21-t100303.xhtml .
Possible solutions: 

 * make the :-moz-anonymous-block have a parent style context of its frame tree parent rather than its corresponding inline (which I think it has now)

 * make the nsHTMLReflowState code explicitly skip frames with these pseudo-elements
Attached patch patchSplinter Review
This is more general than one of the above solutions and much simpler than the other.

Reftests pass (except zwnj-02.html, which always fails for me).
Assignee: nobody → dbaron
Status: NEW → ASSIGNED
Attachment #314791 - Flags: superreview?(roc)
Attachment #314791 - Flags: review?(roc)
Attachment #314791 - Flags: superreview?(roc)
Attachment #314791 - Flags: superreview+
Attachment #314791 - Flags: review?(roc)
Attachment #314791 - Flags: review+
http://hg.mozilla.org/mozilla-central/index.cgi/rev/e30af5899328

-> fixed (for 1.9.1)
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0
Target Milestone: mozilla2.0 → mozilla1.9.1
Target Milestone: mozilla1.9.1 → mozilla1.9.1a1
Depends on: 462844
You need to log in before you can comment on or make changes to this bug.