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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_CHROMEOS_NET_PROXY_CONFIG_HANDLER_H_
6 #define CHROME_BROWSER_CHROMEOS_NET_PROXY_CONFIG_HANDLER_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "components/onc/onc_constants.h"
11 class PrefRegistrySimple
;
13 class ProxyConfigDictionary
;
15 namespace user_prefs
{
16 class PrefRegistrySyncable
;
23 namespace proxy_config
{
25 // Get the proxy configuration including per-network policies for network
26 // |network|. If |profile_prefs| is NULL, then only shared settings (and device
27 // policy) are respected. This is e.g. the case for the signin screen and the
28 // system request context.
29 scoped_ptr
<ProxyConfigDictionary
> GetProxyConfigForNetwork(
30 const PrefService
* profile_prefs
,
31 const PrefService
* local_state_prefs
,
32 const NetworkState
& network
,
33 onc::ONCSource
* onc_source
);
35 void SetProxyConfigForNetwork(const ProxyConfigDictionary
& proxy_config
,
36 const NetworkState
& network
);
38 void RegisterPrefs(PrefRegistrySimple
* registry
);
40 void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable
* registry
);
42 } // namespace proxy_config
44 } // namespace chromeos
46 #endif // CHROME_BROWSER_CHROMEOS_NET_PROXY_CONFIG_HANDLER_H_