Home | History | Annotate | Download | only in net
      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.
      4 
      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"
     10 
     11 namespace chrome_common_net {
     12 
     13 const char kDnsProbeErrorDomain[] = "dnsprobe";
     14 
     15 const char* DnsProbeStatusToString(int status) {
     16   switch (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";
     31   default:
     32     NOTREACHED();
     33     return "";
     34   }
     35 }
     36 
     37 bool DnsProbeStatusIsFinished(DnsProbeStatus status) {
     38   return status >= DNS_PROBE_FINISHED_INCONCLUSIVE &&
     39          status < DNS_PROBE_MAX;
     40 }
     41 
     42 bool DnsProbesEnabled() {
     43 #if defined(OS_ANDROID)
     44   return false;
     45 #else
     46   CommandLine* command_line = CommandLine::ForCurrentProcess();
     47 
     48   if (command_line->HasSwitch(switches::kDisableDnsProbes))
     49     return false;
     50   else if (command_line->HasSwitch(switches::kEnableDnsProbes))
     51     return true;
     52 
     53   const char kDnsProbeFieldTrialName[] = "DnsProbe-Enable";
     54   const char kDnsProbeFieldTrialEnableGroupName[] = "enable";
     55 
     56   return base::FieldTrialList::FindFullName(kDnsProbeFieldTrialName) ==
     57          kDnsProbeFieldTrialEnableGroupName;
     58 #endif  // OS_ANDROID
     59 }
     60 
     61 }  // namespace chrome_common_net
     62