Commit f82c0c24 authored by Joey Arhar's avatar Joey Arhar Committed by Commit Bot

[DevTools] Add cookie blocked info to request headers panel

This adds icons to the set-cookie headers in the request headers view to
show when a cookie was not stored successfully.

Screenshots: https://imgur.com/a/1SLbEmI
Bug: 856777
Change-Id: Iec08ddc39999407608d1bb0c8d3511a286b47e25
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1795310
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Reviewed-by: default avatarErik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695355}
parent 9d92ed8d
...@@ -356,10 +356,13 @@ Network.RequestHeadersView = class extends UI.VBox { ...@@ -356,10 +356,13 @@ Network.RequestHeadersView = class extends UI.VBox {
const headers = this._request.sortedResponseHeaders.slice(); const headers = this._request.sortedResponseHeaders.slice();
const headersText = this._request.responseHeadersText; const headersText = this._request.responseHeadersText;
if (this._showResponseHeadersText) if (this._showResponseHeadersText) {
this._refreshHeadersText(Common.UIString('Response Headers'), headers.length, headersText, treeElement); this._refreshHeadersText(Common.UIString('Response Headers'), headers.length, headersText, treeElement);
else } else {
this._refreshHeaders(Common.UIString('Response Headers'), headers, treeElement); this._refreshHeaders(
Common.UIString('Response Headers'), headers, treeElement, /* provisional */ false,
this._request.blockedResponseCookies());
}
if (headersText) { if (headersText) {
const toggleButton = this._createHeadersToggleButton(this._showResponseHeadersText); const toggleButton = this._createHeadersToggleButton(this._showResponseHeadersText);
...@@ -436,8 +439,9 @@ Network.RequestHeadersView = class extends UI.VBox { ...@@ -436,8 +439,9 @@ Network.RequestHeadersView = class extends UI.VBox {
* @param {!Array.<!SDK.NetworkRequest.NameValue>} headers * @param {!Array.<!SDK.NetworkRequest.NameValue>} headers
* @param {!UI.TreeElement} headersTreeElement * @param {!UI.TreeElement} headersTreeElement
* @param {boolean=} provisionalHeaders * @param {boolean=} provisionalHeaders
* @param {!Array<!SDK.NetworkRequest.BlockedSetCookieWithReason>=} blockedResponseCookies
*/ */
_refreshHeaders(title, headers, headersTreeElement, provisionalHeaders) { _refreshHeaders(title, headers, headersTreeElement, provisionalHeaders, blockedResponseCookies) {
headersTreeElement.removeChildren(); headersTreeElement.removeChildren();
const length = headers.length; const length = headers.length;
...@@ -453,12 +457,30 @@ Network.RequestHeadersView = class extends UI.VBox { ...@@ -453,12 +457,30 @@ Network.RequestHeadersView = class extends UI.VBox {
headersTreeElement.appendChild(cautionTreeElement); headersTreeElement.appendChild(cautionTreeElement);
} }
/** @type {!Map<string, !Protocol.Network.SetCookieBlockedReason>} */
const blockedCookieLineToReason = new Map();
if (blockedResponseCookies) {
blockedResponseCookies.forEach(blockedCookie => {
blockedCookieLineToReason.set(blockedCookie.cookieLine, blockedCookie.blockedReason);
});
}
headersTreeElement.hidden = !length && !provisionalHeaders; headersTreeElement.hidden = !length && !provisionalHeaders;
for (let i = 0; i < length; ++i) { for (let i = 0; i < length; ++i) {
const headerTreeElement = new UI.TreeElement(this._formatHeader(headers[i].name, headers[i].value)); const headerTreeElement = new UI.TreeElement(this._formatHeader(headers[i].name, headers[i].value));
headerTreeElement.selectable = false; headerTreeElement.selectable = false;
headersTreeElement.appendChild(headerTreeElement);
headerTreeElement[Network.RequestHeadersView._headerNameSymbol] = headers[i].name; headerTreeElement[Network.RequestHeadersView._headerNameSymbol] = headers[i].name;
if (headers[i].name.toLowerCase() === 'set-cookie') {
const matchingBlockedReason = blockedCookieLineToReason.get(headers[i].value);
if (matchingBlockedReason) {
const icon = UI.Icon.create('smallicon-warning', '');
headerTreeElement.listItemElement.appendChild(icon);
icon.title = SDK.NetworkRequest.setCookieBlockedReasonToUiString(matchingBlockedReason);
}
}
headersTreeElement.appendChild(headerTreeElement);
} }
} }
......
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