Commit bc83e73a authored by Kaustubha Govind's avatar Kaustubha Govind Committed by Commit Bot

Extend cookie lifetime metric, and split up by secure and non-secure.

Extending the Cookie.ExpirationDurationMinutes* metrics through
mid-2021. This data will be helpful in informing potential future work
on limiting lifetime of cookies. Also, splitting up the histogram
based on whether the 'Secure' attribute is specified, since we may
target intervention on non-secure cookies, as per
draft-west-cookie-incrementalism.html#rfc.section.3.6

Bug: 1088694
Change-Id: Ief1fe0b732df34b71d29f5e0a72dfb40fd9a0851
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2445910Reviewed-by: default avatarMaksim Orlovich <morlovich@chromium.org>
Reviewed-by: default avatarJesse Doherty <jwd@chromium.org>
Commit-Queue: Kaustubha Govind <kaustubhag@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813950}
parent 63cb1929
......@@ -1236,8 +1236,13 @@ void CookieMonster::SetCanonicalCookie(std::unique_ptr<CanonicalCookie> cc,
if (!already_expired) {
// See InitializeHistograms() for details.
if (cc->IsPersistent()) {
histogram_expiration_duration_minutes_->Add(
(cc->ExpiryDate() - creation_date).InMinutes());
if (cc->IsSecure()) {
histogram_expiration_duration_minutes_secure_->Add(
(cc->ExpiryDate() - creation_date).InMinutes());
} else {
histogram_expiration_duration_minutes_non_secure_->Add(
(cc->ExpiryDate() - creation_date).InMinutes());
}
}
// Histogram the type of scheme used on URLs that set cookies. This
......@@ -1297,8 +1302,13 @@ void CookieMonster::SetAllCookies(CookieList list,
continue;
if (cookie.IsPersistent()) {
histogram_expiration_duration_minutes_->Add(
(cookie.ExpiryDate() - creation_time).InMinutes());
if (cookie.IsSecure()) {
histogram_expiration_duration_minutes_secure_->Add(
(cookie.ExpiryDate() - creation_time).InMinutes());
} else {
histogram_expiration_duration_minutes_non_secure_->Add(
(cookie.ExpiryDate() - creation_time).InMinutes());
}
}
CookieAccessResult access_result;
......@@ -1885,9 +1895,13 @@ void CookieMonster::InitializeHistograms() {
DCHECK(thread_checker_.CalledOnValidThread());
// From UMA_HISTOGRAM_CUSTOM_COUNTS
histogram_expiration_duration_minutes_ = base::Histogram::FactoryGet(
"Cookie.ExpirationDurationMinutes", 1, kMinutesInTenYears, 50,
histogram_expiration_duration_minutes_secure_ = base::Histogram::FactoryGet(
"Cookie.ExpirationDurationMinutesSecure", 1, kMinutesInTenYears, 50,
base::Histogram::kUmaTargetedHistogramFlag);
histogram_expiration_duration_minutes_non_secure_ =
base::Histogram::FactoryGet("Cookie.ExpirationDurationMinutesNonSecure",
1, kMinutesInTenYears, 50,
base::Histogram::kUmaTargetedHistogramFlag);
histogram_count_ = base::Histogram::FactoryGet(
"Cookie.Count", 1, 4000, 50, base::Histogram::kUmaTargetedHistogramFlag);
......
......@@ -596,7 +596,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
// Histogram variables; see CookieMonster::InitializeHistograms() in
// cookie_monster.cc for details.
base::HistogramBase* histogram_expiration_duration_minutes_;
base::HistogramBase* histogram_expiration_duration_minutes_secure_;
base::HistogramBase* histogram_expiration_duration_minutes_non_secure_;
base::HistogramBase* histogram_count_;
base::HistogramBase* histogram_cookie_type_;
base::HistogramBase* histogram_cookie_source_scheme_;
......
......@@ -2551,7 +2551,7 @@ TEST_F(CookieMonsterTest, HistogramCheck) {
// since the histogram should have been initialized by the CM construction
// above.
base::HistogramBase* expired_histogram = base::Histogram::FactoryGet(
"Cookie.ExpirationDurationMinutes", 1, 10 * 365 * 24 * 60, 50,
"Cookie.ExpirationDurationMinutesSecure", 1, 10 * 365 * 24 * 60, 50,
base::Histogram::kUmaTargetedHistogramFlag);
std::unique_ptr<base::HistogramSamples> samples1(
......
......@@ -113,10 +113,28 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
<histogram name="Cookie.ExpirationDurationMinutes" units="minutes"
expires_after="M85">
<obsolete>
Removed Oct 2020 in favor of two new histograms to divide into Secure and
non-Secure cookies.
</obsolete>
<owner>battre@chromium.org</owner>
<summary>Number of minutes until cookie expires when set.</summary>
</histogram>
<histogram name="Cookie.ExpirationDurationMinutesNonSecure" units="minutes"
expires_after="2021-06-30">
<owner>kaustubhag@chromium.org</owner>
<owner>chlily@chromium.org</owner>
<summary>Number of minutes until non-Secure cookie expires when set.</summary>
</histogram>
<histogram name="Cookie.ExpirationDurationMinutesSecure" units="minutes"
expires_after="2021-06-30">
<owner>kaustubhag@chromium.org</owner>
<owner>chlily@chromium.org</owner>
<summary>Number of minutes until Secure cookie expires when set.</summary>
</histogram>
<histogram name="Cookie.HeaderLength" units="bytes" expires_after="2020-09-13">
<owner>mkwst@chromium.org</owner>
<summary>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment