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%
o *No cookie modification: 6.70%*
o With non-HttpOnly cookie modifications only: 1.38%
o With HttpOnly or non-HttpOnly cookie modifications: 0.55%
* With RPC containing CCNS response header: 10.13%
o No cookie modification: 1.01%
o With non-HttpOnly cookie modifications only: 7.86%
o 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 <mailto: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>.