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/CAGH7WqEr1NyrZ%3DaHfYLppAFuJDwdyruXn8aEMP%2BofkmaSWhS-g%40mail.gmail.com.