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

-- 
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/CAGH7WqF41sWHbcVKEWj4okjKDT9QpmH8gt3y_txos4k9yRSP0A%40mail.gmail.com.

Reply via email to