Open Bug 418350 Opened 16 years ago Updated 2 years ago

Image compositing hack regressed in 20080216 build?

Categories

(Core :: Layout, defect)

x86
macOS
defect

Tracking

()

People

(Reporter: brendan, Unassigned)

References

()

Details

(Whiteboard: [has patch])

Attachments

(4 files)

Load the URL, click on "guest bathroom", notice the upper right corner square image poking through the rounded trick. The rounded matte piece is halfway or more down on the right side (in Safari, it's on the left of the upper left corner for some reason! Webkit but?). I asked vlad to load it and his 0215 build did not show a problem. He suggested filing in layout.

/be
Flags: blocking1.9?
Note that the web page is using an image in the background (I think as a background image, not sure) with rounded corners and a border, then the actual photo on top of that, and then two small corner GIFs that get overlaid over the corners using z-index to get the border effect.
Attached file Unminimized testcase
With this unminimized testcase, the window keeps reloading, until the bug occurs.
I let that page run for a while and it didn't hit the bug.
Flags: wanted1.9+
Flags: blocking1.9?
Flags: blocking1.9-
Attached file testcase
Ok, I managed to reduce it further to this (hopefully this is still about the same issue!).
Attached file reference
This seems to happen because the GetOffsetTo calls in nsHTMLReflowState::CalculateHypotheticalBox return weird results, because the view for the relatively positioned span hasn't been positioned yet since reflow of that span has not yet been completed.

In general our layout of abs-pos children of a relatively positioned inline is unreliable because, as bz comments,
      // XXXbz the line box is not fully reflown yet if our containing block is
      // relatively positioned...
So we haven't done e.g. vertical and horizontal alignment yet. Fixing that is definitely not 1.9 material.

This particular bug could be fixed but I'm not sure it's worth it since minor variants would remain unfixed.
Attached patch fixSplinter Review
Here's the fix I came up with. It makes the testcase match the reference, and I think it's the correct rendering --- it matches Safari 3.1, anyway.

It doesn't really fix the original site. The top-right piece now appears to the left of the top-left corner, even further to the left than Safari shows it. This is probably some other bug in rel-pos abs-pos-child placement that remains, as I mentioned above.

FF2, amusingly, shows the wrong FF3 behaviour is both the testcase *and* the reference, so although the inconsistency in rendering is a regression, the actual bad rendering is not.

This patch is very safe; view coordinates and frame coordinates are (should be) always in sync now except for at times during reflow. However it seems the reward is also low so my gut feeling is to not bother taking this for 1.9, although I could be talked into it. Hence not requesting review for now.
Flags: wanted1.9-
Flags: wanted1.9+
Flags: wanted-next+
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: