• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
DhcpProxyScriptFetcherFactory()16 DhcpProxyScriptFetcherFactory::DhcpProxyScriptFetcherFactory()
17     : feature_enabled_(false) {
18   set_enabled(true);
19 }
20 
Create(URLRequestContext * context)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 
set_enabled(bool enabled)36 void DhcpProxyScriptFetcherFactory::set_enabled(bool enabled) {
37   if (IsSupported()) {
38     feature_enabled_ = enabled;
39   }
40 }
41 
enabled() const42 bool DhcpProxyScriptFetcherFactory::enabled() const {
43   return feature_enabled_;
44 }
45 
46 // static
IsSupported()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