Also, checking the tests, it seems like the currently-implemented reasons don't match the spec. E.g. this test <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.tentative.window.js> requires the reason to be "WebSocket", but the specification says "websocket" (lowercase). I couldn't find tests for the other three reasons...
On Thu, Jul 13, 2023 at 12:04 PM Domenic Denicola <dome...@chromium.org> wrote: > I have some questions about how well the implementation here matches up > with the spec. > > First, there doesn't appear to be any NotRestoredReasons interface defined > in Chromium? The relevant attribute on PerformanceNavigationTiming > returns object? > <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/timing/performance_navigation_timing.idl;l=33?q=NotRestoredReasons%20file:%5C.idl&ss=chromium>. > That seems like a problematic mismatch... > > Second, I can't find exactly where the list of script-exposed not restored > reasons are. But, I'll note that Chromium seems to have ~50 such reasons > <https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:content/browser/renderer_host/back_forward_cache_metrics.h;drc=6754d1409bf5099314eea7e87e896622ade9bc0f;l=49>, > whereas you've only specified 4 (fetch, navigation-failure, parser-aborted, > websocket). Can you confirm that you're only shipping the specified four? > > Thanks! > > On Thu, Jul 13, 2023 at 12:11 AM Yoav Weiss <yoavwe...@chromium.org> > wrote: > >> >> >> On Thu, Jul 6, 2023 at 7:28 AM 'Yuzu Saijo' via blink-dev < >> blink-dev@chromium.org> wrote: >> >>> Contact emails >>> >>> yu...@google.com, yu...@chromium.org, fer...@chromium.org >>> >>> Explainer >>> >>> >>> https://github.com/WICG/bfcache-not-restored-reason/blob/main/NotRestoredReason.md >>> >>> Specification >>> >>> https://github.com/whatwg/html/pull/9360 >>> >>> Design docs >>> >>> >>> https://github.com/WICG/bfcache-not-restored-reason/blob/main/NotRestoredReason.md >>> >>> Summary >>> >>> NotRestoredReason API will report the list of reasons why a page is not >>> served from BFcache in a frame tree structure, via >>> PerformanceNavigationTiming API. >>> >>> >>> Blink component >>> >>> UI>Browser>Navigation>BFCache >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:UI%3EBrowser%3ENavigation%3EBFCache> >>> >>> TAG review >>> >>> https://github.com/w3ctag/design-reviews/issues/739 >>> >>> TAG review status >>> >>> Issues addressed >>> >>> Risks >>> >>> Interoperability and Compatibility >>> >>> Gecko: Defer (https://github.com/mozilla/standards-positions/issues/766) >>> Once issues (standardized reasons & unsalvageable documents), they would >>> switch to positive. >>> >> >> It seems like the "standardized reasons" part is addressed in your PR. Is >> the same true for the second point? >> >> >>> >>> WebKit: No signal ( >>> https://github.com/WebKit/standards-positions/issues/154) >>> >>> Web developers: Positive ( >>> https://github.com/w3c/navigation-timing/issues/171#issuecomment-1062672989 >>> ) >>> >>> Other signals: Positive from Origin Trial users: >>> >>> How likely are you to keep using this feature? >>> >>> 92% answered likely, 8% (1 vote) is unsure >>> >>> Security >>> >>> We do not report detailed information about cross-origin iframes. See >>> Security >>> and Privacy section >>> <https://github.com/WICG/bfcache-not-restored-reason/blob/main/NotRestoredReason.md#security-and-privacy> >>> in the explainer. >>> >>> >>> 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? >>> >>> No. >>> >>> >>> Debuggability >>> >>> In DevTools console, try: >>> >>> performance.getEntriesByType('navigation')[0].notRestoredReasons; >>> >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, Chrome OS, Android, and Android WebView)? >>> >>> Yes. >>> >>> NotRestoredReasons API is available on all platforms including WebView, >>> but back/forward cache is not enabled on WebView. So on WebView, >>> NotRestoredReasons API should always say that the page is blocked from >>> being restored from bfcache with the reason being something like “not >>> supported”. >>> >>> (Currently it reports null due to a bug >>> <https://bugs.chromium.org/p/chromium/issues/detail?id=1459533>) >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? >>> >>> Yes. >>> https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/ >>> >>> DevTrial instructions >>> >>> >>> https://github.com/rubberyuzu/bfcache-not-retored-reason/blob/main/HowToTest.md >>> >>> Flag nameblink RunTimeEnabledFeature: >>> BackForwardCacheSendNotRestoredReasons >>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=423?q=BackForwardCacheSendNotRestoredReasons%20-f:out&ss=chromium> >>> Requires code in //chrome? >>> >>> False >>> >>> Tracking bug >>> >>> https://bugs.chromium.org/p/chromium/issues/detail?id=1326344 >>> >>> Launch bug >>> >>> https://launch.corp.google.com/launch/4200848 >>> >>> Estimated milestones >>> >>> Shipping on desktop >>> >>> 116 >>> >>> OriginTrial desktop last >>> >>> 114 >>> >>> OriginTrial desktop first >>> >>> 109 >>> >>> DevTrial on desktop >>> >>> 108 >>> >>> Shipping on Android >>> >>> 116 >>> >>> OriginTrial Android last >>> >>> 114 >>> >>> OriginTrial Android first >>> >>> 109 >>> >>> DevTrial on Android >>> >>> 108 >>> >>> >>> Shipping on WebView >>> >>> 116 >>> >>> OriginTrial WebView last >>> >>> 114 >>> >>> OriginTrial WebView first >>> >>> 109 >>> >>> DevTrial on WebView >>> >>> 108 >>> >>> >>> Anticipated spec changes >>> >>> Open questions about a feature may be a source of future web compat or >>> interop issues. Please list open issues. >>> >>> https://github.com/whatwg/html/pull/9360 >>> >>> >>> Link to entry on the Chrome Platform Status >>> >>> https://chromestatus.com/feature/5684908759449600 >>> >>> Links to previous Intent discussions >>> >>> Intent to prototype: >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAP-nMoGAzjUjzv3WmxcRpUSBgnA-AHQ05kh9gXc%2BQB8pRM6%2BfA%40mail.gmail.com >>> Intent to Experiment: >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAP-nMoHe391sAB2PdbEVw9uiSPFxTB_EYsRizcPpZ7-pg16O0A%40mail.gmail.com >>> >>> Intent to Extend Experiment: >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA5e698QcKZSthm%3Dz_4pi8cOzi4kfbx-AXveC%2BAKimUh-tMycA%40mail.gmail.com >>> >>> >>> 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 blink-dev+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAP-nMoHYpT3sxWV%2BEipL5NcNSWy8fOdDdAroucmNb%3DZvxJWRBA%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAP-nMoHYpT3sxWV%2BEipL5NcNSWy8fOdDdAroucmNb%3DZvxJWRBA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> 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+unsubscr...@chromium.org. >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXtkH6O82W%2BWm9ckCyYasSJt2cbs9VA4VZAmYhtivgj4g%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXtkH6O82W%2BWm9ckCyYasSJt2cbs9VA4VZAmYhtivgj4g%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- 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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_MThpiH1EQJcwiLkZe8UUR3WU8tUFfrz1Tb3rkwUXQyw%40mail.gmail.com.