Home | History | Annotate | Download | only in proxy
      1 // Copyright (c) 2011 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 "net/proxy/dhcp_proxy_script_fetcher_factory.h"
      6 
      7 #include "net/base/net_errors.h"
      8 #include "net/proxy/dhcp_proxy_script_fetcher.h"
      9 
     10 #if defined(OS_WIN)
     11 #include "net/proxy/dhcp_proxy_script_fetcher_win.h"
     12 #endif
     13 
     14 namespace net {
     15 
     16 DhcpProxyScriptFetcherFactory::DhcpProxyScriptFetcherFactory()
     17     : feature_enabled_(false) {
     18   set_enabled(true);
     19 }
     20 
     21 DhcpProxyScriptFetcher* DhcpProxyScriptFetcherFactory::Create(
     22     URLRequestContext* context) {
     23   if (!feature_enabled_) {
     24     return new DoNothingDhcpProxyScriptFetcher();
     25   } else {
     26     DCHECK(IsSupported());
     27     DhcpProxyScriptFetcher* ret = NULL;
     28 #if defined(OS_WIN)
     29     ret = new DhcpProxyScriptFetcherWin(context);
     30 #endif
     31     DCHECK(ret);
     32     return ret;
     33   }
     34 }
     35 
     36 void DhcpProxyScriptFetcherFactory::set_enabled(bool enabled) {
     37   if (IsSupported()) {
     38     feature_enabled_ = enabled;
     39   }
     40 }
     41 
     42 bool DhcpProxyScriptFetcherFactory::enabled() const {
     43   return feature_enabled_;
     44 }
     45 
     46 // static
     47 bool DhcpProxyScriptFetcherFactory::IsSupported() {
     48 #if defined(OS_WIN)
     49   return true;
     50 #else
     51   return false;
     52 #endif
     53 }
     54 
     55 }  // namespace net
     56