Contact emails

[email protected], [email protected]

Specification

https://github.com/WICG/navigation-api/pull/235

Summary

transitionWhile() is being replaced by navigateEvent.intercept() due to
design flaws reported by developers.

The flaws in transitionWhile() were discussed in
https://github.com/WICG/navigation-api/issues/230,

the spec update to replace transitionWhile() with intercept() is at
https://github.com/WICG/navigation-api/pull/235, and the introduction of
intercept() has its own chromestatus entry at
https://chromestatus.com/feature/5194055716700160.


Blink component

Blink>History
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EHistory>

Motivation

transitionWhile() has design issues that have meant developers have found
it difficult to use effectively, detailed in
https://github.com/WICG/navigation-api/issues/230#issuecomment-1137891972

intercept() is being introduced to provide a more usable API for the same
basic functionality of transitionWhile().


Initial public proposal

https://github.com/WICG/navigation-api/pull/235

TAG review

https://github.com/w3ctag/design-reviews/issues/717

TAG review status

Issues open

Risks

Interoperability and Compatibility

For those migrating to intercept(), the main risk is that web developer
"handling" logic will run at a subtly different time, but per the explainer
that time will actually be less buggy in the usual case.

Also, transitionWhile() only recently shipped (M102). There are few
consumers of the API, and we are in contact with most of them already, so
we believe we can guide them on any migration challenges they might have.

The overall use counter for the navigation API (
https://chromestatus.com/metrics/feature/timeline/popularity/4056) shows
0.000097% of pages on the web using any portion of the API, which provides
an upper bound on the potential breakage here. (That use counter also
counts various other entry points to the API, which are not being changed.)

We plan to support both intercept() and transitionWhile() for 3 releases to
provide a migration period (adding intercept() in M105, removing
transitionWhile() in M108).


Gecko: No signal https://github.com/mozilla/standards-positions/issues/543
remains open as the positions request for the original API.

WebKit: No signal
https://www.mail-archive.com/[email protected]/msg30257.html
remains open as the positions request for the original API.

Web developers: Positive The problem this was solving was discovered by a
web developer in https://github.com/WICG/navigation-api/issues/230, and has
some engagement there.

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?


Debuggability

N/A


Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

No


Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1336000

Estimated milestones

Deprecate: M105. Remove: M108.


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5169970311856128

This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACf%3D2LJ2ErzDF1O8eo2BrsW3y9MWQ3XbcFQGJov%3Dcd5q7%3DPgCw%40mail.gmail.com.

Reply via email to