Closed Bug 1409508 Opened 7 years ago Closed 7 years ago

Make layout/reftests/async-scrolling/sticky-pos-scrollable-1.html pass correctly

Categories

(Core :: Graphics: WebRender, enhancement, P1)

Other Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox57 --- unaffected
firefox58 --- unaffected

People

(Reporter: kats, Assigned: kats)

References

Details

(Whiteboard: [wr-mvp] [gfx-noted])

Attachments

(2 files, 1 obsolete file)

This reftest is currently passing with WR enabled, but it does so because of a "two wrongs making a right" situation. The patches in bug 1409446 affect the way clips are defined on the gecko side, and cause this test to start failing. This bug is to track the correct fix.
Attached file Log of current behaviour (deleted) —
Note that in current m-c (prior to bug 1409446) the clip with id=8 is getting defined while the clip id=3 is the most recently pushed thing. This means that clip id=8 is effectively defined outside the sticky clip (id=7) and the rect that is pushed later is inside clip 8 which means it is also outside the sticky clip. Effectively the rect is attached to the root scrollframe and doesn't move at all which I believe is wrong.
Attached patch WIP (obsolete) (deleted) — Splinter Review
This patch applies on top of bug 1409446 and fixes the clip chains by making the cache override behave differently. That is, the sticky clip id=7 introduces a new cache override, but instead of just causing the override for id=6, we make it add overrides for the entire clip chain, including id=3. This way when we go to define id=8, we pick up the override and make it a child of sticky id=7 instead of id=3. This makes the clip ancestry correct, as far as I can tell, however the reftest still fails because the yellow rect is mispositioned by 10 pixels. I haven't investigated that but I'm guessing that's coming from the origin adjustment that sticky positioning introduces [1]. [1] http://searchfox.org/mozilla-central/rev/a984558fa2bbde6492d3fb918496fc0b0835b2ce/layout/painting/nsDisplayList.cpp#7137
The 10,10 mispositioning is not coming from the origin adjustment. AFAICT we're doing things fine on the gecko side so maybe it's a bug in WR. At any rate I'm going to continue working on bug 1405359 for now and circle back to this later.
Priority: P3 → P2
Whiteboard: [gfx-noted][wr-mvp][triage] → [wr-mvp] [gfx-noted]
The WIP on this bug requires the patches in bug 1409446 to land first. And the "10,10 mispositioning" I mentioned in a previous comment will be fixed by the patch I'm going to post to bug 1410527.
Depends on: 1409446
Parking this with me since I have all the patches needed to make this pass. It's just waiting on a queue of patches that need to get reviewed and land.
Assignee: nobody → bugmail
Status: NEW → ASSIGNED
Priority: P2 → P1
Comment on attachment 8922034 [details] Bug 1409508 - Handle another clip edge case. https://reviewboard.mozilla.org/r/193032/#review198280 Thank you for the long comment.
Attachment #8922034 - Flags: review?(mstange) → review+
Attachment #8919449 - Attachment is obsolete: true
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/732521699363 Handle another clip edge case. r=mstange
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: