Closed Bug 1710052 Opened 3 years ago Closed 3 years ago

if two repaint requests get issued on the same frame with async zoom the second will be completely dropped

Categories

(Core :: Panning and Zooming, defect)

defect

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
firefox90 --- fixed

People

(Reporter: tnikkel, Assigned: tnikkel)

References

Details

Attachments

(2 files, 1 obsolete file)

This is needed to be able to write a decent test for bug 1710050.

During double tap animations I was seeing two repaint requests per frame. The first one had scroll update type eNone, the second has type eUserAction and there was a layout scroll position update. Both had the same !=1 async zoom. When the callback helper gets the first it updates the presshell resolution. Then when it gets the second the presshell resolution no longer matches and it returns ignoring the repaint request entirely. When it's only clear that it should ignore the resolution part.

Assignee: nobody → tnikkel
Status: NEW → ASSIGNED

With the patch for this bug we need to modify an existing test.

I haven't investigated this, but I think the scrollY value is always between 0 and 2 and I guess the patch makes it move around a bit more non-monotonically. Not sure it's worth spending time on, but I can if you think otherwise.

Attachment #9220788 - Attachment description: Bug 1710052. If the presshell resolution doesn't match on a repaint request only ignore the resolution part of the repaint request, not the whole request. r?botond → Bug 1710052. Allow the presshell resolution of a repaint request to before or after the async zoom is applied to it in case another request with the same resolution has already been handled. r?botond
Attachment #9220788 - Attachment description: Bug 1710052. Allow the presshell resolution of a repaint request to before or after the async zoom is applied to it in case another request with the same resolution has already been handled. r?botond → Bug 1710052. Allow repaint requests to update the resolution if the last resolution change origin was apz in addition to when the old resolution matches. r?botond

We need to further modify this test. This time the resolution.

We calculate the new presshell resolution as (async zoom) * (last known by apz presshell resolution).

Before the patch of this bug (last known by apz presshell resolution) had to be (almost) equal to the actual presshell resolution. After the patch of this bug (last known by apz presshell resolution) can differ, allowing more floating point error to come in.

Attachment #9221760 - Attachment is obsolete: true
Depends on: 1711424
Pushed by tnikkel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/187c9f7c4653
Allow repaint requests to update the resolution if the last resolution change origin was apz in addition to when the old resolution matches. r=botond
https://hg.mozilla.org/integration/autoland/rev/d3b02e2c82d9
Modify test. r=botond
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: