Shrinkwrap width of 'auto' width block with overflow:hidden is 0

RESOLVED WORKSFORME

Status

()

Core
Layout
RESOLVED WORKSFORME
12 years ago
9 years ago

People

(Reporter: Travis, Unassigned)

Tracking

({regression, testcase})

Trunk
regression, testcase
Points:
---
Bug Flags:
blocking1.8b5 -
blocking1.8rc1 -

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [reflow-refactor], URL)

Attachments

(4 attachments)

(Reporter)

Description

12 years ago
User-Agent:       Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050914 Camino/1.0a1
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050914 Camino/1.0a1

In the page at
https://dados.uasom.uab.edu/Reportserver?%2fUASOM+Student+Self+Service%2frpt009&rs:Command=Render,
the spreadsheet-like report is compressed on the left side of the browser
window.  This page loads correctly using Camino 0.84.

Reproducible: Always

Steps to Reproduce:
1. Go to the website: https://www.uasom.uab.edu/students/selfservice/mygrades.htm
2. Log in with my user name/Password (can give to an appropriate Mozilla
employee if contacted directly).
3. Click the link:
https://dados.uasom.uab.edu/Reportserver?%2fUASOM+Student+Self+Service%2frpt009&rs:Command=Render
4.  Page is rendered incorrectly

Actual Results:  
Page renders, but the entire output is compressed onto the left side of the
page, and is unreadable.  Would not be a problem if this had not worked in
Camino 0.84 also.

Expected Results:  
Rendered the page correctly.
Does this also happen in Firefox 1.5b1?
(Reporter)

Comment 2

