Closed Bug 616092 Opened 15 years ago Closed 2 years ago

position: absolute breaks opaque shadowThebesLayer state in remote case

Categories

(Core :: Layout, defect)

x86
Linux
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: romaxa, Unassigned)

References

()

Details

Attachments

(2 files)

on google.com we have a bit special layer which makes shadow thebes layer to be non-opaque, that cause making ShadowableThebes buffer with offscreen big enough and 2x bigger on mobile because opaque layer usually means 16bpp 2 bpp surface. I think that is wrong and we should not create transparent layer when it is not needed.
Attached file simple testcase —
Attached file Layers dump —
Not sure probably testcase could be more simple, but when I removing anything from this testcase style, then it is started create opaque layers... I think that is related to http://mxr.mozilla.org/mozilla-central/source/layout/base/FrameLayerBuilder.cpp#847
This testcase results in an opaque layer on desktop -1220061184[122aab0]: BasicLayerManager (0x7fc89c0af950) -1220061184[122aab0]: BasicContainerLayer (0x2506bd0) [visible=< (x=0, y=0, w=821, h=809); >] [opaqueContent] [metrics={ viewport=(w=821, h=809) viewportScroll=(x=0, y=0) displayport=(x=0, y=0, w=0, h=0) }] -1220061184[122aab0]: BasicThebesLayer (0x2505e60) [visible=< (x=0, y=0, w=821, h=120); >] [opaqueContent] [noTextOverTransparent] [valid=< (x=0, y=0, w=821, h=32); (x=0, y=32, w=821, h=88); >] -1220061184[122aab0]: BasicContainerLayer (0x2507170) [clip=(x=0, y=120, w=821, h=689)] [visible=< (x=0, y=120, w=821, h=689); >] [opaqueContent] -1220061184[122aab0]: BasicThebesLayer (0x250c9f0) [transform=[ 1 0; 0 1; 0 120; ]] [visible=< (x=0, y=0, w=821, h=689); >] [opaqueContent] [noTextOverTransparent] [valid=< (x=0, y=0, w=821, h=689); >] Looks like a problem with fennec's setup in the content process.
On desktop google giving us different page... have you tried to setup fennec UA in desktop? and yeah.. .something wrong with content process setup.
Oh, I'm wrong... you are running simple testcase.... and with non-remote fennec that non-shadowTHebesLayer is opaque... only problem with remote setup.
Tatiana did short investigation and found that x=0, y=-12, w=980, h=539 - clipped correctly in non-remote case, and y-negative part of rectangle recognized in remote case as transparent region. Sounds like some clip or other value like effectiveVisible region not applied correctly on shadow Layers root tree...
This -12 non-opaque "text2" part becomes visible because remote Fennec uses displayport rendering and visibleRegion has negative part in this case: PRBool nsDisplayList::ComputeVisibilityForRoot(nsDisplayListBuilder*, nsRegion*):363 --aVisibleRegion: < (x=-10800, y=-45000, w=69600, h=120000); > builder: 0xbf8edbe4, Type: 44, Name: Text --rectOnCompute: (x=480, y=-720, w=2340, h=1140)--aVisibleRegionOnCompute: < (x=-10800, y=-45000, w=69600, h=120000); >--boundsOnCompute: (x=480, y=-720, w=2340, h=1140)--aListVisibleBoundsOnCompute: (x=0, y=-720, w=48000, h=30720) builder: 0xbf8edbe4, Type: 44, Name: Text --rectOnCompute: (x=480, y=480, w=1740, h=1140)--aVisibleRegionOnCompute: < (x=-10800, y=-45000, w=69600, h=120000); >--boundsOnCompute: (x=480, y=480, w=1740, h=1140)--aListVisibleBoundsOnCompute: (x=0, y=-720, w=48000, h=30720) builder: 0xbf8edbe4, Type: 11, Name: CanvasBackground --rectOnCompute: (x=0, y=0, w=48000, h=30000)--aVisibleRegionOnCompute: < (x=-10800, y=-45000, w=69600, h=120000); >--boundsOnCompute: (x=0, y=0, w=48000, h=30000)--aListVisibleBoundsOnCompute: (x=0, y=-720, w=48000, h=30720) Layer: 0xb07b0560 isOpaque: 0
Summary: position: absolute breaks opaque shadowThebesLayer state → position: absolute breaks opaque shadowThebesLayer state in remote case
Severity: normal → S3

The string thebeslayer no longer exists in the tree. I think this bug is obsoleted by WebRender and subsequent code-removal in bug 1724935 ("kill-layers").

(I ran across this bug in a random search for "shadow position absolute" when looking to find if a particular bug about absolute positioning with custom-elements & shadow-root happens to already be filed or not.)

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: