1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/command_line.h"
6 #include "base/logging.h"
7 #include "base/metrics/field_trial.h"
8 #include "chrome/common/chrome_switches.h"
9 #include "chrome/common/net/net_error_info.h"
11 namespace chrome_common_net {
13 const char kDnsProbeErrorDomain[] = "dnsprobe";
15 const char* DnsProbeStatusToString(int status) {
17 case DNS_PROBE_POSSIBLE:
18 return "DNS_PROBE_POSSIBLE";
19 case DNS_PROBE_NOT_RUN:
20 return "DNS_PROBE_NOT_RUN";
21 case DNS_PROBE_STARTED:
22 return "DNS_PROBE_STARTED";
23 case DNS_PROBE_FINISHED_INCONCLUSIVE:
24 return "DNS_PROBE_FINISHED_INCONCLUSIVE";
25 case DNS_PROBE_FINISHED_NO_INTERNET:
26 return "DNS_PROBE_FINISHED_NO_INTERNET";
27 case DNS_PROBE_FINISHED_BAD_CONFIG:
28 return "DNS_PROBE_FINISHED_BAD_CONFIG";
29 case DNS_PROBE_FINISHED_NXDOMAIN:
30 return "DNS_PROBE_FINISHED_NXDOMAIN";
37 bool DnsProbeStatusIsFinished(DnsProbeStatus status) {
38 return status >= DNS_PROBE_FINISHED_INCONCLUSIVE &&
39 status < DNS_PROBE_MAX;
42 bool DnsProbesEnabled() {
43 CommandLine* command_line = CommandLine::ForCurrentProcess();
45 if (command_line->HasSwitch(switches::kDisableDnsProbes))
47 else if (command_line->HasSwitch(switches::kEnableDnsProbes))
50 const char kDnsProbeFieldTrialName[] = "DnsProbe-Enable";
51 const char kDnsProbeFieldTrialEnableGroupName[] = "enable";
53 return base::FieldTrialList::FindFullName(kDnsProbeFieldTrialName) ==
54 kDnsProbeFieldTrialEnableGroupName;
57 } // namespace chrome_common_net