summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-18 20:02:23 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-18 20:02:23 +0000
commitf90ad12b2267b7ae90df254f95d47fd4aa437ef9 (patch)
tree4e79331b1a86d42b208c03a74f0e2dc8a3be98a0
parent4e7d9c64ed1d8be9c5626b3a8256da3bafe645b5 (diff)
downloadchromium_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.cc26
-rw-r--r--chrome/browser/resources/net_internals/logviewpainter.js46
-rw-r--r--chrome/browser/resources/net_internals/main.js10
-rw-r--r--net/base/load_flags.h76
-rw-r--r--net/base/load_flags_list.h79
-rw-r--r--net/net.gyp1
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',