Update CookieAccessResult to include WARN status

When a cookie is created and it includes a WARN_*
CookieInclusionStatus, the status is not passed along when setting
the cookie. This impacts what messages show up in devtools issues.

These changes make it possible to show a message in devtools issues
for a cookie that has a WARN_* status.

Bug: 1254192
Change-Id: Iaf7432335264a9a4bc47e85acaa373fa92a326b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3423085
Reviewed-by: Gauthier Ambard <[email protected]>
Reviewed-by: Steven Bingler <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Reviewed-by: Elly Fong-Jones <[email protected]>
Commit-Queue: Juba Borgohain <[email protected]>
Cr-Commit-Position: refs/heads/main@{#967347}
diff --git a/net/cookies/cookie_monster.h b/net/cookies/cookie_monster.h
index 1ed421b..5ba0bca 100644
--- a/net/cookies/cookie_monster.h
+++ b/net/cookies/cookie_monster.h
@@ -179,10 +179,12 @@
   void SetAllCookiesAsync(const CookieList& list, SetCookiesCallback callback);
 
   // CookieStore implementation.
-  void SetCanonicalCookieAsync(std::unique_ptr<CanonicalCookie> cookie,
-                               const GURL& source_url,
-                               const CookieOptions& options,
-                               SetCookiesCallback callback) override;
+  void SetCanonicalCookieAsync(
+      std::unique_ptr<CanonicalCookie> cookie,
+      const GURL& source_url,
+      const CookieOptions& options,
+      SetCookiesCallback callback,
+      const CookieAccessResult* cookie_access_result = nullptr) override;
   void GetCookieListWithOptionsAsync(const GURL& url,
                                      const CookieOptions& options,
                                      const CookiePartitionKeyCollection& s,
@@ -370,10 +372,16 @@
   //
   // |options| indicates if this setting operation is allowed
   // to affect http_only or same-site cookies.
-  void SetCanonicalCookie(std::unique_ptr<CanonicalCookie> cookie,
-                          const GURL& source_url,
-                          const CookieOptions& options,
-                          SetCookiesCallback callback);
+  //
+  // |cookie_access_result| is an optional input status, to allow for status
+  // chaining from callers. It helps callers provide the status of a
+  // canonical cookie that may have warnings associated with it.
+  void SetCanonicalCookie(
+      std::unique_ptr<CanonicalCookie> cookie,
+      const GURL& source_url,
+      const CookieOptions& options,
+      SetCookiesCallback callback,
+      const CookieAccessResult* cookie_access_result = nullptr);
 
   void GetAllCookies(GetAllCookiesCallback callback);