Closed Bug 1115237 Opened 9 years ago Closed 9 years ago

Setting opacity other than 1.0 on a position:absolute element prevents a position:fixed children from overflowing

Categories

(Core :: Web Painting, defect)

34 Branch
x86
All
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1111753
Tracking Status
firefox34 --- wontfix
firefox35 - wontfix
firefox36 - fixed
firefox37 --- fixed
firefox-esr31 --- unaffected

People

(Reporter: pierre.s.boyer, Unassigned)

References

Details

(Keywords: regression, testcase)

Attachments

(2 files)

# Steps:
Open the test case
Fire up the inspector
Change the opacity of .outer to something other than 1 (e.g. 0.7)

# Result:
The green div (.inner) is cut off at the edge of the parent (.outer)

# Correct behavior:
The green div (.inner) should keep overflowing like before (with opacity: 1)



# Comments:
This bug happens on both 34.0.5 (rev/8274648ad79f) and the Nightly Build (rev/0532f2509f3f), and probably on any version in between those two.
This bug happens on separate machines with different OS (Windows 7 / OSX / Linux)
It seems this bug was not here before 34.0.5

However (!), if Firefox is started in Safe Mode, the bug disappears.
I have ruled out a problem with my extensions or settings, and this is reproducible on wildly different configurations, with different users each time.
My guess is that it has something to do with the fancy rendering mode that takes over when the opacity is != 1.0, but I'll keep my assumptions to myself.

Also interestingly, if you remove the content node inside .outer element (the literal "Content" string), the bug disappears. Maybe Gecko sees two trivially nested divs and tries to optimize things at some point ?

Finally, it seems you actually need to have a position:absolute > position:fixed combination for this thing to work, switching either div to another positioning mode makes the problem go away.

The correct behavior (the div not being cut off) can be seen on Chrome and probably other browsers. Equivalent test case on codepen : http://codepen.io/anon/pen/yyaawR
OS: Mac OS X → All
One day mozilla-central regression window:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=0894d2cdb16d&tochange=e743fd8c57ed

...which fits with a regression from bug 1022612, except that it never appeared on aurora at all, rather than matching the aurora backout window for bug 1022612.
Hopefully fixed by bug 1111753 anyway, though?
Flags: needinfo?(roc)
[Tracking Requested - why for this release]:
Status: UNCONFIRMED → NEW
Ever confirmed: true
Last Good: b87f29dd4cfb
First Bad: bc0968c1d061
Triggered by :
	bc0968c1d061	Robert O'Callahan — Bug 1022612. Part 31: Perform layer-level occlusion culling in FrameLayerBuilder. r=mattwoodrow We need this to avoid constructing and painting unncecessarily large ThebesLayers.
Surely a dup of 1111753.
Depends on: 1111753
Flags: needinfo?(roc)
Pierre, is it working now in the current Nightly build?
http://nightly.mozilla.org/
Flags: needinfo?(pierre.s.boyer)
Yup, the bug is resolved on Nightly 38.0a1 (2015-01-26). Thanks everyone !
Flags: needinfo?(pierre.s.boyer)
Thanks for the report and testing!
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: