diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-18 20:02:23 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-18 20:02:23 +0000 |
commit | f90ad12b2267b7ae90df254f95d47fd4aa437ef9 (patch) | |
tree | 4e79331b1a86d42b208c03a74f0e2dc8a3be98a0 | |
parent | 4e7d9c64ed1d8be9c5626b3a8256da3bafe645b5 (diff) | |
download | chromium_src-f90ad12b2267b7ae90df254f95d47fd4aa437ef9.zip chromium_src-f90ad12b2267b7ae90df254f95d47fd4aa437ef9.tar.gz chromium_src-f90ad12b2267b7ae90df254f95d47fd4aa437ef9.tar.bz2 |
Annotate load flags and net errors with their symbolic name.
Here are some examples showing what it looks like now (the stuff in parenthesis is new):
--> load_flags = 8240 (DISABLE_CACHE | DISABLE_INTERCEPT | DO_NOT_SAVE_COOKIES)
--> net_error = -105 (NAME_NOT_RESOLVED)
BUG=37421
Review URL: http://codereview.chromium.org/2115007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47552 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/dom_ui/net_internals_ui.cc | 26 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/logviewpainter.js | 46 | ||||
-rw-r--r-- | chrome/browser/resources/net_internals/main.js | 10 | ||||
-rw-r--r-- | net/base/load_flags.h | 76 | ||||
-rw-r--r-- | net/base/load_flags_list.h | 79 | ||||
-rw-r--r-- | net/net.gyp | 1 |
6 files changed, 167 insertions, 71 deletions
diff --git a/chrome/browser/dom_ui/net_internals_ui.cc b/chrome/browser/dom_ui/net_internals_ui.cc index 8d65488..ef1d620 100644 --- a/chrome/browser/dom_ui/net_internals_ui.cc +++ b/chrome/browser/dom_ui/net_internals_ui.cc @@ -498,6 +498,32 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady( CallJavascriptFunction(L"g_browser.receivedLogEventTypeConstants", dict); } + // Tell the javascript about the relationship between load flag enums and + // their symbolic name. + { + DictionaryValue* dict = new DictionaryValue(); + +#define LOAD_FLAG(label, value) \ + dict->SetInteger(ASCIIToWide(# label), static_cast<int>(value)); +#include "net/base/load_flags_list.h" +#undef LOAD_FLAG + + CallJavascriptFunction(L"g_browser.receivedLoadFlagConstants", dict); + } + + // Tell the javascript about the relationship between net error codes and + // their symbolic name. + { + DictionaryValue* dict = new DictionaryValue(); + +#define NET_ERROR(label, value) \ + dict->SetInteger(ASCIIToWide(# label), static_cast<int>(value)); +#include "net/base/net_error_list.h" +#undef NET_ERROR + + CallJavascriptFunction(L"g_browser.receivedNetErrorConstants", dict); + } + // Tell the javascript about the relationship between event phase enums and // their symbolic name. { diff --git a/chrome/browser/resources/net_internals/logviewpainter.js b/chrome/browser/resources/net_internals/logviewpainter.js index 85b5f41..db7ccdb3 100644 --- a/chrome/browser/resources/net_internals/logviewpainter.js +++ b/chrome/browser/resources/net_internals/logviewpainter.js @@ -119,14 +119,56 @@ function getTextForExtraParams(entry) { default: var out = []; for (var k in entry.params) { - out.push(' --> ' + k + ' = ' + - JSON.stringify(entry.params[k])); + var value = entry.params[k]; + var paramStr = ' --> ' + k + ' = ' + JSON.stringify(value); + + // Append the symbolic name for certain constants. (This relies + // on particular naming of event parameters to infer the type). + if (typeof value == 'number') { + if (k == 'net_error') { + paramStr += ' (' + getNetErrorSymbolicString(value) + ')'; + } else if (k == 'load_flags') { + paramStr += ' (' + getLoadFlagSymbolicString(value) + ')'; + } + } + + out.push(paramStr); } return out.join('\n'); } } /** + * Returns the name for netError. + * + * Example: getNetErrorSymbolicString(-105) would return + * "NAME_NOT_RESOLVED". + */ +function getNetErrorSymbolicString(netError) { + return getKeyWithValue(NetError, netError); +} + +/** + * Returns the set of LoadFlags that make up the integer |loadFlag|. + * For example: getLoadFlagSymbolicString( + */ +function getLoadFlagSymbolicString(loadFlag) { + // Load flag of 0 means "NORMAL". Special case this, since and-ing with + // 0 is always going to be false. + if (loadFlag == 0) + return getKeyWithValue(LoadFlag, loadFlagNames); + + var matchingLoadFlagNames = []; + + for (var k in LoadFlag) { + if (loadFlag & LoadFlag[k]) + matchingLoadFlagNames.push(k); + } + + return matchingLoadFlagNames.join(' | '); +} + +/** * Indent |lines| by |start|. * * For example, if |start| = ' -> ' and |lines| = ['line1', 'line2', 'line3'] diff --git a/chrome/browser/resources/net_internals/main.js b/chrome/browser/resources/net_internals/main.js index 3815a79..c5189d2 100644 --- a/chrome/browser/resources/net_internals/main.js +++ b/chrome/browser/resources/net_internals/main.js @@ -8,6 +8,8 @@ var LogEventType = null; var LogEventPhase = null; var LogSourceType = null; +var NetError = null; +var LoadFlag = null; /** * Object to communicate between the renderer and the browser. @@ -218,6 +220,14 @@ function(constantsMap) { LogSourceType = constantsMap; }; +BrowserBridge.prototype.receivedLoadFlagConstants = function(constantsMap) { + LoadFlag = constantsMap; +}; + +BrowserBridge.prototype.receivedNetErrorConstants = function(constantsMap) { + NetError = constantsMap; +}; + BrowserBridge.prototype.receivedTimeTickOffset = function(timeTickOffset) { this.timeTickOffset_ = timeTickOffset; }; diff --git a/net/base/load_flags.h b/net/base/load_flags.h index 49c6daf..53b2d58 100644 --- a/net/base/load_flags.h +++ b/net/base/load_flags.h @@ -1,84 +1,22 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef NET_BASE_LOAD_FLAGS_H__ -#define NET_BASE_LOAD_FLAGS_H__ +#ifndef NET_BASE_LOAD_FLAGS_H_ +#define NET_BASE_LOAD_FLAGS_H_ namespace net { // These flags provide metadata about the type of the load request. They are // intended to be OR'd together. enum { - LOAD_NORMAL = 0, - // This is "normal reload", meaning an if-none-match/if-modified-since query - LOAD_VALIDATE_CACHE = 1 << 0, +#define LOAD_FLAG(label, value) LOAD_ ## label = value, +#include "net/base/load_flags_list.h" +#undef LOAD_FLAG - // This is "shift-reload", meaning a "pragma: no-cache" end-to-end fetch - LOAD_BYPASS_CACHE = 1 << 1, - - // This is a back/forward style navigation where the cached content should - // be preferred over any protocol specific cache validation. - LOAD_PREFERRING_CACHE = 1 << 2, - - // This is a navigation that will fail if it cannot serve the requested - // resource from the cache (or some equivalent local store). - LOAD_ONLY_FROM_CACHE = 1 << 3, - - // This is a navigation that will not use the cache at all. It does not - // impact the HTTP request headers. - LOAD_DISABLE_CACHE = 1 << 4, - - // This is a navigation that will not be intercepted by any registered - // URLRequest::Interceptors. - LOAD_DISABLE_INTERCEPT = 1 << 5, - - // If present, upload progress messages should be provided to initiator. - LOAD_ENABLE_UPLOAD_PROGRESS = 1 << 6, - - // If present, ignores certificate mismatches with the domain name. - // (The default behavior is to trigger an OnSSLCertificateError callback.) - LOAD_IGNORE_CERT_COMMON_NAME_INVALID = 1 << 8, - - // If present, ignores certificate expiration dates - // (The default behavior is to trigger an OnSSLCertificateError callback). - LOAD_IGNORE_CERT_DATE_INVALID = 1 << 9, - - // If present, trusts all certificate authorities - // (The default behavior is to trigger an OnSSLCertificateError callback). - LOAD_IGNORE_CERT_AUTHORITY_INVALID = 1 << 10, - - // If present, ignores certificate revocation - // (The default behavior is to trigger an OnSSLCertificateError callback). - LOAD_IGNORE_CERT_REVOCATION = 1 << 11, - - // If present, ignores wrong key usage of the certificate - // (The default behavior is to trigger an OnSSLCertificateError callback). - LOAD_IGNORE_CERT_WRONG_USAGE = 1 << 12, - - // This load will not make any changes to cookies, including storing new - // cookies or updating existing ones. - LOAD_DO_NOT_SAVE_COOKIES = 1 << 13, - - // Do not resolve proxies. This override is used when downloading PAC files - // to avoid having a circular dependency. - LOAD_BYPASS_PROXY = 1 << 14, - - // Indicate this request is for a download, as opposed to viewing. - LOAD_IS_DOWNLOAD = 1 << 15, - - // Requires EV certificate verification. - LOAD_VERIFY_EV_CERT = 1 << 16, - - // This load will not send any cookies. - LOAD_DO_NOT_SEND_COOKIES = 1 << 17, - - // This load will not send authentication data (user name/password) - // to the server (as opposed to the proxy). - LOAD_DO_NOT_SEND_AUTH_DATA = 1 << 18, }; } // namespace net -#endif // NET_BASE_LOAD_FLAGS_H__ +#endif // NET_BASE_LOAD_FLAGS_H_ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h new file mode 100644 index 0000000..f7be1ff --- /dev/null +++ b/net/base/load_flags_list.h @@ -0,0 +1,79 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// This is the list of load flags and their values. For the enum values, +// include the file "net/base/load_flags.h". +// +// Here we define the values using a macro LOAD_FLAG, so it can be +// expanded differently in some places (for example, to automatically +// map a load flag value to its symbolic name). + +LOAD_FLAG(NORMAL, 0) + +// This is "normal reload", meaning an if-none-match/if-modified-since query +LOAD_FLAG(VALIDATE_CACHE, 1 << 0) + +// This is "shift-reload", meaning a "pragma: no-cache" end-to-end fetch +LOAD_FLAG(BYPASS_CACHE, 1 << 1) + +// This is a back/forward style navigation where the cached content should +// be preferred over any protocol specific cache validation. +LOAD_FLAG(PREFERRING_CACHE, 1 << 2) + +// This is a navigation that will fail if it cannot serve the requested +// resource from the cache (or some equivalent local store). +LOAD_FLAG(ONLY_FROM_CACHE, 1 << 3) + +// This is a navigation that will not use the cache at all. It does not +// impact the HTTP request headers. +LOAD_FLAG(DISABLE_CACHE, 1 << 4) + +// This is a navigation that will not be intercepted by any registered +// URLRequest::Interceptors. +LOAD_FLAG(DISABLE_INTERCEPT, 1 << 5) + +// If present, upload progress messages should be provided to initiator. +LOAD_FLAG(ENABLE_UPLOAD_PROGRESS, 1 << 6) + +// If present, ignores certificate mismatches with the domain name. +// (The default behavior is to trigger an OnSSLCertificateError callback.) +LOAD_FLAG(IGNORE_CERT_COMMON_NAME_INVALID, 1 << 8) + +// If present, ignores certificate expiration dates +// (The default behavior is to trigger an OnSSLCertificateError callback). +LOAD_FLAG(IGNORE_CERT_DATE_INVALID, 1 << 9) + +// If present, trusts all certificate authorities +// (The default behavior is to trigger an OnSSLCertificateError callback). +LOAD_FLAG(IGNORE_CERT_AUTHORITY_INVALID, 1 << 10) + +// If present, ignores certificate revocation +// (The default behavior is to trigger an OnSSLCertificateError callback). +LOAD_FLAG(IGNORE_CERT_REVOCATION, 1 << 11) + +// If present, ignores wrong key usage of the certificate +// (The default behavior is to trigger an OnSSLCertificateError callback). +LOAD_FLAG(IGNORE_CERT_WRONG_USAGE, 1 << 12) + +// This load will not make any changes to cookies, including storing new +// cookies or updating existing ones. +LOAD_FLAG(DO_NOT_SAVE_COOKIES, 1 << 13) + +// Do not resolve proxies. This override is used when downloading PAC files +// to avoid having a circular dependency. +LOAD_FLAG(BYPASS_PROXY, 1 << 14) + +// Indicate this request is for a download, as opposed to viewing. +LOAD_FLAG(IS_DOWNLOAD, 1 << 15) + +// Requires EV certificate verification. +LOAD_FLAG(VERIFY_EV_CERT, 1 << 16) + +// This load will not send any cookies. +LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 17) + +// This load will not send authentication data (user name/password) +// to the server (as opposed to the proxy). +LOAD_FLAG(DO_NOT_SEND_AUTH_DATA, 1 << 18) + diff --git a/net/net.gyp b/net/net.gyp index 0ff019c..b98483fd 100644 --- a/net/net.gyp +++ b/net/net.gyp @@ -88,6 +88,7 @@ 'base/listen_socket.cc', 'base/listen_socket.h', 'base/load_flags.h', + 'base/load_flags_list.h', 'base/load_states.h', 'base/mapped_host_resolver.cc', 'base/mapped_host_resolver.h', |