OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_COMMON_NET_NET_ERROR_INFO_H_ | 5 #ifndef CHROME_COMMON_NET_NET_ERROR_INFO_H_ |
6 #define CHROME_COMMON_NET_NET_ERROR_INFO_H_ | 6 #define CHROME_COMMON_NET_NET_ERROR_INFO_H_ |
7 | 7 |
8 namespace chrome_common_net { | 8 namespace chrome_common_net { |
9 | 9 |
10 enum DnsProbeResult { | 10 // The status of a DNS probe that the NetErrorTabHelper may or may not have |
11 DNS_PROBE_UNKNOWN, | 11 // started. |
12 DNS_PROBE_NO_INTERNET, | 12 // |
13 DNS_PROBE_BAD_CONFIG, | 13 // The DNS_PROBE_FINISHED_* values are used in histograms, so: |
14 DNS_PROBE_NXDOMAIN, | 14 // 1. FINISHED_UNKNOWN must remain the first FINISHED_* value. |
| 15 // 2. FINISHED_* values must not be rearranged relative to FINISHED_UNKNOWN. |
| 16 // 3. New FINISHED_* values must be inserted at the end. |
| 17 // 4. New non-FINISHED_* values must be inserted before FINISHED_UNKNOWN. |
| 18 enum DnsProbeStatus { |
| 19 // A DNS probe may be run for this error page. (This status is only used on |
| 20 // the renderer side before it's received a status update from the browser.) |
| 21 DNS_PROBE_POSSIBLE, |
| 22 |
| 23 // A DNS probe will not be run for this error page. (This happens if the |
| 24 // user has the "Use web service to resolve navigation errors" preference |
| 25 // turned off, or if probes are disabled by the field trial.) |
| 26 DNS_PROBE_NOT_RUN, |
| 27 |
| 28 // A DNS probe has been started for this error page. The renderer should |
| 29 // expect to receive another IPC with one of the FINISHED statuses once the |
| 30 // probe has finished (as long as the error page is still loaded). |
| 31 DNS_PROBE_STARTED, |
| 32 |
| 33 // A DNS probe has finished with one of the following results: |
| 34 |
| 35 // The probe was inconclusive. |
| 36 DNS_PROBE_FINISHED_INCONCLUSIVE, |
| 37 |
| 38 // There's no internet connection. |
| 39 DNS_PROBE_FINISHED_NO_INTERNET, |
| 40 |
| 41 // The DNS configuration is wrong, or the servers are down or broken. |
| 42 DNS_PROBE_FINISHED_BAD_CONFIG, |
| 43 |
| 44 // The DNS servers are working fine, so the domain must not exist. |
| 45 DNS_PROBE_FINISHED_NXDOMAIN, |
| 46 |
15 DNS_PROBE_MAX | 47 DNS_PROBE_MAX |
16 }; | 48 }; |
17 | 49 |
| 50 // Returns a string representing |status|. It should be simply the name of |
| 51 // the value as a string, but don't rely on that. This is presented to the |
| 52 // user as part of the DNS error page (as the error code, at the bottom), |
| 53 // and is also used in some verbose log messages. |
| 54 // |
| 55 // |status| is an int because error codes are ints by the time they get to the |
| 56 // localized error system, and we don't want to require the caller to cast back |
| 57 // to a probe status. The function will NOTREACHED() and return an empty |
| 58 // string if given an int that does not match a value in DnsProbeStatus (or if |
| 59 // it is DNS_PROBE_MAX, which is not a real status). |
| 60 const char* DnsProbeStatusToString(int status); |
| 61 |
| 62 // Returns true if |status| is one of the DNS_PROBE_FINISHED_* statuses. |
| 63 bool DnsProbeStatusIsFinished(DnsProbeStatus status); |
| 64 |
| 65 // Returns true if DNS probes are enabled (by the DnsProbe-Enable field trial), |
| 66 // or false if they are disabled or the field trial wasn't found. |
| 67 bool DnsProbesEnabledByFieldTrial(); |
| 68 |
| 69 // The error domain used to pass DNS probe statuses to the localized error |
| 70 // code. |
| 71 extern const char kDnsProbeErrorDomain[]; |
| 72 |
18 } // namespace chrome_common_net | 73 } // namespace chrome_common_net |
19 | 74 |
20 #endif // CHROME_COMMON_NET_NET_ERROR_INFO_H_ | 75 #endif // CHROME_COMMON_NET_NET_ERROR_INFO_H_ |
OLD | NEW |