On Thu, Feb 22, 2024 at 6:01 PM Fergal Daly <fer...@google.com> wrote:
> > > On Thu, 22 Feb 2024 at 16:32, Domenic Denicola <dome...@chromium.org> > wrote: > >> >> >> On Thu, Feb 22, 2024 at 4:20 PM Yuzu Saijo <yu...@google.com> wrote: >> >>> Thanks Domenic for bringing up the concerns! >>> >>> - I found >>> performance-navigation-timing-navigation-failure.tentative.window.js >>> >>> <https://github.com/web-platform-tests/wpt/blob/master/performance-timeline/not-restored-reasons/performance-navigation-timing-navigation-failure.tentative.window.js> >>> which >>> seems like it needs to be updated from "error-document" to >>> "navigation-failure". That's worth looking into in case it means the >>> implementation is also not yet updated. >>> >>> > Updated all the strings to match the spec-defined strings. >>> >>> - I also found that the Chromium test directory is full of >>> -expected.txt files >>> >>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/abort-block-bfcache.window-expected.txt?q=NotRestoredReasonDetails&ss=chromium%2Fchromium%2Fsrc&start=21>, >>> which seem to match up with the failures on wpt.fyi >>> >>> <https://wpt.fyi/results/performance-timeline/not-restored-reasons?label=master&label=experimental&aligned&q=performance-timeline%2Fnot-restored-reasons>. >>> Will those be addressed before shipping? >>> >>> > Now the failing tests and the expected files are down to three. >>> 1) parser-aborted >>> We currently block with different reason("loading"), as we haven't >>> worked on differentiating loading vs parser getting aborted. >>> >> >> Note that "loading" is a nonstandard reason, so it would be bad to ship >> in that state. It should either be the correct reason ("parser-aborted") or >> the generi "masked" reason. >> > > "parser-aborted" is a reason that Chrome doesn't currently emit (it > doesn't exist in the code). I'm not sure how we ended up speccing a reason > that doesn't exist but I don't think we punt the entire NRR feature for > another milestone for that. > > > >> 2) navigation-failure >>> We do report "navigation-failure" when the document errors( >>> implementation >>> <https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/back_forward_cache_impl.cc;drc=f4a00cc248dd2dc8ec8759fb51620d47b5114090;bpv=1;bpt=1;l=912>), >>> but somehow the test only reports "http-status-not-ok" which is the chrome >>> internal reason. >>> >> >> Similar to the above. >> > > I think this one we can just make change http-status-no-ok to > navigation-failure. > > >> >> >>> I will look into this more. >>> 3) weblock >>> Chrome currently blocks with another reason here (masked), so this >>> failure will not go away. Maybe I should make WPTs to test if the expected >>> reason exists in the list, instead of checking the complete list. >>> >> >> Allowing an implementation to always do "masked" and pass the tests seems >> reasonable to me. >> > > I think this is a general issue with the testing. It should always be OK > for a UA to have extra reasons, e.g. when we do add parser-aborted, loading > will continue to show up. I guess we could add a hack to suppress loading > if parser-aborted is present but really what we care about in these tests > is that the specced reason is present in the specced case, > As we've discussed elsewhere on this thread, extra reasons are not OK; the APIs we ship need to be specified. "masked" is always OK though, per the spec. > > F > > > >> >> >>> >>> - I found a nonstandard toJSON() in NotRestoredReasonDetails >>> >>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/timing/not_restored_reasons.idl;l=12;drc=6211b1c8268b239694bd84d7a99e508a15dc6dea> >>> in >>> Chromium. Was the intent to specify that? >>> >>> > Added this to the spec, thanks! >>> >> >>> - Can you confirm that Chromium does not plan to ship any >>> nonstandard not restored reason strings, beyond the specified "fetch", >>> "navigation-failure", "parser-aborted", "websocket", "lock", and >>> "masked"? >>> >>> > We plan to add user-agent specific reasons to the spec in the >>> may-block section. >>> This is the draft PR <https://github.com/whatwg/html/pull/10154/files> >>> (have't added the explanation for each reason yet). >>> Is it okay to ship while we work on the follow-up PR? >>> >> >> You could ship the portion that is fully specified, but the portions in >> the draft PR would not be approved for shipment until they reach the usual >> bars (e.g., a fully reviewed spec, web platform tests, other-vendor >> positions, etc.). >> >> >>> >>> >>> On Wednesday, February 7, 2024 at 2:33:04 PM UTC+9 Domenic Denicola >>> wrote: >>> >>>> On Wed, Feb 7, 2024 at 12:51 PM Fergal Daly <fer...@google.com> wrote: >>>> >>>>> On Wed, 7 Feb 2024 at 12:26, Domenic Denicola <dom...@chromium.org> >>>>> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Tue, Feb 6, 2024 at 6:40 PM Fergal Daly <fer...@google.com> wrote: >>>>>> >>>>>>> On Tue, 6 Feb 2024 at 15:13, Domenic Denicola <dom...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> I am happy with the spec progress here and don't think it's a >>>>>>>> significant blocker for the Intent at this point. >>>>>>>> >>>>>>>> On the tests and implementation: >>>>>>>> >>>>>>>> - I found >>>>>>>> performance-navigation-timing-navigation-failure.tentative.window.js >>>>>>>> >>>>>>>> <https://github.com/web-platform-tests/wpt/blob/master/performance-timeline/not-restored-reasons/performance-navigation-timing-navigation-failure.tentative.window.js> >>>>>>>> which seems like it needs to be updated from "error-document" to >>>>>>>> "navigation-failure". That's worth looking into in case it means the >>>>>>>> implementation is also not yet updated. >>>>>>>> - I also found that the Chromium test directory is full of >>>>>>>> -expected.txt files >>>>>>>> >>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/performance-timeline/not-restored-reasons/abort-block-bfcache.window-expected.txt?q=NotRestoredReasonDetails&ss=chromium%2Fchromium%2Fsrc&start=21>, >>>>>>>> which seem to match up with the failures on wpt.fyi >>>>>>>> >>>>>>>> <https://wpt.fyi/results/performance-timeline/not-restored-reasons?label=master&label=experimental&aligned&q=performance-timeline%2Fnot-restored-reasons>. >>>>>>>> Will those be addressed before shipping? >>>>>>>> - I found a nonstandard toJSON() in NotRestoredReasonDetails >>>>>>>> >>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/timing/not_restored_reasons.idl;l=12;drc=6211b1c8268b239694bd84d7a99e508a15dc6dea> >>>>>>>> in >>>>>>>> Chromium. Was the intent to specify that? >>>>>>>> - Can you confirm that Chromium does not plan to ship any >>>>>>>> nonstandard not restored reason strings, beyond the specified >>>>>>>> "fetch", >>>>>>>> "navigation-failure", "parser-aborted", "websocket", "lock", and >>>>>>>> "masked"? >>>>>>>> >>>>>>>> I don't know specifically what is there right now but I would >>>>>>> expect that we will ship others. E.g. BroadcastChannel blocks BFCache on >>>>>>> Chrome and Mozilla but not WebKit and there is currently disagreement. >>>>>>> Why >>>>>>> would it be better to show "masked" for that case? >>>>>>> >>>>>> >>>>>> The idea is to follow the standards and not ship nonstandard >>>>>> behavior. The current spec PR actually only allows sending "masked" in >>>>>> the >>>>>> cross-origin case, and doesn't allow sending it for BroadcastChannel. If >>>>>> the intention is to send some value in the BroadcastChannel case (which >>>>>> is this >>>>>> part of the spec >>>>>> <https://html.spec.whatwg.org/multipage/browsing-the-web.html#document-state:~:text=User%20agents%20may,keeping%20it%20cached.>) >>>>>> then that needs to be specified in the spec PR before shipping such a >>>>>> value >>>>>> in Chromium. >>>>>> >>>>> >>>>> BFCaching is never required by spec. That means any browser can block >>>>> BFCache at any time, for any reason and still be in spec. >>>>> >>>> >>>> Yes. But a browser cannot create values for the >>>> NotRestoredReasonDetails's reason property which are not in the spec, while >>>> staying spec-compliant. This is similar to how we cannot have, e.g., >>>> DOMException's name property returning arbitrary values; we instead >>>> document >>>> them all in the spec >>>> <https://webidl.spec.whatwg.org/#idl-DOMException-error-names>, and >>>> then document that some of them may be thrown in implementation-specific >>>> circumstances (example <https://html.spec.whatwg.org/#killing-scripts> >>>> ). >>>> >>>> >>>>> >>>>> I think what's missing is that said we would maintain a registry of >>>>> reasons that were not in the spec so that when we block for unspecced >>>>> reasons, we don't proliferate a bunch of undocumented names. >>>>> >>>>> I'm not sure how to express that in the spec, >>>>> >>>> >>>> We discussed how to do so upthread: >>>> https://groups.google.com/a/chromium.org/g/bfcache-dev/c/ufQx6r6su6U/m/vyQM9nGHAwAJ >>>> >>>> >>>> >>>> >>>> >>>>> >>>>> F >>>>> >>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> F >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Feb 5, 2024 at 5:38 PM Yuzu Saijo <yu...@google.com> wrote: >>>>>>>> >>>>>>>>> This is now ready to ship, now that we have all the approvals on the >>>>>>>>> ChromeStatus >>>>>>>>> <https://chromestatus.com/feature/5684908759449600?gate=6535221965488128>and >>>>>>>>> the spec draft <https://github.com/whatwg/html/pull/9360> is >>>>>>>>> close to agreement. >>>>>>>>> >>>>>>>>> Can you please take a look at this again? >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> On Saturday, September 30, 2023 at 5:00:51 AM UTC+9 Chris >>>>>>>>> Harrelson wrote: >>>>>>>>> >>>>>>>>>> Please also make sure to complete all of the other shipping gate >>>>>>>>>> reviews >>>>>>>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/bqvB1oap0Yc/m/YlO8DEHgAQAJ> >>>>>>>>>> . >>>>>>>>>> >>>>>>>>>> Thanks! >>>>>>>>>> Chris >>>>>>>>>> >>>>>>>>>> On Thu, Aug 10, 2023 at 8:46 AM 'Yuzu Saijo' via blink-dev < >>>>>>>>>> blin...@chromium.org> wrote: >>>>>>>>>> >>>>>>>>>>> Sounds good, I will create a list on the explainer >>>>>>>>>>> <https://github.com/WICG/bfcache-not-restored-reason/blob/main/NotRestoredReason.md> >>>>>>>>>>> for the "may block" reasons then. >>>>>>>>>>> >>>>>>>>>>> Re: exposing NotRestoredReasons interface instead of object in >>>>>>>>>>> idl: >>>>>>>>>>> I'm working on the implementation in this CL >>>>>>>>>>> <https://chromium-review.googlesource.com/c/chromium/src/+/4770594> >>>>>>>>>>> . >>>>>>>>>>> This might be a basic question, but is there any difference on >>>>>>>>>>> how to call the API from users' perspective, when the exposed >>>>>>>>>>> attribute is >>>>>>>>>>> an interface vs object? >>>>>>>>>>> >>>>>>>>>>> On Thursday, August 10, 2023 at 10:06:49 AM UTC+9 >>>>>>>>>>> dom...@chromium.org wrote: >>>>>>>>>>> >>>>>>>>>>>> On Wed, Aug 9, 2023 at 6:44 PM Fergal Daly <fer...@google.com> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> On Wed, 9 Aug 2023 at 12:01, Domenic Denicola < >>>>>>>>>>>>> dom...@chromium.org> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I think specifying these reasons is important. As noted in the >>>>>>>>>>>>>> linked issue >>>>>>>>>>>>>> <https://github.com/WICG/bfcache-not-restored-reason/issues/2>, >>>>>>>>>>>>>> I think the end goal should be: >>>>>>>>>>>>>> >>>>>>>>>>>>>> - Every reason that a browser ever emits, is found in a >>>>>>>>>>>>>> specification somewhere. (It doesn't have to be the HTML >>>>>>>>>>>>>> spec, e.g. the >>>>>>>>>>>>>> speech synthesis reason could live in the speech synthesis >>>>>>>>>>>>>> spec.) >>>>>>>>>>>>>> >>>>>>>>>>>>>> There's no intrinsic reason for speech synthesis to block >>>>>>>>>>>>> BFCache. It just happens that Chrome blocked it. There's no spec >>>>>>>>>>>>> reason for >>>>>>>>>>>>> unload to block BFCache, in fact the spec says that it doesn't. >>>>>>>>>>>>> >>>>>>>>>>>>> I think it's good for us to have agreed names, e.g. >>>>>>>>>>>>> "unload-event-handler". Should we put into various specs "if an >>>>>>>>>>>>> implementer >>>>>>>>>>>>> chooses to block BFCache because X has been used, they should use >>>>>>>>>>>>> the >>>>>>>>>>>>> reason `Y`"? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> - If browsers prevent bfcache restoration for a reason >>>>>>>>>>>>>> not found in a spec, it is always translated to a >>>>>>>>>>>>>> standardized reason such >>>>>>>>>>>>>> as "unknown". >>>>>>>>>>>>>> >>>>>>>>>>>>>> This avoids the usual interop problems with vendor-specific >>>>>>>>>>>>>> extensions to the web platform, such as: no clear specification >>>>>>>>>>>>>> for what >>>>>>>>>>>>>> strings to use; no clear point at which the reason is added to >>>>>>>>>>>>>> the >>>>>>>>>>>>>> document's reasons list; etc. Although you claim these reasons >>>>>>>>>>>>>> are >>>>>>>>>>>>>> idiosyncratic to Chrome, that won't necessarily be the case; >>>>>>>>>>>>>> e.g. Firefox >>>>>>>>>>>>>> has unload handler as a reason, and I suspect most user agents >>>>>>>>>>>>>> have memory >>>>>>>>>>>>>> limitations or similar. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Chrome has over 100 reasons. I'd say at least 50 of them are >>>>>>>>>>>>> actionable such that you wouldn't want to lump them into an opaque >>>>>>>>>>>>> "unknown" category. >>>>>>>>>>>>> >>>>>>>>>>>>> I do not relish the idea of updating 50 places in spec to >>>>>>>>>>>>> insert a name to be used if you decide to block. >>>>>>>>>>>>> >>>>>>>>>>>>> How about maintaining a central list of reasons with low >>>>>>>>>>>>> friction to add new reasons even if they are browser-specific? >>>>>>>>>>>>> The cases >>>>>>>>>>>>> where you *must* block should still be inline in spec (and >>>>>>>>>>>>> also on the list), >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> That sounds great to me. We should probably make this >>>>>>>>>>>> separation clear in the spec, e.g. the "must" list will have >>>>>>>>>>>> cross-references you can follow, whereas the "may" list ends up >>>>>>>>>>>> only being >>>>>>>>>>>> cross-referenced from some generic location like >>>>>>>>>>>> https://html.spec.whatwg.org/multipage/browsing-the-web.html#note-bfcache:~:text=User%20agents%20may,keeping%20it%20cached. >>>>>>>>>>>> . >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> F >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> We could have a discussion about allowing vendor-specific >>>>>>>>>>>>>> information in the API *in addition* to the standardized >>>>>>>>>>>>>> reasons. For example, we could have one of the standardized >>>>>>>>>>>>>> reasons be >>>>>>>>>>>>>> "user-agent-specific", and then add an additional field >>>>>>>>>>>>>> userAgentSpecificInfo. But I would like to see significantly more >>>>>>>>>>>>>> discussion with other vendors before going that route. >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Tue, Aug 8, 2023 at 9:56 PM Yuzu Saijo <yu...@google.com> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> +bfcache-dev >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I was talking to Fergal today and discussed this, and I am >>>>>>>>>>>>>>> not sure about adding browser-specific reasons to the spec. >>>>>>>>>>>>>>> For example, some reasons like "speech synthesis API is >>>>>>>>>>>>>>> used" / "unload handler" are completely specific to Chrome, and >>>>>>>>>>>>>>> it doesn't >>>>>>>>>>>>>>> really make sense to add them to the spec, even with the >>>>>>>>>>>>>>> namespace >>>>>>>>>>>>>>> (x-speechsysthesis / x-unloadhandler). >>>>>>>>>>>>>>> Maybe we can document the reasons somewhere in a shared list >>>>>>>>>>>>>>> but not in the spec? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I think the API would be more useful if it can give as much >>>>>>>>>>>>>>> information as possible, not limited to the specced reasons. >>>>>>>>>>>>>>> Please let me know what you think! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Yuzu >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Thursday, August 3, 2023 at 12:39:17 PM UTC+9 Yuzu Saijo >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Sorry for the delayed response. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *> there doesn't appear to be any NotRestoredReasons >>>>>>>>>>>>>>>> interface defined in Chromium?* >>>>>>>>>>>>>>>> Let me address this implementation and delay the shipping >>>>>>>>>>>>>>>> until the chromium implementation matches the proposed spec. >>>>>>>>>>>>>>>> Thanks for >>>>>>>>>>>>>>>> pointing it out! >>>>>>>>>>>>>>>> Same for WPT. I will add tests for all the standardized >>>>>>>>>>>>>>>> reasons. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *> Can you confirm that you're only shipping the specified >>>>>>>>>>>>>>>> four?* >>>>>>>>>>>>>>>> We do have ~50 not restored reasons, and in theory we will >>>>>>>>>>>>>>>> be able to remove most of them except for the standardized >>>>>>>>>>>>>>>> four reasons. >>>>>>>>>>>>>>>> However, in reality it will take time for us to support all >>>>>>>>>>>>>>>> the reasons and we need to keep blocking on them for a while. >>>>>>>>>>>>>>>> In the meantime, our plan was to expose the >>>>>>>>>>>>>>>> non-standardized reasons too, but in a way that's >>>>>>>>>>>>>>>> distinguishable from >>>>>>>>>>>>>>>> standardized reasons as you suggested here >>>>>>>>>>>>>>>> <https://github.com/WICG/bfcache-not-restored-reason/issues/2> >>>>>>>>>>>>>>>> . >>>>>>>>>>>>>>>> I realized that we need to add browser specific reasons to >>>>>>>>>>>>>>>> the spec as well. Let me add that and send a review request >>>>>>>>>>>>>>>> again. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks! >>>>>>>>>>>>>>>> Yuzu >>>>>>>>>>>>>>>> On Thursday, July 13, 2023 at 12:07:05 PM UTC+9 >>>>>>>>>>>>>>>> dom...@chromium.org wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> 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 < >>>>>>>>>>>>>>>>> dom...@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 < >>>>>>>>>>>>>>>>>> yoav...@chromium.org> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Thu, Jul 6, 2023 at 7:28 AM 'Yuzu Saijo' via >>>>>>>>>>>>>>>>>>> blink-dev <blin...@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+...@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+...@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 "bfcache-dev" group. >>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>>>> it, send an email to bfcache-dev...@chromium.org. >>>>>>>>>>>>>> To view this discussion on the web, visit >>>>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/bfcache-dev/CAM0wra-P3NxELP28%3Dgh%3D3ROC35m8ijS_5RRcStyjFew1AXNyEg%40mail.gmail.com >>>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/bfcache-dev/CAM0wra-P3NxELP28%3Dgh%3D3ROC35m8ijS_5RRcStyjFew1AXNyEg%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+...@chromium.org. >>>>>>>>>>> >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/43e32f0e-454e-4525-b317-cbe492e2f23bn%40chromium.org >>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/43e32f0e-454e-4525-b317-cbe492e2f23bn%40chromium.org?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/CAM0wra8KLFztjm06d7sQBUzKJFRW8QmGL0ueoq7v1oqiK1zFbQ%40mail.gmail.com.