Closed
Bug 1140579
Opened 10 years ago
Closed 10 years ago
<legend> doesn't get a legend frame when inside a display:contents parent
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
FIXED
People
(Reporter: MatsPalmgren_bugz, Assigned: MatsPalmgren_bugz)
References
Details
(Keywords: testcase)
Attachments
(2 files)
4.27 KB,
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
9.83 KB,
patch
|
bzbarsky
:
feedback+
|
Details | Diff | Splinter Review |
NOTE: Firefox may crash if you try to do this before bug 1140160 is fixed
<fieldset><div style="display:contents"><legend>legend</legend></div></fieldset>
The legend above should display the same as if the <div> did not exist.
Assignee | ||
Comment 1•10 years ago
|
||
This is what prevents <legend> from getting a legend frame in this case.
We don't actually need to check that the parent *content* is a <fieldset>
here, since IsFrameForFieldSet already does the relevant test which
is that the parent *frame* we're inserting to is a fieldset frame
(or some pseudo frame thereof):
http://hg.mozilla.org/mozilla-central/annotate/7d85ac833cff/layout/base/nsCSSFrameConstructor.cpp#l3442
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d0fc78fa1915
Attachment #8574217 -
Flags: review?(roc)
Attachment #8574217 -
Flags: review?(roc) → review+
Assignee | ||
Comment 2•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Comment 3•10 years ago
|
||
This is just backing out the fix for bug 497519, no? Why is that OK, exactly?
Flags: needinfo?(mats)
Comment 4•10 years ago
|
||
And note that the comment in the block in question discussed this, but wasn't adjusted in this patch, so now it no longer reflects the code either....
Assignee | ||
Comment 5•10 years ago
|
||
(In reply to Not doing reviews right now from comment #3)
> This is just backing out the fix for bug 497519, no? Why is that OK,
> exactly?
It reverted the 2nd part of bug 497519, yes.
I'm guessing that part addressed this assertion:
###!!! ASSERTION: Legends should not be positioned and should not float:
'!disp->IsAbsolutelyPositioned() && !disp->IsFloating()',
file layout/forms/nsLegendFrame.cpp, line 53
which still exists in the code:
http://mxr.mozilla.org/mozilla-central/source/layout/forms/nsLegendFrame.cpp#16
I can't reproduce that (with the check removed) in any of the existing
tests, or the new ones in this patch, so I'm a bit puzzled how we
reached NS_NewLegendFrame given that we already had these checks at
that time (as you can see in the attached patch in bug 497519):
aStyleContext->StyleDisplay()->IsFloatingStyle()
aStyleContext->StyleDisplay()->IsAbsolutelyPositionedStyle()
So, it turns out those checks comes from bug 269908, fixed by @tn
around the same time. But bug 497519 was filed *before* bug 269908
landed so I think the first few comments there are about the state
of the code pre-269908, i.e. when we didn't have those checks and
instead depended on a forms.css rule:
fieldset > legend {
position: static ! important;
float: none ! important;
...
}
(which I guess didn't match for that XBL test)
So, I believe that the 2nd part of bug 497519 was redundant by the
time it landed. The float/abs.pos. checks (above) that bug 269908
added had already made it impossible to reach that assertion.
I've also reviewed the nsLegendFrame/nsFieldSetFrame classes and
everything matching "::legend" or "::fieldset" in the frame ctor
and it all looks fine to me, fwiw.
Does the updated code comment look OK to you?
Attachment #8574430 -
Flags: feedback?(bzbarsky)
Assignee | ||
Comment 6•10 years ago
|
||
Flags: needinfo?(mats)
Comment 7•10 years ago
|
||
Comment 8•10 years ago
|
||
Comment on attachment 8574430 [details] [diff] [review]
Additional tests + code comment update
This looks great, thanks. Also, thank you for digging into the history here!
Attachment #8574430 -
Flags: feedback?(bzbarsky) → feedback+
Assignee | ||
Comment 9•10 years ago
|
||
No problem.
Additional tests and comment update landed:
https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=364c12f1edde
You need to log in
before you can comment on or make changes to this bug.
Description
•