Closed Bug 1176395 Opened 9 years ago Closed 9 years ago

position:sticky element jitters while scrolling with APZ

Categories

(Core :: Panning and Zooming, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: kats, Assigned: botond)

References

Details

Attachments

(3 files)

Attached file Test case (deleted) —
OS X desktop:
- Enable APZ
- Load the attached test page
- scroll with two-finger gesture on trackpad

Expected: blue thingy doesn't jitter
Actual: blue thingy jitters

APZ disabled doesn't have this problem.
Note that even applying attachment 8624838 [details] [diff] [review] doesn't fix this.
It looks like to me the same thing I mentioned in:
https://bugzilla.mozilla.org/show_bug.cgi?id=1133588#c12

Here's an url on the website where the background is persistently there: ipon.hu/hir/csokkenti_kaveri_apu_jainak_az_arat_az_amd/33519

But more importantly, I'm also getting the bug with the test case and I'm on windows 8.1 x64 and an Nvidia gts450.
Priority: -- → P1
Also happens on Linux. I'm going to have a look at this.
Assignee: nobody → botond
OS: Mac OS X → All
While investigating this with Matt, we discovered that when - as in this testcase - an element is both position:sticky and transformed, the transform is applied outside of the position:sticky.

We believe this is wrong; the position:sticky should be outside the transform. (Conceptually, the transformed content is position:sticky.)

This decision is made in nsIFrame::BuildDisplayListForStackingContext(), which wraps the display list into an nsDisplayStickyPosition first and then an nsDisplayTransform. Switching this order gives us the desired semantics, and fixes this bug.
Bug 1176395 - When an element is both position:sticky and transformed, apply the position:sticky outside the transform. r=roc

Conceptually, the transformed content is position:sticky. position:fixed
behaves similarly.
Attachment #8697418 - Flags: review?(roc)
Bug 1176395 - Reftest. r=mstange
Attachment #8697419 - Flags: review?(mstange)
Comment on attachment 8697418 [details]
MozReview Request: Bug 1176395 - When an element is both position:sticky and transformed, apply the position:sticky outside the transform. r=roc

https://reviewboard.mozilla.org/r/27605/#review24873
Attachment #8697418 - Flags: review?(roc) → review+
Try push good:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=8790273a2bc3

Landed (with test as r=roc).
Attachment #8697419 - Flags: review?(mstange)
https://hg.mozilla.org/mozilla-central/rev/a64252105705
https://hg.mozilla.org/mozilla-central/rev/2b827b7841f6
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: