WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
142151
history.replaceState/location.replace incorrectly adds new entries to global history in Safari
https://bugs.webkit.org/show_bug.cgi?id=142151
Summary
history.replaceState/location.replace incorrectly adds new entries to global ...
Jason Davies
Reported
2015-03-01 10:57:34 PST
The purpose of history.replaceState is to *modify* the current history entry. This works in the context of using the back button. However, it always seems to add *new* history entries, in the context of the History menu item (and "Show History" page). This causes a huge number of history entries for pages that update the URL frequently, e.g. zoom/pan of maps where the current zoom and position are encoded in the URL. A good example of this in the wild is
http://polymaps.org/
- e.g.
http://polymaps.org/ex/midnight-commander.html
- note that Polymaps actually uses location.replace internally with the same problem, though using history.replaceState doesn't fix it.
Attachments
Add attachment
proposed patch, testcase, etc.
Jason Davies
Comment 1
2015-03-01 11:11:06 PST
Interestingly, Chrome appears to have the same behaviour for history.replaceState (adding new entries to the history page) - but not for location.replace.
Brady Eidson
Comment 2
2015-03-03 22:03:30 PST
The specs declare when the browser engine has to do with the session history, which is what is represented by the back button. And WebKit handles that correctly. I don't believe any spec defines what browsers have to do with their global history collections, as that's outside the scope of the engine. So I think you're reporting a Safari bug, as Safari decides what entires to show in its history menu. And Safari is not WebKit.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug