[DevTools] Support multiple cookie blocked reasons

Bug: 993843
Change-Id: I6a65f74d8de10e05abf0a9d56d120f47f43f7c7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1795576
Commit-Queue: Joey Arhar <[email protected]>
Reviewed-by: Andrey Kosyakov <[email protected]>
Cr-Original-Commit-Position: refs/heads/master@{#696550}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8a8d484654bf7cba22df22a9dc072e49bcb73327
diff --git a/front_end/network/RequestHeadersView.js b/front_end/network/RequestHeadersView.js
index cb00245..7500f86 100644
--- a/front_end/network/RequestHeadersView.js
+++ b/front_end/network/RequestHeadersView.js
@@ -457,11 +457,11 @@
       headersTreeElement.appendChild(cautionTreeElement);
     }
 
-    /** @type {!Map<string, !Protocol.Network.SetCookieBlockedReason>} */
-    const blockedCookieLineToReason = new Map();
+    /** @type {!Map<string, !Array<!Protocol.Network.SetCookieBlockedReason>>} */
+    const blockedCookieLineToReasons = new Map();
     if (blockedResponseCookies) {
       blockedResponseCookies.forEach(blockedCookie => {
-        blockedCookieLineToReason.set(blockedCookie.cookieLine, blockedCookie.blockedReason);
+        blockedCookieLineToReasons.set(blockedCookie.cookieLine, blockedCookie.blockedReasons);
       });
     }
 
@@ -472,11 +472,18 @@
       headerTreeElement[Network.RequestHeadersView._headerNameSymbol] = headers[i].name;
 
       if (headers[i].name.toLowerCase() === 'set-cookie') {
-        const matchingBlockedReason = blockedCookieLineToReason.get(headers[i].value);
-        if (matchingBlockedReason) {
+        const matchingBlockedReasons = blockedCookieLineToReasons.get(headers[i].value);
+        if (matchingBlockedReasons) {
           const icon = UI.Icon.create('smallicon-warning', '');
           headerTreeElement.listItemElement.appendChild(icon);
-          icon.title = SDK.NetworkRequest.setCookieBlockedReasonToUiString(matchingBlockedReason);
+
+          let titleText = '';
+          for (const blockedReason of matchingBlockedReasons) {
+            if (titleText)
+              titleText += '\n';
+            titleText += SDK.NetworkRequest.setCookieBlockedReasonToUiString(blockedReason);
+          }
+          icon.title = titleText;
         }
       }