12 years ago
(In reply to comment #1)
> Does this also happen in Firefox 1.5b1?

This also happens in Firefox 1.5b1, but does not happen in Firefox 1.0.6.

Comment 3

12 years ago
-> Core
Component: Page Layout → Layout
Product: Camino → Core
Version: unspecified → 1.8 Branch
this is a regression from the mozilla1.7 branch. it should be fixed for 1.8
Flags: blocking1.8b5?
Keywords: regression
-> core
Assignee: pinkerton → nobody
QA Contact: layout
Summary: An auto-generated report draws incorrectly in a website that works with Camino 0.84 → An auto-generated report draws incorrectly

Comment 6

12 years ago
can one of you all provide a simplified testcase for this?
(Reporter)

Comment 7

12 years ago
Created attachment 197207 [details]
This is the code from the affect page.

This is the code that renders incorrectly in Camino 1.0a1 and Firefox 1.5b1,
but renders correctly in Camino 0.8.4 and Firefox 1.0.6.
Created attachment 197325 [details]
Testcase

This is a minimal testcase based on that code.
The only reason why this regressed is because Mozilla1.7 doesn't support
overflow-x:hidden.
Created attachment 197328 [details]
Testcase2, using overflow:hidden

So, when using overflow:hidden, you get similar results in Mozilla1.7 and
Opera8.5
IE6 is doing things differently, it does show the text (but that might very
well be a bug).

But I think I see a bug with testcase1, I don't see the small table cell with
1px solid black border on the left, like I see it in testcase2.
Created attachment 197330 [details]
testcase3, using overflow:visible

But then, testcase3 does show the text in current trunk builds, and I see no
reason why testcase1 or testcase2 should render differently.
Cc-ing some layout folks, maybe they know exactly what should be happening here.
Keywords: testcase
This looks like the div is reporting a different min-width depending on whether
it's got a scrollframe or not, basically.  So if there is no scrollframe we have
a min-width equal to the width of the longest word, and if there is a
scrollframe we get a min-width of 0.

I'm pretty sure we already have a bug on that...

Comment 13

12 years ago
>I'm pretty sure we already have a bug on that...

Its not a bug its a feature.

How much can we squeze a auto scrollable around some content?
Down to 0, I believe, as it can scroll the content. I checked this in with bug
295459
Hmm..  But we can squeeze a non-scrollable down too -- the content will just
overflow.  I guess this is the cell trying to prevent overflow out of itself, huh?

I hate to ask this, but "what does IE do?"
(In reply to comment #14)
> I hate to ask this, but "what does IE do?"
IE6 is doing in all 3 testcase the same as Mozilla is doing in "testcase3, using
overflow:visible".
plussing for now, we need to decide what we're doing here, this is visible on
Windows as well
Flags: blocking1.8b5? → blocking1.8b5+
OS: MacOS X → All
Hardware: Macintosh → All
So I'm looking at bug 295459 comment 6.  If we were propagating MEW when
overflow-x is hidden things would work here, right?
We deliberately set the MEW of overflow:hidden to zero, for compatibility with
1.7/FF1.0.6. Martijn says in comment #8 this only appears to be a regression
because we didn't support overflow-x before. Changing this decision would reopen
bug 295459 and possibly bug 292690. I don't see any other rational way to fix this.

It appears Opera 8.5 is also setting overflow:hidden MEW to zero.

I propose we do not change this unless the CSS WG hands down a decision
resolving the issue differently.
If we decide we really want to hack this, we could propagate the MEW only if
horizontal overflow is hidden and vertical is not...  But that would be only if
this becomes a huge compat issue (which I'm not seeing thus far).

Updated

12 years ago
Flags: blocking1.8b5+ → blocking1.8b5-
Bug 295459 comment 6 is right as far as I can tell. The 'overflow' property
shouldn't affect layout in cases like this. Why would it? I don't understand
what in the CSS spec would suggest that the shrink-wrap width of a block would
change based on its 'overflow' property.
Status: UNCONFIRMED → NEW
Ever confirmed: true
can someone enlighten us as to why this should be minused and not fixed?

requesting re-triage.
really this time.
Flags: blocking1.8b5- → blocking1.8b5?

Comment 23

12 years ago
We minused it as a blocker based on the layout experts comments above.
Flags: blocking1.8b5? → blocking1.8b5-
Well I don't know if it should be a blocker, but IMHO the layout experts above
were wrong (as dbaron stated in the comment cited above by myself and bz).

roc, could you take a look at my comment above and let me know if we're missing
something? Thanks...
Flags: blocking1.8b5- → blocking1.8b5?
I agree that in principle we should be propagating the MEW. That's what I did
originally when I rewrote scrollframes. But I don't think we should change it
now for the FF1.5 release. I'm willing to revert back for the trunk and then we
can reopen and readdress bug 295459 and any others.
regardless of the timing of FF1.5, i'm just concerned about sites that used to
work now no longer working. That's not the kind of thing that will improve
adoption. Is there any way to help this in the short term?
Per triage meeting: 

There really isn't time to really take a shot at trying to fix this for 1.8,
given the size of the original patch, and the fallout from that, and that roc is
travelling at present.  Feedback from reporter and other tools suggests this is
quite low-impact.

Minusing and nominating for 1.8.1
Flags: blocking1.8b5?
Flags: blocking1.8b5-
Flags: blocking1.8.1?
Here I was thinking we were trying to ship a quality product, but it turns out
we're just a date-driven development team. My bad!
AFAIK This is only a "regression" for pages that use overflow-x and overflow-y
(not overflow) on elements that rely on the MEW being propagated. In FF1.0 those
properties were just ignored so it's as likely such sites got better rather than
worse.
The bug appears on any page that has something with overflow:hidden in a table
cell. I agree that this isn't really a regression, but it's sad that we are
going to release a product that renders some pages worse than it used to. 1.5
has very few new features as it is, I don't know how much we can afford to be
breaking pages. And IMHO it's especially sad that the main reason given for
shipping with this is related to scheduling.

Resummarising in light of comments.
Summary: An auto-generated report draws incorrectly → Shrinkwrap width of 'auto' width block with overflow:hidden is 0
Version: 1.8 Branch → Trunk
It's inevitable that 1.5 will render a few pages worse than 1.0 did. However, it
renders very many pages much better than 1.0 did.

If you want to make the case to branch-drivers that it's worth changing this for
FF, be my guest. I'll be able to work on it late next week.
Really, if this is going to block it should block the RC, not the point release.

Requesting blocking1.8rc1.
Flags: blocking1.8rc1?

Comment 33

12 years ago
not going to block on this. not a critical problem for 1.5. we have a number of
issues where we don't render the same as 1.0 (some that impact many more pages
or higher profile pages than this).
Flags: blocking1.8rc1? → blocking1.8rc1-
I think I agree that 'overflow' shouldn't affect the intrinsic width, at least in this simple a way (it has more complex effects because of the establishment of a block formatting context), but that is a pretty big change from what we've done in the past.
Whiteboard: [reflow-refactor]

Comment 35

10 years ago
Fixing this would be relatively easy at this point... it's just a matter of changing the implementation of nsHTMLScrollFrame::GetMinWidth.  The question here is what behavior we want.  Do we want an implementation like nsHTMLScrollFrame::GetPrefWidth?
It's entirely a spec question. On balance I think we should follow Hixie (and apparently, IE, which gives me confidence that web compat will be OK) and pass through the intrinsic width, the way that GetPrefWidth does.
For what it's worth, I had fixed this on the reflow branch, but undid it.  See bug 359510 for why.
Duplicate of this bug: 357714
Alright then, I'll make this WONTFIX in sympathy.
Status: NEW → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → WONTFIX
Currently WFM.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008061606 Minefield/3.0pre
Resolution: WONTFIX → WORKSFORME
The behavior was changed in bug 402567.
You need to log in before you can comment on or make changes to this bug.