Closed
Bug 261037
Opened 20 years ago
Closed 11 years ago
overflow property not implemented on fieldset
Categories
(Core :: Layout: Form Controls, defect)
Core
Layout: Form Controls
Tracking
()
RESOLVED
FIXED
mozilla27
People
(Reporter: bjoern.graf, Assigned: roc)
References
Details
(Keywords: dev-doc-needed, testcase, Whiteboard: [DocArea=CSS][DocArea=HTML])
Attachments
(6 files, 4 obsolete files)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10
When assigning a value other than visible to the overflow property of a fixed
height/width fieldset its content is rendered as if overflow: visible was specified.
Reproducible: Always
Steps to Reproduce:
1. add a fieldset element with its style set to "overflow: scroll; height: 2em;"
2. open the document and notice the lack of (disabled) scrollbars
Actual Results:
The overflowing content of the fieldset is visible.
Expected Results:
The overflowing content of the fieldset should be clipped and, in case of
scroll/auto, scrollbars should be added to the fieldset.
bernd on IRC requested to add "its probably a frame construction bug".
Reporter | ||
Comment 1•20 years ago
|
||
A simple HTML document to demonstrate overflow: scroll
its simply that in nsCSSFrameConstructor:ConstructFieldSetFrame should be a call
to buildscrollframe
Status: UNCONFIRMED → NEW
Ever confirmed: true
Mats, didn't you already work in frame construction and form controls?
If that isn't the class of bugs that you are interested in (CC), just drop me an
mail I'll stop.
Reporter | ||
Comment 4•20 years ago
|
||
Due to public demand to demonstrate the severe impact this testcase shows
overflowing content.
Attachment #159772 -
Attachment is obsolete: true
>severe impact
Hey come on, look at the bug number, this has never worked. It took 6 years of
the project to get this bug filed, before you nobody noticed the "severe
impact". I am not arguing against the bug or against fixing it, but severe is
something else.
Reporter | ||
Comment 6•20 years ago
|
||
(In reply to comment #5)
> >severe impact
That should have read 'the "severe impact"', and if I really felt this bug to be
a showstopper I would have set the Severity to either critical or blocker. I was
quite happy with the inital testcase as it did show the issue in the least lines
of code but someone convinced me to changing it to display data falling out of
it. I couldn't care less whether or not this bug is ever fixed, knowing that it
exists and the workaround (adding an overflowing div around the content) is
enough for me. To reiterate: "severe impact" wasn't meant as a Severity rating
on this bug, only a out-of-context quote. Same applies to the "public demand".
Comment 7•19 years ago
|
||
Setting platform and os to All.
Opera and IE have this, KHTML sort of, but very buggy.
OS: Windows XP → All
Hardware: PC → All
Comment 8•19 years ago
|
||
overflow:hidden seem to work now. well kind of work... text rows are not cut off
at correct point if they should be cut off in the middle of the row).
overflow:scroll still broken.
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8b5) Gecko/20050929 Firefox/1.4
ID:2005092905
Comment 9•18 years ago
|
||
Adding a DIV around it is not a good work-around. The fieldset should scroll if overflow is set to auto.
Are there no plans to fix this?
Comment 10•16 years ago
|
||
I just triggered this bug today; reading scrollHeight from an overflowing fieldset didn't return any useful information, since the fieldset never overflowed! Obscure enough that it'd rarely be an issue, but major enough that I need to specifically code around it. I'd also like to see this bug fixed.
Comment 12•14 years ago
|
||
I came across this bug today. In a form i have a fieldset with fixed height and overflow: hidden but the content does not get clipped. This problem is reproduceable sice Firefox 3.6.x. In older Versions like 3.5.8 oder 3.0.16 the problem does not exist for me. I attached another testcase.
Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)
Comment 13•14 years ago
|
||
Still not working on FF 4.0b10...
Comment 14•14 years ago
|
||
I hit this one today.
Pitty that this has not been looked at yet
Additional markup is NOT a solution, just a work around.
Comment 16•13 years ago
|
||
This test case shows the problem to be even worse when there is dynamic content involved. Not only does the fieldset not crop its contents with overflow: hidden, but any protruding content is not erased and redrawn correctly if the fieldset moves. This can lead to artefacts being left on the page as the fieldset is moved around.
Comment 17•13 years ago
|
||
Lets try this with the correct content type.
Attachment #562954 -
Attachment is obsolete: true
Comment 18•13 years ago
|
||
I came across this today on OS X version 7.0.1
Like others, if I replaced the <fieldset> with <div> with overflow:hidden the overflowing content was hidden correctly, otherwise it was shown as visible.
Comment 19•13 years ago
|
||
I am experiencing the same bug on latest nightly, overflow:hidden should work.
This has been going for seven years, isn't there anyone that can fix this?
Comment 20•13 years ago
|
||
Since I had to spend some time tracking this bug down myself, I'll bump this up to a "please fix", too.
Comment 22•12 years ago
|
||
Dynamically changing page content above a fieldset no longer leaves artefacts on the page, as mentioned in my comment #16 above.
Overflow is still not implemented for fieldsets, so this bug is still valid.
Attachment #562955 -
Attachment mime type: text/plain → text/html
Comment 23•12 years ago
|
||
Just ran into this issue, easily to workaround by putting a div inside the fieldset... but well... a fix would of course be welcome too :)
Comment 24•12 years ago
|
||
Comment 25•12 years ago
|
||
8 years and this still hasn't been fixed. Firefox is the new IE.
Comment 26•12 years ago
|
||
@Steven Vachon - Your comment shows a complete lack of knowledge in such things. It's immature and stupid.
Comment 27•12 years ago
|
||
(In reply to drhowarddrfine from comment #26)
> @Steven Vachon - Your comment shows a complete lack of knowledge in such
> things. It's immature and stupid.
Hi.
Comment 28•12 years ago
|
||
Steven, drhowarddrfine - please read Bugzilla etiquette at https://bugzilla.mozilla.org/page.cgi?id=etiquette.html and refrain from posting useless comments (comment 25) and personal attacks (comment 26).
If you want to show that you care about this bug getting fixed, please use the voting feature, or help writing code, that's always welcome.
Comment 29•12 years ago
|
||
Getting bit by this bug in version 18.0.2.
Comment 30•11 years ago
|
||
I encountered this bug in version 24.
This was first reported in 2004. Other browsers (Chrome, IE, Safari, Opera) do not exhibit this issue.
Why has this not been fixed yet?
Updated•11 years ago
|
tracking-firefox24:
--- → ?
tracking-firefox25:
--- → ?
Comment 31•11 years ago
|
||
EIGHT YEARS ARE YOU FICKING KIDDING ME????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
WHAT THE **** MAN
Comment 32•11 years ago
|
||
Yup, Firefox is ****. I treat it like I do IE: for testing-only.
(In reply to mokoko from comment #31)
Comment 33•11 years ago
|
||
Tracking is only used for new regressions/issues. Perhaps roc will have an update on if/when this bug may be fixed.
Assignee | ||
Comment 34•11 years ago
|
||
Assignee | ||
Comment 35•11 years ago
|
||
Fixes some major issues. Green on try: https://tbpl.mozilla.org/?tree=Try&rev=6f24609379af
Attachment #816998 -
Attachment is obsolete: true
Attachment #816998 -
Flags: review?(matspal)
Attachment #817599 -
Flags: review?(matspal)
Comment 36•11 years ago
|
||
Comment on attachment 817599 [details] [diff] [review]
fix v2
>layout/base/nsCSSFrameConstructor.cpp
>+ fieldsetFrame->AddStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN);
>+ if (fieldsetFrame->IsPositioned()) {
>+ aState.PushAbsoluteContainingBlock(fieldsetFrame, fieldsetFrame, absoluteSaveState);
> }
Hmm, I think we want a positioned scrolled fieldset to behave the same
as an ordinary positioned scroll frame where the inner scrolled frame
acts as the abs.pos. containing block.
If the fieldset frame is the containing block then overflow contributions
from positioned children are not taken into account by the scroll frame.
See attached reftest, which I think should pass.
>- (!aParentFrame ||
>- (aParentFrame->GetType() != nsGkAtoms::fieldSetFrame &&
>- aParentFrame->StyleContext()->GetPseudo() !=
>- nsCSSAnonBoxes::fieldsetContent) ||
>+ (!IsFrameForFieldSet(aParentFrame) ||
I would prefer to keep the explicit "!aParentFrame" here and remove
the null-check in IsFrameForFieldSet.
>layout/forms/nsFieldSetFrame.cpp
>+ virtual nsIScrollableFrame* GetScrollTargetFrame() MOZ_OVERRIDE
>+ {
>+ return do_QueryFrame(GetInner());
>+ }
Doesn't this require nsIScrollableFrame.h to compile? If so, I think we
should add that explicitly to the list of #includes instead of depending
on some other header doing so. (I might mistaken though)
>layout/generic/nsHTMLReflowState.cpp
Seems unnecessary to touch this file just to remove a space.
Attachment #817599 -
Flags: review?(matspal) → review-
Comment 37•11 years ago
|
||
I thought it would be good to have some overflow:auto tests as well,
so I wrote some. This also demonstrates the abs.pos. error described
above. Please add this to the patch set.
Comment 38•11 years ago
|
||
Dynamic <legend> insertions are broken when there's a scroll frame.
Comment 39•11 years ago
|
||
FYI, while testing this I also discovered that we get the fieldset height wrong
in an edge case, bug 927484. It's unrelated to your changes though, but feel
free to have a look while you're here ;-)
Assignee | ||
Comment 40•11 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #39)
> FYI, while testing this I also discovered that we get the fieldset height
> wrong
> in an edge case, bug 927484. It's unrelated to your changes though, but feel
> free to have a look while you're here ;-)
I'd rather not turn this into a can of worms, thanks :-)
Comment 41•11 years ago
|
||
Yeah, I didn't mean to suggest it should be fixed in this bug. Just that it might be easy
to fix next while you have this code fresh in your head. It's an unimportant edge case though
so it can wait...
Assignee | ||
Comment 42•11 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #36)
> Hmm, I think we want a positioned scrolled fieldset to behave the same
> as an ordinary positioned scroll frame where the inner scrolled frame
> acts as the abs.pos. containing block.
>
> If the fieldset frame is the containing block then overflow contributions
> from positioned children are not taken into account by the scroll frame.
> See attached reftest, which I think should pass.
OK, I've fixed that.
> >- (!aParentFrame ||
> >- (aParentFrame->GetType() != nsGkAtoms::fieldSetFrame &&
> >- aParentFrame->StyleContext()->GetPseudo() !=
> >- nsCSSAnonBoxes::fieldsetContent) ||
> >+ (!IsFrameForFieldSet(aParentFrame) ||
>
> I would prefer to keep the explicit "!aParentFrame" here and remove
> the null-check in IsFrameForFieldSet.
OK.
> >layout/forms/nsFieldSetFrame.cpp
> >+ virtual nsIScrollableFrame* GetScrollTargetFrame() MOZ_OVERRIDE
> >+ {
> >+ return do_QueryFrame(GetInner());
> >+ }
>
> Doesn't this require nsIScrollableFrame.h to compile? If so, I think we
> should add that explicitly to the list of #includes instead of depending
> on some other header doing so. (I might mistaken though)
OK.
> >layout/generic/nsHTMLReflowState.cpp
>
> Seems unnecessary to touch this file just to remove a space.
OK.
Assignee | ||
Comment 43•11 years ago
|
||
(In reply to Mats Palmgren (:mats) from comment #37)
> Created attachment 818033 [details] [diff] [review]
> some overflow:auto reftests
>
> I thought it would be good to have some overflow:auto tests as well,
> so I wrote some. This also demonstrates the abs.pos. error described
> above. Please add this to the patch set.
OK, added.
Assignee | ||
Comment 44•11 years ago
|
||
Fixed the things I mentioned above. Also fixed the dynamic legend issues by calling IsFrameForFieldSet in a couple more places in nsCSSFrameConstructor. I made it take aFrame's type as a parameter to save a virtual call for the new callers.
Attachment #817599 -
Attachment is obsolete: true
Attachment #820669 -
Flags: review?(matspal)
Comment 45•11 years ago
|
||
Comment on attachment 820669 [details] [diff] [review]
fix v3
Looks good! r=mats
Attachment #820669 -
Flags: review?(matspal) → review+
Assignee | ||
Comment 46•11 years ago
|
||
Comment 47•11 years ago
|
||
Backed out for:
https://tbpl.mozilla.org/php/getParsedLog.php?id=29549074&tree=Mozilla-Inbound
https://tbpl.mozilla.org/php/getParsedLog.php?id=29548883&tree=Mozilla-Inbound
https://tbpl.mozilla.org/php/getParsedLog.php?id=29548849&tree=Mozilla-Inbound
etc
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/6817b1c1439f
Assignee | ||
Comment 48•11 years ago
|
||
Comment 49•11 years ago
|
||
Push backed out for reftest failures:
https://tbpl.mozilla.org/?tree=Mozilla-Inbound&jobname=reftest&rev=75ee2a0bc5d3
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/efe4b4053304
remote: https://hg.mozilla.org/integration/mozilla-inbound/rev/e33a8cab1096
Assignee | ||
Comment 50•11 years ago
|
||
Comment 51•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
Comment 52•11 years ago
|
||
*gasp*
Updated•11 years ago
|
relnote-firefox:
--- → ?
Updated•11 years ago
|
Keywords: dev-doc-needed
Updated•11 years ago
|
Comment 53•11 years ago
|
||
Backed out from beta (Fx27) due to bug 960277.
https://hg.mozilla.org/releases/mozilla-beta/rev/00b274fbebf3
Assignee | ||
Updated•11 years ago
|
Updated•11 years ago
|
Whiteboard: [DocArea=CSS][DocArea=HTML]
Comment 54•11 years ago
|
||
I think the parent of this bug is 504622, still unresolved.
"Fieldsets never shrink below their min-intrinsic width"
https://bugzilla.mozilla.org/show_bug.cgi?id=504622
Comment 55•11 years ago
|
||
Why is this still in the release notes of FF27?
See comment 53
Flags: needinfo?(bbajaj)
Comment 56•11 years ago
|
||
Removing feedback from bbajaj and notifying Sylvestre, the new Fx Release Manager.
Flags: needinfo?(bbajaj) → needinfo?(sledru)
Updated•11 years ago
|
Flags: needinfo?(sledru)
Comment 57•11 years ago
|
||
Setting relnote to ? so that we make sure to add this to the FF28 release notes
Comment 58•11 years ago
|
||
Added in the nucleus database for 28.
I used the commit description for the release note: "Support scrolled fieldsets"
Let me know if someone has a better wording.
Updated•11 years ago
|
Target Milestone: mozilla27 → mozilla28
Comment 59•11 years ago
|
||
> Let me know if someone has a better wording.
It's not just scrolling; it's also supporting overflow:hidden... Maybe "support the 'overflow' property on fieldsets"?
Flags: needinfo?(sledru)
Target Milestone: mozilla28 → mozilla27
Comment 60•11 years ago
|
||
Are you sure about the change of Target Milestone ?
OK for the description. I have updated the nucleus db.
Thanks
Flags: needinfo?(sledru) → needinfo?(bzbarsky)
Comment 61•11 years ago
|
||
> Are you sure about the change of Target Milestone ?
Yeah, I'd just changed it from 27 to 28, then realized this has been in nightlies all through 27, but got backed out at beta, so 27 is the right TM but we're not shipping this until 28.
Flags: needinfo?(bzbarsky)
Comment 62•11 years ago
|
||
(In reply to Boris Zbarsky [:bz] from comment #61)
> > Are you sure about the change of Target Milestone ?
>
> Yeah, I'd just changed it from 27 to 28, then realized this has been in
> nightlies all through 27, but got backed out at beta, so 27 is the right TM
> but we're not shipping this until 28.
So then this should be "disabled" for status-firefox27, shouldn't it?
Comment 63•11 years ago
|
||
No idea when to use "disabled" vs "wontfix"....
Comment 64•11 years ago
|
||
(In reply to Boris Zbarsky [:bz] from comment #63)
> No idea when to use "disabled" vs "wontfix"....
Wontfix applies when a code has not and will not be landed/uplifted for the respective Firefox version. Disabled applies when code was landed for that version but disabled, usually behind a pref.
I think in this case firefox27:disabled applies. Please correct me if you think otherwise.
Comment hidden (offtopic) |
Comment hidden (offtopic) |
Comment hidden (offtopic) |
Comment hidden (offtopic) |
Comment hidden (offtopic) |
Comment hidden (offtopic) |
You need to log in
before you can comment on or make changes to this bug.
Description
•