(This intervention has been reviewed and approved for launch. As discussed with API owners, announcing the change on blink-dev to ensure that developers are made aware of this change.)
Contact emails
Specification:
Summary
Some pages makes it difficult or impossible for the user to go back to the page they came from via the browser back button. This is accomplished by redirects or by manipulating the browser history and results in an abusive/annoying user experience.
The new behavior of the browser’s back button will be to skip over pages that added history entries or redirected the user without ever getting a user gesture. Note that the intervention only impacts the browser back/forward button UI and not the history.back/forward APIs.
Here’s an example:
b.com adds a history entry using pushState or navigates the user to another page (
c.com) without ever getting a user gesture.
b.com will then be skipped if the user presses back and user will directly be navigated to
a.com.
Given the above, developers should be aware that if they want the browser’s back button to land on a page that redirected after loading, then that page should have had a user gesture before redirecting. Developers should also be aware that if a history entry is added but there is no user gesture by the time the user hits back, the page adding the history entry will be skipped and the popstate event will not fire.
This feature will be supported on all six Blink platforms (Windows, Mac, Linux,
Chrome OS, Android, and Android WebView).
Tracking bug
Launch bug (internal only)