Closed Bug 1547435 Opened 5 months ago Closed 5 months ago

Fix relative scroll updates on Android, and enable helper_scrollby_bug1531796.html

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox-esr60 --- unaffected
firefox67 --- unaffected
firefox68 --- fixed

People

(Reporter: botond, Assigned: botond)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

In bug 1531796, we are landing a test helper_scrollby_bug1531796.html, but disabled on Android because it's failing there. This bug tracks investigating and fixing that failure.

Type: defect → task

The test failure indicates an actual underlying bug in the fix made in bug 1531796.

Assignee: nobody → botond
Type: task → defect
Summary: Enable helper_scrollby_bug1531796.html on Android → Fix relative scroll updates on Android, and enable helper_scrollby_bug1531796.html
Keywords: regression
Regressed by: 1531796

Here's what seems to be happening:

  • PresShell::Paint() first attempts an empty transaction.
  • That calls into the code to pick up the pending updates. As a result, the call to NotifyPaintSkipTransaction that I added in bug 1531796 runs, and records the new scroll offset as the last one we've sent to APZ.
  • However, code called later in the empty transaction causes the empty transaction to fail (specifically, we get here which then causes us to return false here).
  • As a result, we proceed to a full paint and call ComputeScrollMetadata(), which then sees that we've already sent a previous scroll update (even though we didn't), and sends a relative update of zero.

Conceptually, the call to NotifyApzTransaction to set "here's the last scroll offset we've sent to APZ", shouldn't happen until we've actually sent a transaction carrying that scroll offset.

Attachment #9061519 - Attachment description: Bug 1547435 - Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats!,rhunt → Bug 1547435 - Ensure NotifyApzTransaction is only called if a transaction will actually be sent. r=kats!,rhunt
Attachment #9061519 - Attachment description: Bug 1547435 - Ensure NotifyApzTransaction is only called if a transaction will actually be sent. r=kats!,rhunt → Bug 1547435 - Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats!,rhunt
Pushed by bballo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/85c60519f4c9
Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats,rhunt
Status: NEW → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
You need to log in before you can comment on or make changes to this bug.