LGTM3 On Thu, Aug 26, 2021 at 8:04 AM Domenic Denicola <dome...@chromium.org> wrote:
> 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 > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra-WCeUjo237A3W8_qVk-GZipa3euhhPA3fcJe%3DPctyHXA%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/CAOMQ%2Bw_hmXE9%3DpXCnuvXD2BdZ6F8c33HcYZGQDGF1D9sdud8BA%40mail.gmail.com.