Closed Bug 32199 Opened 24 years ago Closed 1 year ago

(XUL only) visibility:collapse is not being interpreted as hidden on block and inline level elements

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

RESOLVED WONTFIX
Future

People

(Reporter: ian, Unassigned)

References

()

Details

(Keywords: css2, regression, testcase, Whiteboard: [awd:tbl] [nsbeta3-])

Attachments

(4 files)

The 'visibility' property's value 'collapse' is not being interpreted 
as 'hidden' when applied to elements that are not rows, row groups, columns,
or column groups.

Test cases:
  Most 'display' types: http://www.bath.ac.uk/~py8ieh/m/visible-collapse.html
  'block':  http://www.bath.ac.uk/~py8ieh/m/visible-collapse-blocks.html
  'inline':  http://www.bath.ac.uk/~py8ieh/m/visible-collapse-inlines.html
  'cell':  http://www.bath.ac.uk/~py8ieh/m/visible-collapse-cells.html
  'table':  http://www.bath.ac.uk/~py8ieh/m/visible-collapse-tables.html
Keywords: css2, regression
It's mostly fixed. The page at the URL above now works correctly except for cell 
& table. The remaining problems are dups of bug 21701: we should review the use 
of display->IsVisibleOrCollapsed() and in some cases change it to display->
IsVisible() in the following files:
    nsTableCellFrame
    nsTableColFrame
    nsTableColGroupFrame
    nsTableFrame
    nsTableRowFrame
    nsTableRowGroupFrame

See bug 21701 for more info. I'm not closing the present bug yet. I prefer to 
reassign it to karnaze: it will allow him to work on the files above while buster 
takes care of the other ones.
Assignee: pierre → karnaze
Depends on: 21701
Status: NEW → ASSIGNED
Target Milestone: --- → M17
Adding testcase keyword so this doesn't show up on the bugathon search page.
Keywords: testcase
Changing testcase to donttest. Bernd: FYI, this is the "correct" way to keep a 
bug off the BugAThon radar if no test case is needed. (See the Keywords 
definition list for more info.) But you had the right idea--thanks for your 
help!
Keywords: testcasedonttest
Keywords: testcase
Denying beta3 approval.
Whiteboard: [nsbeta3-]
Target Milestone: M17 → Future
Taking QA per managerial policy.
QA Contact: chrisd → py8ieh=bugzilla
Ian, your testcases are not visible could you attach them to the bug
(test cases are back, it was a transient server problem)
Whiteboard: [nsbeta3-] → [awd:tbl] [nsbeta3-]
So is the fact that I see red-bordered blocks in the cell and table testcases
evidence of this bug? The blocks are otherwise empty.
Yes, red = bad in my tests.
Okay, thanks; just checking. Reconfirmed using FizzillaCFM/2002071208. Setting
All/All.
OS: Windows 98 → All
Hardware: PC → All
I just want to add that I am having this problem in XUL too. Also, on some XUL
code I have, CPU goes to 100% when I try to set a block of code to hidden. I
can't make a small testcase at the moment :-(
taking the bug
Assignee: karnaze → bernd.mielke
Status: ASSIGNED → NEW
Attached patch patchSplinter Review
Attachment #108587 - Flags: superreview?(dbaron)
Attachment #108587 - Flags: review?(karnaze)
the patch has also some CallQueryInterface cleanup, from a quick search
http://lxr.mozilla.org/seamonkey/search?string=IsVisibleOrCollapsed I believe a
lot if not all callers of this function are wrong.
Status: NEW → ASSIGNED
Comment on attachment 108587 [details] [diff] [review]
patch

Other than these two changes, sr=dbaron.  (I don't really object to the
commented code, either, although it would be good to say why it's there.  But
if you want me to sr the other bit, you'd better explain what it's fixing.  I'm
assuming these were just included by accident.)

>@@ -2212,6 +2212,8 @@
>       SetResizeReflow(PR_TRUE);
>     }
>   }
>+  //aDoCollapse = PR_TRUE;
>+  
>   return rv;
> }
> 
>@@ -3310,7 +3312,6 @@
>         if (NS_FRAME_IS_COMPLETE(aStatus) && isPaginated && 
>             (NS_UNCONSTRAINEDSIZE != kidReflowState.availableHeight)) {
>           nsIFrame* nextKid = (childX + 1 < numRowGroups) ? (nsIFrame*)rowGroups.ElementAt(childX + 1) : nsnull;
>-          pageBreak = PageBreakAfter(*kidFrame, nextKid);
>         }
>         // Place the child
>         PlaceChild(aPresContext, aReflowState, kidFrame, desiredSize);
Attachment #108587 - Flags: superreview?(dbaron) → superreview+
I don't even see why we should have an |IsVisibleOrCollapsed| method.  Feel free
to reassign this to me after you land the patch if you want me to finish
cleaning it up.
David, you are so right, this is cruft. I feel save enough to fix the layout
callers too, but xul is beyond my scope   
Comment on attachment 108587 [details] [diff] [review]
patch

Please remove the following from your patch, otherwise it will break
page-break-after

-	   pageBreak = PageBreakAfter(*kidFrame, nextKid);
Attachment #108587 - Flags: review?(karnaze) → review+
Attached file xul testcase
Attached file html testcase
I checked the patch in. I could not create a testcase  proving that the
remaining occurences are really causing trouble. Before I damage something that
I dont understand I give this bug back.
Assignee: bernd_mozilla → dbaron
Status: ASSIGNED → NEW
The bug doesn't show for me with the HTML testcase, only the XUL testcase.
The bug doesn't show for me with the HTML testcase, only the XUL testcase (build
2003060308 WinXP)
Summary: visibility:collapse is not being interpreted as hidden on block and inline level elements → (XUL only) visibility:collapse is not being interpreted as hidden on block and inline level elements
Assignee: dbaron → nobody
QA Contact: ian → style-system
Attached file testcase3
Also the flash plugin still shows up in this case.
Component: Style System (CSS) → Layout: Misc Code
QA Contact: style-system → layout.misc-code
Product: Core → Core Graveyard
Component: Layout: Misc Code → Layout
Product: Core Graveyard → Core
Severity: normal → S3

Is this still relevant with flex emulation?

Flags: needinfo?(emilio)

not really

Status: NEW → RESOLVED
Closed: 1 year ago
Flags: needinfo?(emilio)
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: