Contact emails
rak...@chromium.org,
anna...@chromium.org
Explainer
No information provided
Specification
https://github.com/whatwg/html/pull/11765
Summary
Prevents an ongoing navigation from being unnecessarily canceled by a new, identical navigation that is initiated in quick succession. This optimization improves performance and the user experience by not wasting resources on a duplicate request, which can be caused by accidental double-clicks.
Blink component
UI>Browser>Navigation
Web Feature ID
Missing feature
Motivation
We observe users sometimes navigate to the same URL in quick succession, likely by accident. Because new navigations take precedent over an older one, this means it will waste the earlier navigation that's already in progress, potentially wasting a response that is already in flight for the navigation and causing the user to wait longer (from the time the first navigation kicks off).
To mitigate this waste, the feature will ignore the duplicate navigation and let the first navigation continue.
Initial public proposal
https://github.com/whatwg/html/issues/11743
TAG review
https://github.com/w3ctag/design-reviews/issues/1240
TAG review status
Issues open
Goals for experimentation
We have already conducted experimentation which showed positive results in reducing duplicate queries sent to servers.
Risks
Interoperability and Compatibility
The user-facing behavior will remain identical, as we only target duplicate navigations under specific conditions, such as same URLs and close start times. One minor change to web-exposed behavior is that the initial navigation is now maintained instead of being replaced by the subsequent duplicate request.
Gecko: No signal (
https://github.com/mozilla/standards-positions/issues/1307)
WebKit: No signal (
https://github.com/WebKit/standards-positions/issues/563)
Web developers: No signals
Other signals:
Ergonomics
N/A
Activation
N/A
Security
The feature prevents cross-site leak risks by ensuring that an initiator document cannot detect or infer cookie changes made by other documents. No cross-site state information is ever exposed during the duplicate navigation check.
WebView application risks
Does this intent deprecate or change behavior of existing APIs,
such that it has potentially high risk for Android WebView-based
applications?
To minimize compatibility risks, navigation callbacks and history entries preserve their legacy behavior, preventing application breakage.
Debuggability
N/A
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes
We are currently rolling out this feature on WebView. On other platforms, the experiment has already concluded and we are shipping it.
No
Flag name on about://flags
No information provided
Finch feature name
IgnoreDuplicateNavs
Rollout plan
Will ship enabled for all users
Requires code in //chrome?
False
Tracking bug
https://crbug.com/366060351
Launch bug
https://launch.corp.google.com/launch/4428715
Availability expectation
Feature is available only in Chromium browsers. It is not clear if/when other browsers will follow.
Adoption expectation
Feature is considered a best practice for some use case within 12 months of reaching Web Platform baseline.
Non-OSS dependencies
Does the feature depend on any code or APIs outside the Chromium
open source repository and its open-source dependencies to
function?
No.
Estimated milestones
| Shipping on desktop | 151 |
| Shipping on Android | 151 |
| Shipping on iOS | 151 |
Anticipated spec changes
Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github
issues in the project for the feature specification) whose resolution
may introduce web compat/interop risk (e.g., changing to naming or
structure of the API in a non-backward-compatible way).
Standard criteria for duplicate navigations are being finalized within the WHATWG HTML specification.
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5137490012930048?gate=6446755898064896