(Not to answer how the 3 minutes was originally decided, but just to share
a bit of the context.)

The default BFCache timeout was set to 3 minutes on Chrome for a long time.
Only after Sep 2022, it was increased to 10 minutes after evaluating the
hit rate improvement and other impacts (https://crbug.com/1305878). For
CCNS pages, we will follow the old timeout of 3 minutes, or in other words,
the changes that increase BFCache timeout from last year won't be applied
to CCNS pages.


On Thu, Sep 7, 2023 at 12:21 AM Daniel Bratell <bratel...@gmail.com> wrote:

> Thanks for your answers. I think we are on the same page since I too
> consider this to be of high value to users. The difference in perceived
> performance is so large that I understand that it is worth adding some
> magic for.
>
> On the other hand, as you also know, there is a risk and I want to be sure
> that it is fully understood. You have mentioned a shorter timeout a couple
> of times, and the explainer says it will be 3 minutes instead of the
> default 10 minute cache timeout. I'm well aware of sites that time out
> authentications server side after a couple of minutes of inactivity and I
> guess 3 would be in the same ball park. Did you pick that particular number
> for any particular reason. Is it the lowest number that still gives any
> benefits?
>
> /Daniel
> On 2023-09-01 10:05, 'Fergal Daly' via blink-dev wrote:
>
> Sorry for the slow reply, I've had to focus on some other things in the
> last month. The reply below covers a few overlapping topics that were
> brought up in this thread by Yoav Weiss and Daniel Bratell.
>
>
> On Sat, 29 Jul 2023 at 03:03, Mike Taylor <miketa...@chromium.org> wrote:
>
>> Thanks for the additional analysis. Another question I have, if a site
>> sends:
>>
>> "Cache-Control: no-cache, no-store, must-revalidate" (copypasta from 
>> https://stackoverflow.com/a/2068407),
>> would it be treated differently as "Cache-Control: no-store"? I'm trying to 
>> think of signals that might be useful as
>> heuristics for "no seriously don't ever cache this"...
>>
>>
> We would prefer not to do this and other browsers are in agreement
> <https://github.com/whatwg/html/issues/5744>. If we give any kind of
> simple header that prevents BFCaching, it will become the wide-spread
> stack-exchange-documented way to opt out of BFCache. Any site that truly
> cannot tolerate its data entering BFCache and doesn't already fall under
> one of our conditions for avoiding BFCache, can erase content in a
> `pagehide` handler as they enter BFCache and reload it in a `pageload`
> handler if restored. This is pretty simple to do for anyone who truly needs it
> (worst case they trigger a reload from JS when leaving BFCache, obviously
> not a good user experience but we have to weight that against block BFCache
> for many users) but it still provides a little bit of a barrier, so
> hopefully people think twice and instead correctly support BFCache rather
> than casually opting out,
>
> F
>
>  On 7/27/23 9:04 AM, Mingyu Lei wrote:
>>
>> Hi Mike,
>>
>> Following our previous response, we would like to share the usage data
>> that we have collected from the beta channel. 18.76% of history navigations
>> are not restored from BFCache because of the CCNS header only. The
>> following are the breakdowns:
>>
>>    - No RPC containing CCNS response header: 8.63%
>>    - *No cookie modification: 6.70%*
>>       - With non-HttpOnly cookie modifications only: 1.38%
>>       - With HttpOnly or non-HttpOnly cookie modifications: 0.55%
>>    - With RPC containing CCNS response header: 10.13%
>>    - No cookie modification: 1.01%
>>       - With non-HttpOnly cookie modifications only: 7.86%
>>       - With HttpOnly or non-HttpOnly cookie modifications: 1.26%
>>
>> Based on these figures, we will update the proposal to evict the BFCache
>> entry with any cookie modification for the current phase. This should give
>> us 6.70% improvement in cache hit rate.
>>
>> We could continue the HttpOnly cookie discussion in the future.
>>
>> On Sat, Jul 22, 2023 at 12:46 AM Mingyu Lei <le...@google.com> wrote:
>>
>>> Hi Mike,
>>>
>>> Thanks for the comments. We have discussed the concerns you raised
>>> before and please find the replies below.
>>>
>>>
>>>> https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md#secure-cookies
>>>> references "HTTPS-only" cookies, as well as "secure" vs "insecure" cookies.
>>>> By "HTTPS-only", do you mean a cookie that sets the "secure" attribute
>>>> (including "__Secure-" prefixes), _and_ sets "HttpOnly"? Or something else?
>>>>
>>>
>>>
>>>> Later in
>>>> https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md#allow-ccns-documents-to-be-bfcached-without-the-api,
>>>> the proposal is that CCNS pages are safe to bfcache if no "HTTP-only"
>>>> cookies have changed. Are these cookies setting only the "HttpOnly"
>>>> attribute, or is this intended to say "HTTPS-only" as above?
>>>>
>>>
>>> The short answer is that we will only monitor HttpOnly cookies,
>>> regardless of whether they are secure or not. The terms in the explainer
>>> were unclear, and we will fix them.
>>>
>>> I see that
>>>> https://github.com/w3ctag/design-reviews/issues/786#issuecomment-1515742477
>>>> references this work. Did we learn anything from experimentation in the
>>>> wild (not sure if y'all ran an experiment)?
>>>>
>>>> I'm curious if y'all have looked at stats on the uptake of
>>>> secure/httponly cookies vs "non-secure" cookies being set by pages returned
>>>> from RPCs sent with an Authorization header (though I wouldn't be surprised
>>>> if we don't have UMA for that... perhaps just globally would be useful to
>>>> consider).
>>>>
>>>
>>> We are currently conducting a Finch experiment to collect the hit rate
>>> on beta, and the data will be available next week. We will share it with
>>> you again after we have the data.
>>>
>>> With that data, we will be able to tell the percentage of page loads
>>> that observe HttpOnly cookie changes, any cookie changes, or no cookie
>>> changes. There will also be another dimension about whether the page had
>>> sent out RPC with CCNS response. There is no pre-existing UMA for this, but
>>> we have recorded the reasons why BFCache is not restored.
>>>
>>> My only concern (which may not be grounded in reality) would be for
>>>> sites not following best practices...
>>>
>>>
>>> We expect that there will be cases where pages are restored
>>> inappropriately where sites are not following good practice. We don't have
>>> an idea of the size of this problem. We will have data from the beta
>>> channel soon that will tell us what the difference would be in terms of
>>> BFCache hit-rate between *monitoring all cookies* and *only monitoring
>>> HttpOnly cookies*. Our thought process looks like this:
>>>
>>> If *monitoring all cookies* already gives us large hit-rate
>>> improvement, *or* the difference between *monitoring all cookies* and *only
>>> monitoring HttpOnly cookies* is small, then we are happy to just be
>>> conservative and go with *monitoring all cookies*. Otherwise*, we would
>>> like to discuss this further.
>>>
>>>
>>> ** "Otherwise" means monitoring all cookies will only give us negligible
>>> cache hit-rate improvement, and monitoring HttpOnly cookies will give us a
>>> much larger increase.*
>>>
>>> Thanks,
>>> Mingyu
>>>
>>> On Wed, Jul 12, 2023 at 12:11 AM Mike Taylor <miketa...@chromium.org>
>>> wrote:
>>>
>>>> On 7/11/23 2:19 AM, 'Fergal Daly' via blink-dev wrote:
>>>>
>>>> [BCC chrome-bfca...@google.com]
>>>>
>>>> On Tue, 11 Jul 2023 at 15:16, Mingyu Lei <le...@google.com> wrote:
>>>>
>>>>> +chrome-bfcache <chrome-bfca...@google.com>
>>>>>
>>>>> On Tue, Jul 11, 2023 at 1:08 PM Mingyu Lei <le...@google.com> wrote:
>>>>>
>>>>>> Contact emails kenjibah...@chromium.org, fer...@chromium.org,
>>>>>> denom...@chromium.org, le...@chromium.org
>>>>>>
>>>>>> Specification
>>>>>> https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md
>>>>>>
>>>>>> Design docs
>>>>>> https://docs.google.com/document/d/1qX1w6L6laTzpFTh78dvT7wwC1060Z3he2Azp4BAwsUE/edit?usp=sharing
>>>>>> https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md
>>>>>>
>>>>> This is a really well-written explainer, thank you!
>>>>
>>>> One point of clarification:
>>>>
>>>>
>>>> https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md#secure-cookies
>>>> references "HTTPS-only" cookies, as well as "secure" vs "insecure" cookies.
>>>> By "HTTPS-only", do you mean a cookie that sets the "secure" attribute
>>>> (including "__Secure-" prefixes), _and_ sets "HttpOnly"? Or something else?
>>>>
>>>> Later in
>>>> https://github.com/fergald/explainer-bfcache-ccns/blob/main/README.md#allow-ccns-documents-to-be-bfcached-without-the-api,
>>>> the proposal is that CCNS pages are safe to bfcache if no "HTTP-only"
>>>> cookies have changed. Are these cookies setting only the "HttpOnly"
>>>> attribute, or is this intended to say "HTTPS-only" as above?
>>>>
>>>> Summary
>>>>>>
>>>>>> A behavior change to safely store (and restore) pages in the
>>>>>> Back/Forward Cache despite the presence of a "Cache-control: no-store" 
>>>>>> HTTP
>>>>>> header on HTTPS pages. This would allow pages to enter BFCache and be
>>>>>> restored as long as there are no changes to cookies or to RPCs using the
>>>>>> `Authorization:` header.
>>>>>>
>>>>>>
>>>>>> Blink component UI>Browser>Navigation>BFCache
>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:UI%3EBrowser%3ENavigation%3EBFCache>
>>>>>>
>>>>>> Search tags bfcache <https://chromestatus.com/features#tags:bfcache>
>>>>>>
>>>>>> TAG review
>>>>>>
>>>>> I see that
>>>> https://github.com/w3ctag/design-reviews/issues/786#issuecomment-1515742477
>>>> references this work. Did we learn anything from experimentation in the
>>>> wild (not sure if y'all ran an experiment)?
>>>>
>>>>
>>>>>>
>>>>>> TAG review status Not applicable
>>>>>>
>>>>>> Risks
>>>>>>
>>>>>>
>>>>>> Interoperability and Compatibility
>>>>>>
>>>>> I'm curious if y'all have looked at stats on the uptake of
>>>> secure/httponly cookies vs "non-secure" cookies being set by pages returned
>>>> from RPCs sent with an Authorization header (though I wouldn't be surprised
>>>> if we don't have UMA for that... perhaps just globally would be useful to
>>>> consider).
>>>>
>>>> My only concern (which may not be grounded in reality) would be for
>>>> sites not following best practices...
>>>>
>>>>
>>>>>>
>>>>>> *Gecko*: No signal
>>>>>>
>>>>>> *WebKit*: No signal
>>>>>>
>>>>> Can we request signals?
>>>>
>>>>
>>>>>> *Web developers*: No signals
>>>>>>
>>>>>> *Other signals*:
>>>>>>
>>>>>> WebView application risks
>>>>>>
>>>>>> Does this intent deprecate or change behavior of existing APIs, such
>>>>>> that it has potentially high risk for Android WebView-based applications?
>>>>>>
>>>>>> None
>>>>>>
>>>>>>
>>>>>> Debuggability
>>>>>>
>>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)? No
>>>>>>
>>>>>> BFCache is not supported on WebView, so this change has no impact
>>>>>> there.
>>>>>>
>>>>>>
>>>>>> Is this feature fully tested by web-platform-tests
>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>>> ? No
>>>>>>
>>>>>> Flag name on chrome://flags
>>>>>>
>>>>>> Finch feature name CacheControlNoStoreEnterBackForwardCache
>>>>>>
>>>>>> Requires code in //chrome? False
>>>>>>
>>>>>> Tracking bug
>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1228611
>>>>>>
>>>>>> Launch bug https://launch.corp.google.com/launch/4251651
>>>>>>
>>>>>> Estimated milestones
>>>>>> DevTrial on desktop 116
>>>>>> DevTrial on Android 116
>>>>>>
>>>>>> Anticipated spec changes
>>>>>>
>>>>>> Open questions about a feature may be a source of future web compat
>>>>>> or interop issues. Please list open issues (e.g. links to known github
>>>>>> issues in the project for the feature specification) whose resolution may
>>>>>> introduce web compat/interop risk (e.g., changing to naming or structure 
>>>>>> of
>>>>>> the API in a non-backward-compatible way).
>>>>>> None
>>>>>>
>>>>>> Link to entry on the Chrome Platform Status
>>>>>> https://chromestatus.com/feature/6705326844805120
>>>>>>
>>>>>> Links to previous Intent discussions
>>>>>>
>>>>>> This intent message was generated by Chrome Platform Status
>>>>>> <https://chromestatus.com/>.
>>>>>>
>>>>> --
>>>> 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/CAAozHLkbL7vmubNOsrA2PKngz4xeV%3DXyuLN73oS4XBea50Xe9A%40mail.gmail.com
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAozHLkbL7vmubNOsrA2PKngz4xeV%3DXyuLN73oS4XBea50Xe9A%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/CAAozHL%3D0vS96LyxmMgf7C7U93FudaP6k7OLX0MKq5jdW5fNZzA%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAozHL%3D0vS96LyxmMgf7C7U93FudaP6k7OLX0MKq5jdW5fNZzA%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/CAN_fHtmo4p9pYZ3HNGqped8MCBfTWXuNd_VC%3DoV4PHEVi73W%3DA%40mail.gmail.com.

Reply via email to