jap...@chromium.org, dom...@chromium.org
https://github.com/WICG/navigation-api/pull/235
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.
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().
https://github.com/WICG/navigation-api/pull/235
https://github.com/w3ctag/design-reviews/issues/717
Issues open
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/webki...@lists.webkit.org/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.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
N/A
No
False
https://bugs.chromium.org/p/chromium/issues/detail?id=1336000
Deprecate: M105. Remove: M108.
https://chromestatus.com/feature/5169970311856128
This intent message was generated by Chrome Platform Status.
--
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 blink-dev+...@chromium.org.
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.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw94z3Tb%3DMPBiG9MUszWz7art3gX1jqn3YvefG_Xwo8bMg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/172226f9-782e-8786-b3b8-8a3229f5fcc6%40chromium.org.
LGTM1
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
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.
--
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 blink-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw94z3Tb%3DMPBiG9MUszWz7art3gX1jqn3YvefG_Xwo8bMg%40mail.gmail.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 blink-dev+unsubscribe@chromium.org.
Hi all,I randomly discovered today that we forgot to remove one property as part of this deprecation and removal. We successfully removed NavigateEvent's transitionWhile() (replaced with intercept()), but did not remove the property canTransition (replaced with canIntercept).The percentage of page loads using the navigation API has certainly grown since this Intent was sent (now between 0.1-0.2%). However, I'm hopeful nobody is using canTransition. It's not documented anywhere, whereas canIntercept is. I did some GitHub code searches (e.canTransition, event.canTransition, and a much-noisier canTransition) and didn't find anything that would break: there was one case where it was being logged informationally, and a couple other cases where it was being used alongside transitionWhile(). Since transitionWhile() does not exist anymore, such code is already broken and thus likely not being used in the wild.Which path of action would the API owners prefer?
- Immediately disable canTransition, with a Finch flag to reenable it if that breaks something, based on the approval of this intent.
LGTM1
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
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.
--
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 blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw94z3Tb%3DMPBiG9MUszWz7art3gX1jqn3YvefG_Xwo8bMg%40mail.gmail.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 blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/172226f9-782e-8786-b3b8-8a3229f5fcc6%40chromium.org.
--
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/18443a7f-46d5-416d-a3ce-523ae5aedf41n%40chromium.org.
On Tue, Feb 25, 2025 at 11:16 PM Domenic Denicola <dom...@chromium.org> wrote:Hi all,I randomly discovered today that we forgot to remove one property as part of this deprecation and removal. We successfully removed NavigateEvent's transitionWhile() (replaced with intercept()), but did not remove the property canTransition (replaced with canIntercept).The percentage of page loads using the navigation API has certainly grown since this Intent was sent (now between 0.1-0.2%). However, I'm hopeful nobody is using canTransition. It's not documented anywhere, whereas canIntercept is. I did some GitHub code searches (e.canTransition, event.canTransition, and a much-noisier canTransition) and didn't find anything that would break: there was one case where it was being logged informationally, and a couple other cases where it was being used alongside transitionWhile(). Since transitionWhile() does not exist anymore, such code is already broken and thus likely not being used in the wild.Which path of action would the API owners prefer?
- Immediately disable canTransition, with a Finch flag to reenable it if that breaks something, based on the approval of this intent.
I'm supportive of immediately disabling, to minimize the chance we won't be able to remove it later in case usage increases.
On Wed, Feb 26, 2025 at 11:32 AM Chris Harrelson <chri...@chromium.org> wrote:On Tue, Feb 25, 2025 at 11:16 PM Domenic Denicola <dom...@chromium.org> wrote:Hi all,I randomly discovered today that we forgot to remove one property as part of this deprecation and removal. We successfully removed NavigateEvent's transitionWhile() (replaced with intercept()), but did not remove the property canTransition (replaced with canIntercept).The percentage of page loads using the navigation API has certainly grown since this Intent was sent (now between 0.1-0.2%). However, I'm hopeful nobody is using canTransition. It's not documented anywhere, whereas canIntercept is. I did some GitHub code searches (e.canTransition, event.canTransition, and a much-noisier canTransition) and didn't find anything that would break: there was one case where it was being logged informationally, and a couple other cases where it was being used alongside transitionWhile(). Since transitionWhile() does not exist anymore, such code is already broken and thus likely not being used in the wild.Which path of action would the API owners prefer?
- Immediately disable canTransition, with a Finch flag to reenable it if that breaks something, based on the approval of this intent.
I'm supportive of immediately disabling, to minimize the chance we won't be able to remove it later in case usage increases.+1 (with a finch flag)