Index: chrome/common/net/net_error_info.h |
diff --git a/chrome/common/net/net_error_info.h b/chrome/common/net/net_error_info.h |
index 9f8d08a1baabe1b741fa69d2761ec50ff59ae667..ec9d81698a6965e8ca2737c18ecdae0b4616203a 100644 |
--- a/chrome/common/net/net_error_info.h |
+++ b/chrome/common/net/net_error_info.h |
@@ -7,14 +7,69 @@ |
namespace chrome_common_net { |
-enum DnsProbeResult { |
- DNS_PROBE_UNKNOWN, |
- DNS_PROBE_NO_INTERNET, |
- DNS_PROBE_BAD_CONFIG, |
- DNS_PROBE_NXDOMAIN, |
+// The status of a DNS probe that the NetErrorTabHelper may or may not have |
+// started. |
+// |
+// The DNS_PROBE_FINISHED_* values are used in histograms, so: |
+// 1. FINISHED_UNKNOWN must remain the first FINISHED_* value. |
+// 2. FINISHED_* values must not be rearranged relative to FINISHED_UNKNOWN. |
+// 3. New FINISHED_* values must be inserted at the end. |
+// 4. New non-FINISHED_* values must be inserted before FINISHED_UNKNOWN. |
+enum DnsProbeStatus { |
+ // A DNS probe may be run for this error page. (This status is only used on |
+ // the renderer side before it's received a status update from the browser.) |
+ DNS_PROBE_POSSIBLE, |
+ |
+ // A DNS probe will not be run for this error page. (This happens if the |
+ // user has the "Use web service to resolve navigation errors" preference |
+ // turned off, or if probes are disabled by the field trial.) |
+ DNS_PROBE_NOT_RUN, |
+ |
+ // A DNS probe has been started for this error page. The renderer should |
+ // expect to receive another IPC with one of the FINISHED statuses once the |
+ // probe has finished (as long as the error page is still loaded). |
+ DNS_PROBE_STARTED, |
+ |
+ // A DNS probe has finished with one of the following results: |
+ |
+ // The probe was inconclusive. |
+ DNS_PROBE_FINISHED_INCONCLUSIVE, |
+ |
+ // There's no internet connection. |
+ DNS_PROBE_FINISHED_NO_INTERNET, |
+ |
+ // The DNS configuration is wrong, or the servers are down or broken. |
+ DNS_PROBE_FINISHED_BAD_CONFIG, |
+ |
+ // The DNS servers are working fine, so the domain must not exist. |
+ DNS_PROBE_FINISHED_NXDOMAIN, |
+ |
DNS_PROBE_MAX |
}; |
+// Returns a string representing |status|. It should be simply the name of |
+// the value as a string, but don't rely on that. This is presented to the |
+// user as part of the DNS error page (as the error code, at the bottom), |
+// and is also used in some verbose log messages. |
+// |
+// |status| is an int because error codes are ints by the time they get to the |
+// localized error system, and we don't want to require the caller to cast back |
+// to a probe status. The function will NOTREACHED() and return an empty |
+// string if given an int that does not match a value in DnsProbeStatus (or if |
+// it is DNS_PROBE_MAX, which is not a real status). |
+const char* DnsProbeStatusToString(int status); |
+ |
+// Returns true if |status| is one of the DNS_PROBE_FINISHED_* statuses. |
+bool DnsProbeStatusIsFinished(DnsProbeStatus status); |
+ |
+// Returns true if DNS probes are enabled (by the DnsProbe-Enable field trial), |
+// or false if they are disabled or the field trial wasn't found. |
+bool DnsProbesEnabledByFieldTrial(); |
+ |
+// The error domain used to pass DNS probe statuses to the localized error |
+// code. |
+extern const char kDnsProbeErrorDomain[]; |
+ |
} // namespace chrome_common_net |
#endif // CHROME_COMMON_NET_NET_ERROR_INFO_H_ |