Add metrics for SameSite context considering redirect chain

This adds histograms and UseCounter/UKM to measure the impact of the
cookie spec change in
https://github.com/httpwg/http-extensions/pull/1348, which incorporates
the redirect chain into the computation of a request's same-site or
cross-site status.

The histograms measure, on a per-cookie level, how many cookies are
affected by the change (i.e. how many cookies have their ultimate
inclusion changed by considering a cross-site redirect to make the
request cross-site) as well as the SameSite attributes of those affected
cookies.

The UseCounter/UKM measures how many pageloads have impacted cookies.

Bug: 1221316
Change-Id: I018f110466aa08e304c46f6de26fb1cc18facf33
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3024588
Reviewed-by: Steven Bingler <[email protected]>
Reviewed-by: danakj <[email protected]>
Reviewed-by: Matt Falkenhagen <[email protected]>
Reviewed-by: Robert Kaplow <[email protected]>
Commit-Queue: Lily Chen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#903573}
diff --git a/net/cookies/cookie_inclusion_status.cc b/net/cookies/cookie_inclusion_status.cc
index cc4617d..6dd16f47 100644
--- a/net/cookies/cookie_inclusion_status.cc
+++ b/net/cookies/cookie_inclusion_status.cc
@@ -88,24 +88,19 @@
           EXCLUDE_SAMESITE_UNSPECIFIED_TREATED_AS_LAX,
           EXCLUDE_SAMESITE_NONE_INSECURE,
       }) != 0u) {
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT);
-    RemoveWarningReason(CookieInclusionStatus::WARN_SAMESITE_NONE_INSECURE);
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE);
+    RemoveWarningReason(WARN_SAMESITE_UNSPECIFIED_CROSS_SITE_CONTEXT);
+    RemoveWarningReason(WARN_SAMESITE_NONE_INSECURE);
+    RemoveWarningReason(WARN_SAMESITE_UNSPECIFIED_LAX_ALLOW_UNSAFE);
   }
 
   if (!ShouldRecordDowngradeMetrics()) {
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE);
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE);
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE);
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE);
-    RemoveWarningReason(
-        CookieInclusionStatus::WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE);
+    RemoveWarningReason(WARN_STRICT_LAX_DOWNGRADE_STRICT_SAMESITE);
+    RemoveWarningReason(WARN_STRICT_CROSS_DOWNGRADE_STRICT_SAMESITE);
+    RemoveWarningReason(WARN_STRICT_CROSS_DOWNGRADE_LAX_SAMESITE);
+    RemoveWarningReason(WARN_LAX_CROSS_DOWNGRADE_STRICT_SAMESITE);
+    RemoveWarningReason(WARN_LAX_CROSS_DOWNGRADE_LAX_SAMESITE);
+
+    RemoveWarningReason(WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSION);
   }
 }
 
@@ -272,6 +267,8 @@
             "WARN_SAMESITE_NONE_INCLUDED_BY_SAMESITE_LAX"},
            {WARN_SAMESITE_NONE_INCLUDED_BY_SAMESITE_STRICT,
             "WARN_SAMESITE_NONE_INCLUDED_BY_SAMESITE_STRICT"},
+           {WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSION,
+            "WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSION"},
        }) {
     if (HasWarningReason(reason.first))
       base::StrAppend(&out, {reason.second, ", "});