Closed Bug 1221241 Opened 5 years ago Closed 5 years ago

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

Categories

(Firefox for Android Graveyard :: Toolbar, defect)

42 Branch
Unspecified
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 48

People

(Reporter: n.mussin, Unassigned)

References

Details

Attachments

(1 file)

29.81 KB, text/html
Details
Attached file 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.
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
Component: Untriaged → General
OS: Unspecified → Android
Product: Firefox → Firefox for Android
Version: 41 Branch → Firefox 41
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: apz-fennec
tracking-fennec: ? → ---
riding with APZ
Update: This bug occurs whenever the URL #hash changes, not only in history.pushState(), but also on window.location.hash = "#foo";
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.
No longer depends on: apz-fennec
APZ has shipped in Firefox 48, so closing this out.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 48
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.