Chromium Code Reviews| Index: chrome/browser/resources/net_internals/log_view_painter.js |
| diff --git a/chrome/browser/resources/net_internals/log_view_painter.js b/chrome/browser/resources/net_internals/log_view_painter.js |
| index bbfaae415bc3c37af56737491766a434be474399..5c0554f946dbc0ffbea5ae00f1130ca7b715b51e 100644 |
| --- a/chrome/browser/resources/net_internals/log_view_painter.js |
| +++ b/chrome/browser/resources/net_internals/log_view_painter.js |
| @@ -6,7 +6,7 @@ |
| var createLogEntryTablePrinter; |
| var proxySettingsToString; |
| -var stripCookiesAndLoginInfo; |
| +var stripCookiesAndLoginInfoAndGoAwayDebugData; |
| // Start of anonymous namespace. |
| (function() { |
| @@ -244,7 +244,7 @@ var ParameterOutputter = (function() { |
| function writeParameters(entry, privacyStripping, out) { |
| if (privacyStripping) { |
| // If privacy stripping is enabled, remove data as needed. |
| - entry = stripCookiesAndLoginInfo(entry); |
| + entry = stripCookiesAndLoginInfoAndGoAwayDebugData(entry); |
| } else { |
| // If headers are in an object, convert them to an array for better display. |
| entry = reformatHeaders(entry); |
| @@ -479,6 +479,9 @@ function reformatHeaders(entry) { |
| * Removes a cookie or unencrypted login information from a single HTTP header |
| * line, if present, and returns the modified line. Otherwise, just returns |
| * the original line. |
| + * |
| + * Note: this logic should be kept in sync with |
| + * net::ElideHeaderValueForNetLog in net/http/http_log_util.cc. |
| */ |
| function stripCookieOrLoginInfo(line) { |
| var patterns = [ |
| @@ -545,16 +548,40 @@ function stripCookieOrLoginInfo(line) { |
| } |
| /** |
| + * Remove debug data from HTTP/2 GOAWAY frame due to privacy considerations, see |
| + * https://httpwg.github.io/specs/rfc7540.html#GOAWAY. |
| + * |
| + * Note: this logic should be kept in sync with |
| + * net::ElideGoAwayDebugDataForNetLog in net/http/http_log_util.cc. |
| + */ |
| +function stripGoAwayDebugData(value) { |
| + return '[' + value.length + ' bytes were stripped]'; |
| +} |
| + |
| +/** |
| * If |entry| has headers, returns a copy of |entry| with all cookie and |
| * unencrypted login text removed. Otherwise, returns original |entry| object. |
| * This is needed so that JSON log dumps can be made without affecting the |
| * source data. Converts headers stored in objects to arrays. |
| - * |
| - * Note: this logic should be kept in sync with |
| - * net::ElideHeaderForNetLog in net/http/http_log_util.cc. |
| */ |
| -stripCookiesAndLoginInfo = function(entry) { |
| - if (!entry.params || entry.params.headers === undefined || |
| +stripCookiesAndLoginInfoAndGoAwayDebugData = function(entry) { |
|
eroman
2015/10/07 17:00:51
This name is accurate however a bit too long IMO.
Bence
2015/10/30 11:55:26
stripPrivacyInfo sounds a lot better, should have
|
| + if (!entry.params) { |
| + return entry; |
| + } |
| + |
| + if (entry.type == EventType.HTTP2_SESSION_GOAWAY && |
| + entry.params.debug_data != undefined) { |
| + // Duplicate the top level object, and |entry.params|. All other fields are |
| + // just pointers to the original values, as they won't be modified, other |
| + // than |entry.params.debug_data|. |
| + entry = shallowCloneObject(entry); |
| + entry.params = shallowCloneObject(entry.params); |
| + entry.params.debug_data = |
| + stripGoAwayDebugData(entry.params.debug_data); |
| + return entry; |
| + } |
| + |
| + if (entry.params.headers === undefined || |
| !(entry.params.headers instanceof Object)) { |
| return entry; |
| } |