LGTM2 I think that the header can be useful to help align BFCache behavior across engines. I'm looking forward to standardization efforts on that front.
On Wednesday, August 25, 2021 at 2:26:27 AM UTC+2 Kent Tamura wrote: > Excluding the "BFCache-Opt-In" part sounds good. > LGTM1. > > > On Tue, Aug 24, 2021 at 12:26 PM Minoru Chikamune <chikam...@chromium.org> > wrote: > >> We respect the API OWNER feedback that the status of BFCache-Opt-In >> header spec would cause more interoperability issues. We actually did plan >> on standardizing the header after Domenic raised a similar concern >> internally a while back, and already prepared the explainers etc for it, >> but it got accidentally dropped amidst the thick of things our team was >> doing to ensure the Desktop experiment goes smoothly. Then when the time >> came to draft our I2S, everyone thought the opt-in header had actually gone >> through the standardization process as planned before, and here we are. >> Apologies if this came off as not wanting to standardize something before >> shipping it, it’s definitely not our intention. >> >> >> >> Now, let us retract the "BFCache-Opt-In" header part from the I2S. We >> would appreciate your reviews under the new condition. Specifically, we >> would like to request shipping a version of BFCache for Desktop that >> forbids all pages with an unload handler to enter BFCache. >> >> The following paragraph from the original post: >> >> Notable difference to the Android launch is unload handlers. For this >> release, we mitigated the risk by requiring the `BFCache-Opt-In: unload` >> response header specified by the page author to put pages with unload >> handlers to BFCache. We will not fire unload events when the page is >> BFCached. This was less of an issue on Android, since the unload handlers >> were not reliable on Android anyway. Desktop Chrome also didn’t guarantee >> the unload handler as well, but it is fired most of the time that many >> desktop websites rely on it. Again, we don’t BFCache such pages without the >> page authors’ consent in this release, but we might want to revisit this in >> the future (related: Firefox experiment >> <https://groups.google.com/a/mozilla.org/g/dev-platform/c/3pQRLPZnQgQ/m/dsA1w4iiAwAJ>). >> >> An enterprise policy for disabling back-forward cache is available. >> >> Should now read: >> >> To mitigate the risk of breaking unload events, in this I2S, we would >> like to request shipping BFCache on Desktop which does not cache pages with >> unload handlers. (We plan to standardize and file a separate I2S for making >> pages with unload handlers BFCache-eligible in the future.) >> >> chikamune@, kouhei@, and rakina@ >> >> >> On Mon, Aug 23, 2021 at 4:54 PM TAMURA, Kent <tk...@chromium.org> wrote: >> >>> I agree with Domenic. >>> What's the status of the standardization effort of the 'BFCache-Opt-In' >>> header? >>> >>> >>> On Thu, Aug 19, 2021 at 2:01 AM Domenic Denicola <dome...@chromium.org> >>> wrote: >>> >>>> >>>> >>>> On Wed, Aug 18, 2021 at 9:14 AM Minoru Chikamune < >>>> chikam...@chromium.org> wrote: >>>> >>>>> Contact emails >>>>> >>>>> bfcache-...@chromium.org >>>>> >>>>> Explainer >>>>> >>>>> >>>>> https://docs.google.com/document/d/1PmUFTxTJN4n-WyWry4tQ96t5P9XXkgwFo9CiNeslZEg/edit >>>>> >>>>> Specification [updated since Android I2S] >>>>> >>>>> Back-forward cache (BFCache) is an already existing concept in HTML >>>>> spec. The BFCache eligibility is referred to as “document salvageable >>>>> state” [spec >>>>> <https://html.spec.whatwg.org/multipage/browsing-the-web.html#concept-document-salvageable>], >>>>> >>>>> and the navigation steps like “unloading a document” [spec >>>>> <https://html.spec.whatwg.org/multipage/browsing-the-web.html#unload-a-document>] >>>>> >>>>> refers to BFCache as “keep document alive in a session history entry”. We >>>>> have been actively improving BFCache in standards through writing >>>>> guidelines <https://github.com/w3ctag/design-principles/pull/317> on >>>>> how web platform features should interact with BFCache, filing and fixing >>>>> current spec issues <https://github.com/whatwg/html/issues/5880>, and >>>>> making it possible to test BFCache through WPTs >>>>> <https://github.com/web-platform-tests/wpt/pull/28950> (+ writing the >>>>> WPTs). >>>>> >>>>> Design docs [unchanged] >>>>> >>>>> >>>>> https://docs.google.com/document/d/1jwzZx_hUqca6ALmK2G1aNcykhWM1Bh79zRZlUg5KKjQ/edit >>>>> >>>>> Summary >>>>> >>>>> Back-forward cache is a browser feature which improves the user >>>>> experience by keeping a page alive after the user navigates away from it >>>>> and reuses it for session history navigation (browser back/forward >>>>> buttons, >>>>> history.back(), etc) to make the navigation instant. The pages in the >>>>> cache >>>>> are frozen and do not run any javascript. >>>>> >>>>> We already shipped >>>>> <https://www.chromestatus.com/feature/5815270035685376> this feature >>>>> for Android >>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/XS9VnYQoaQE>. >>>>> We want to ship back-forward cache on desktop environments. >>>>> >>>>> Link to “Intent to Experiment” blink-dev discussion >>>>> >>>>> https://groups.google.com/a/chromium.org/g/bfcache-dev/c/6nKwd472yPI >>>>> >>>>> Is this feature supported on all six Blink platforms (Windows, Mac, >>>>> Linux, Chrome OS, Android, and Android WebView)? >>>>> >>>>> No. >>>>> >>>>> We already shipped this feature for Android. >>>>> >>>>> We would like to proceed shipping of BFCache to Windows, Mac, Linux >>>>> and Chrome OS platforms with this I2S. >>>>> >>>>> We do not have active plans to support Android WebView as the cost of >>>>> integrating WebView embedding APIs with back-forward cache is too high, >>>>> while history navigation optimisations have limited benefit for WebView >>>>> given its nature. >>>>> >>>>> Debuggability [unchanged] >>>>> >>>>> Support for DevTools is planned >>>>> <https://docs.google.com/document/d/1AERry3jkVMk1OHtka_1Q3ThC-9OIMxUxZN4cPH9hi54/edit?usp=sharing> >>>>> >>>>> and currently being implemented. With this addition, web developers can >>>>> see >>>>> a list of reasons why their page is not eligible for bfcache. >>>>> >>>>> Blink component >>>>> >>>>> UI>Browser>Navigation>BFCache >>>>> >>>>> Search tags >>>>> >>>>> bfcache >>>>> <https://www.chromestatus.com/features/6520669959356416#tags:bfcache> >>>>> >>>>> RisksInteroperability and Compatibility [updated since Android I2S] >>>>> >>>>> Interoperability - Low, given that we have been shipping it on >>>>> Android, along with other vendors. >>>>> >>>>> Gecko: Shipping >>>>> <https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching> >>>>> >>>>> WebKit: Shipping >>>>> <https://webkit.org/blog/427/webkit-page-cache-i-the-basics/> >>>>> >>>>> Chrome Android: Shipping >>>>> <https://groups.google.com/a/chromium.org/g/blink-dev/c/XS9VnYQoaQE> >>>>> >>>>> Since shipping on Android, we have made significant progress on the >>>>> standardization front. The W3C TAG agreed >>>>> <https://github.com/w3ctag/design-reviews/issues/628#issuecomment-837570345> >>>>> >>>>> to put BFCache considerations to their Design Principles guideline [ >>>>> pull <https://github.com/w3ctag/design-principles/pull/317>, pull >>>>> <https://github.com/w3ctag/security-questionnaire/pull/128>], so all >>>>> future APIs will have BFCache support explicitly specified. The BFCache >>>>> interaction is now part of OWP Security Review as well. >>>>> >>>>> Compatibility - Low. >>>>> >>>>> To minimize compatibility risk, we continue to take the cautious >>>>> approach of not caching pages when faced with uncertainty. >>>>> >>>>> Notable difference to the Android launch is unload handlers. For this >>>>> release, we mitigated the risk by requiring the `BFCache-Opt-In: unload` >>>>> response header specified by the page author to put pages with unload >>>>> handlers to BFCache. We will not fire unload events when the page is >>>>> BFCached. This was less of an issue on Android, since the unload handlers >>>>> were not reliable on Android anyway. Desktop Chrome also didn’t guarantee >>>>> the unload handler as well, but it is fired most of the time that many >>>>> desktop websites rely on it. Again, we don’t BFCache such pages without >>>>> the >>>>> page authors’ consent in this release, but we might want to revisit this >>>>> in >>>>> the future (related: Firefox experiment >>>>> <https://groups.google.com/a/mozilla.org/g/dev-platform/c/3pQRLPZnQgQ/m/dsA1w4iiAwAJ>). >>>>> >>>>> An enterprise policy for disabling back-forward cache is available. >>>>> >>>> >>>> This header seems like a significant interop risk, as I'm not aware of >>>> any specification for it, or signals from other vendors. >>>> >>>> It would be good to get a specification pull request written to HTML, >>>> appropriate WPT coverage, and ideally some agreement from other vendors >>>> that they want to go this route, before shipping. >>>> >>>> >>>>> >>>>> Ergonomics [unchanged] >>>>> >>>>> N/A. Websites don’t have to do anything (i.e. they will benefit from >>>>> BFCache automatically). >>>>> >>>>> Activation [unchanged] >>>>> >>>>> Mostly N/A. >>>>> >>>>> Back-forward cache will work without any developer activation, but web >>>>> developers can make their pages bfcache-friendly with some extra work. >>>>> This >>>>> would further increase the cache hit rate and improve the user >>>>> experience. >>>>> We have published guidance on https://web.dev/bfcache/. Also we'll be >>>>> working with partners and interested parties on this. >>>>> >>>>> Security [new!] >>>>> >>>>> See these one-pagers >>>>> >>>>> - >>>>> >>>>> Privacy one-pager: BFCache Desktop: Privacy Explainer >>>>> >>>>> <https://docs.google.com/document/d/1x-Z291LQxHNJw5uyvkW6gjEAfgTmkm1zLv3whKjIyXs/edit> >>>>> - >>>>> >>>>> Security one-pager: BFCache Desktop: Security Explainer >>>>> >>>>> <https://docs.google.com/document/d/1o7FZ58s8m1o5w9Bt-8vWNNbTDRidGV_BIrHaogU8d_M/edit> >>>>> >>>>> >>>>> Is this feature fully tested by web-platform-tests >>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>> ? >>>>> >>>>> We are actively making progress in the area. >>>>> >>>>> - >>>>> >>>>> List of issues to be covered by tests >>>>> <https://github.com/whatwg/html/issues/5880> >>>>> - >>>>> >>>>> Discussions on test framework APIs needed for BFCache tests are >>>>> ongoing around WPT PR >>>>> <https://github.com/web-platform-tests/wpt/pull/28950> and WPT >>>>> RFCs (86, 88-91) >>>>> >>>>> <https://github.com/web-platform-tests/rfcs/pull/86#issuecomment-887783246> >>>>> . >>>>> - >>>>> >>>>> We have more draft WPTs >>>>> <https://chromium-review.googlesource.com/c/chromium/src/+/2798554/> >>>>> that will be ready for code review once the discussions on test >>>>> framework >>>>> is settled. >>>>> >>>>> >>>>> Tracking bug >>>>> >>>>> https://crbug.com/1171298 >>>>> >>>>> Launch bug >>>>> >>>>> https://crbug.com/1196523 >>>>> >>>>> Link to entry on the feature dashboard <https://www.chromestatus.com/> >>>>> >>>>> https://chromestatus.com/feature/6279906713403392 >>>>> >>>>> -- >>>>> 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/CAEy%2BVDLEkNUVt%2Bk4u6w0xzL-XHovRqtq%2BUx6atJdeo0-rBZaUw%40mail.gmail.com >>>>> >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEy%2BVDLEkNUVt%2Bk4u6w0xzL-XHovRqtq%2BUx6atJdeo0-rBZaUw%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_dJY4HC%2BNKOH62Eh4RRE-z6FnFXqXXEDBKPKJB49ZOiw%40mail.gmail.com >>>> >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra_dJY4HC%2BNKOH62Eh4RRE-z6FnFXqXXEDBKPKJB49ZOiw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >>> >>> -- >>> TAMURA Kent >>> Software Engineer, Google >>> >>> >>> > > -- > TAMURA Kent > Software Engineer, Google > > > -- 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/d1021f60-b645-4d55-8c28-854a253ff874n%40chromium.org.