This is potentially a naive question, since I'm not familiar with all of
the CC headers, but how would the following situation work (or rather how
is this meant to work?):

I have an "overview" page that lists some items that come from a database.
This page has an input box with a button to add a new item. The way the
button works is it POSTs to the same page to add an entry into some
database, and then redirects to a new "details" page. The "overview" page
also currently sends CCNS, so that when the user clicks back from the
"details" page, they see an updated list which was re-fetched from the
server. Without CCNS, going back hits BFCache and the list is not up to
date.

Is there a simple solution to this if CCNS doesn't prevent BFCache?

This is a toy example:
https://rocky-merciful-creek.glitch.me/nostore/one.html?nostore=1
if you click the link and go back, the number changes. If query nostore=0
then it doesn't. The query parameter just controls whether CCNS is sent

Thanks!
vmpstr



On Thu, Sep 7, 2023 at 5:40 AM 'Mingyu Lei' via blink-dev <
blink-dev@chromium.org> wrote:

> (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
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAN_fHtmo4p9pYZ3HNGqped8MCBfTWXuNd_VC%3DoV4PHEVi73W%3DA%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/CADsXd2OitQJkqpb4MU41rpR%2BPU34BCcHU-Xk7VQBqyfe6TNT%3Dg%40mail.gmail.com.

Reply via email to