Closed Bug 1674935 Opened 4 years ago Closed 4 years ago

Cannot scroll with keyboard on result page of google search when non-WebRender

Categories

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

Firefox 83
Desktop
Windows 10
defect

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox82 --- unaffected
firefox83 + fixed
firefox84 + fixed

People

(Reporter: alice0775, Assigned: tnikkel)

References

(Regression)

Details

(Keywords: nightly-community, regression)

Attachments

(3 files)

[Tracking Requested - why for this release]: scroll with keyboard is broken if non-WebRender

Reproducible: always

Steps to reproduce:

  1. Set gfx.webrender.force-disabled to true in about config
    OR
    Set layers.acceleration.disabled to true
  2. Restart browser
  3. Type "? mozilla" (without quotation marks) in address bar and hit enter
  4. Try scroll with keyboard

Actual Results:
Page would not scroll.

Expected Results:
Page should scroll.

Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=cab81767be70469b780cd372ff463df59c2264e0&tochange=32a2e59ab7260118d8d5f430e503967fad6993cf

Before land Bug 1657822 : Bug 1674802
After land Bug 1657822 : this bug appears

See Also: → 1674802

Timothy, your patch in bug 1657822 seems to have caused this regression. Could you look and tell us if this needs fixing before we ship 83? Thanks

Flags: needinfo?(tnikkel)

I investigated this a bit just now. It looks like the page structure is making it so that this NotifyApzTransaction() call is getting run and clearing out the pending ScrollPositionUpdate without it actually getting sent over in the paint transaction.

I have a potential fix for this but try server seemed upset in general, not at my patch, this evening

https://treeherder.mozilla.org/jobs?repo=try&group_state=expanded&revision=da153e066348ed3e0da6de0b692d9b38d2c3ff72

Flags: needinfo?(tnikkel)
Severity: -- → S3
Priority: -- → P2

Scroll frames can appear in multiple containers.

Notifying the scroll frame causes it to clear it list of scroll updates. So we lose the scroll updates prematurely.

Previously https://phabricator.services.mozilla.com/D88650 moved the notify from happening the first time the scroll frame was encountered in a container to when the container is finished.

This patch moves this handling out of the container state and into FrameLayerBuilder.

Assignee: nobody → tnikkel
Status: NEW → ASSIGNED
Attachment #9185820 - Attachment description: Bug 1674935. Collect and notify scroll frame in FrameLayerBuilder not in ContainerState. r?mattwoodrow → Bug 1674935. Collect and notify scroll frame in nsDisplayListBuilder not in ContainerState. r?mattwoodrow
Pushed by tnikkel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/babbf6dcd496
Collect and notify scroll frame in nsDisplayListBuilder not in ContainerState. r=mattwoodrow
Blocks: 1675709

Filed bug 1675709 to ensure the webrender code path can't suffer the same problem.

Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch

Comment on attachment 9185820 [details]
Bug 1674935. Collect and notify scroll frame in nsDisplayListBuilder not in ContainerState. r?mattwoodrow

Beta/Release Uplift Approval Request

  • User impact if declined: (main thread initiated) scrolling doesn't work on some pages
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): I specifically crafted the patch to be low risk, moving further fixes into bug 1675709
  • String changes made/needed:
Attachment #9185820 - Flags: approval-mozilla-beta?

Comment on attachment 9185820 [details]
Bug 1674935. Collect and notify scroll frame in nsDisplayListBuilder not in ContainerState. r?mattwoodrow

Approved for 83.0b10.

Attachment #9185820 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: