Skip to content

Commit

Permalink
Add histogram for SameSite attribute of a SameParty cookie
Browse files Browse the repository at this point in the history
This adds a histogram to log the SameSite attribute on every attempt to
create a SameParty cookie.

Bug: 1142606
Change-Id: Ic63373aea2916ea3d9c9c666880535b05a3031ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2510492
Reviewed-by: Maksim Orlovich <morlovich@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Commit-Queue: Lily Chen <chlily@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822820}
  • Loading branch information
chlily1 authored and Commit Bot committed Oct 30, 2020
1 parent 39b503c commit 0504515
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 4 deletions.
3 changes: 2 additions & 1 deletion net/cookies/canonical_cookie.cc
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,8 @@ std::unique_ptr<CanonicalCookie> CanonicalCookie::Create(

CookieSameSiteString samesite_string = CookieSameSiteString::kUnspecified;
CookieSameSite samesite = parsed_cookie.SameSite(&samesite_string);
RecordCookieSameSiteAttributeValueHistogram(samesite_string);
RecordCookieSameSiteAttributeValueHistogram(samesite_string,
parsed_cookie.IsSameParty());
CookieSourceScheme source_scheme = url.SchemeIsCryptographic()
? CookieSourceScheme::kSecure
: CookieSourceScheme::kNonSecure;
Expand Down
8 changes: 7 additions & 1 deletion net/cookies/cookie_constants.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include "net/cookies/cookie_constants.h"

#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/notreached.h"
#include "base/strings/string_util.h"
Expand Down Expand Up @@ -97,8 +98,13 @@ CookieSameSite StringToCookieSameSite(const std::string& same_site,
return samesite;
}

void RecordCookieSameSiteAttributeValueHistogram(CookieSameSiteString value) {
void RecordCookieSameSiteAttributeValueHistogram(CookieSameSiteString value,
bool is_cookie_same_party) {
UMA_HISTOGRAM_ENUMERATION("Cookie.SameSiteAttributeValue", value);
if (is_cookie_same_party) {
base::UmaHistogramEnumeration(
"Cookie.SamePartyCookieSameSiteAttributeValue", value);
}
}

} // namespace net
3 changes: 2 additions & 1 deletion net/cookies/cookie_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,8 @@ StringToCookieSameSite(const std::string& same_site,
CookieSameSiteString* samesite_string = nullptr);

NET_EXPORT void RecordCookieSameSiteAttributeValueHistogram(
CookieSameSiteString value);
CookieSameSiteString value,
bool is_cookie_same_party = false);

} // namespace net

Expand Down
13 changes: 12 additions & 1 deletion tools/metrics/histograms/histograms_xml/cookie/histograms.xml
Original file line number Diff line number Diff line change
Expand Up @@ -236,8 +236,19 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary>
</histogram>

<histogram name="Cookie.SamePartyCookieSameSiteAttributeValue"
enum="CookieSameSiteString" expires_after="2021-11-01">
<owner>chlily@chromium.org</owner>
<owner>kaustubhag@chromium.org</owner>
<summary>
The value of a SameParty cookie's SameSite attribute, if any. This is logged
once per attempt to create a SameParty cookie, regardless of success, upon
parsing of the SameSite attribute from a string.
</summary>
</histogram>

<histogram name="Cookie.SameSiteAttributeValue" enum="CookieSameSiteString"
expires_after="M90">
expires_after="2021-11-01">
<owner>chlily@chromium.org</owner>
<owner>bingler@chromium.org</owner>
<summary>
Expand Down

0 comments on commit 0504515

Please sign in to comment.