Non-owner LGTM; thanks for splitting the intent in that way! I look forward to reviewing the HTML spec PR for the header, and as HTML editor am really happy with the other bfcache standardization work the team has been doing.
On Thu, Aug 26, 2021 at 3:32 AM Yoav Weiss <yoavwe...@chromium.org> wrote: > 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/CAM0wra-WCeUjo237A3W8_qVk-GZipa3euhhPA3fcJe%3DPctyHXA%40mail.gmail.com.