Changing the URL #hash in JS (using location.hash or history.pushState()) disrupts scrolling on FF for Android

RESOLVED FIXED in Firefox 48

Status

()

Firefox for Android
Toolbar
RESOLVED FIXED
2 years ago
a year ago

People

(Reporter: n.mussin, Unassigned)

Tracking

42 Branch
Firefox 48
Unspecified
Android
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

29.81 KB, text/html
Details
(Reporter)

Description

2 years ago
Created attachment 8682635 [details]
bug.html

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0
Build ID: 20151016093648
Firefox for Android

Steps to reproduce:

Call history.pushState() or history.replaceState() during scrolling. Open the attached html file on mobile Firefox to see the problem (the problematic code is at the bottom).


Actual results:

Scrolling completely stops and the page sometimes visibly "jumps" a few pixels


Expected results:

Nothing. Neither should the scrolling come to a full stop, nor should the whole page jump visually when a history entry is pushed or replaced.
(Reporter)

Updated

2 years ago
Summary: Calling history.pushState() or history.replaceState() during scroll disrupts scrolling on FF for Android → Calling history.pushState() or history.replaceState() disrupts scrolling on FF for Android
(Reporter)

Updated

2 years ago
Component: Untriaged → General
OS: Unspecified → Android
Product: Firefox → Firefox for Android
Version: 41 Branch → Firefox 41
(Reporter)

Updated

2 years ago
Version: Firefox 41 → Firefox 42
Confirmed behavior on Firefox 45 using a Nexus 5x.
Status: UNCONFIRMED → NEW
tracking-fennec: --- → ?
Ever confirmed: true
Component: General → Graphics, Panning and Zooming
Tested this with the C++ APZ and it appears to be fixed by that. Marking dependent on apz-fennec.
Depends on: 776030
tracking-fennec: ? → ---
riding with APZ
(Reporter)

Comment 4

2 years ago
Update: This bug occurs whenever the URL #hash changes, not only in history.pushState(), but also on window.location.hash = "#foo";
(Reporter)

Updated

2 years ago
Summary: Calling history.pushState() or history.replaceState() disrupts scrolling on FF for Android → Changing the URL #hash in JS (using location.hash or history.pushState()) disrupts scrolling on FF for Android
This should be fixed in the latest nightly as we have turned on the C++ APZ code. I'm changing the dependencies here so we can mark this fixed once we decide to ship the C++ APZ on Fennec.
Blocks: 1206874
No longer depends on: 776030
No longer blocks: 1206874
Depends on: 1206874
APZ has shipped in Firefox 48, so closing this out.
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 48
You need to log in before you can comment on or make changes to this bug.