Chromium Code Reviews| Index: chrome/browser/chromeos/proxy_cros_settings_parser.cc |
| diff --git a/chrome/browser/chromeos/proxy_cros_settings_provider.cc b/chrome/browser/chromeos/proxy_cros_settings_parser.cc |
| similarity index 73% |
| rename from chrome/browser/chromeos/proxy_cros_settings_provider.cc |
| rename to chrome/browser/chromeos/proxy_cros_settings_parser.cc |
| index 85a89a12b7e6d561cd2b936f7217808dbd35dfa4..3209cacc50a008c4e1bb2b3f9293e9d7ba698822 100644 |
| --- a/chrome/browser/chromeos/proxy_cros_settings_provider.cc |
| +++ b/chrome/browser/chromeos/proxy_cros_settings_parser.cc |
| @@ -2,73 +2,85 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "chrome/browser/chromeos/proxy_cros_settings_provider.h" |
| +#include "chrome/browser/chromeos/proxy_cros_settings_parser.h" |
| #include "base/string_util.h" |
| -#include "chrome/browser/browser_process.h" |
| -#include "chrome/browser/chromeos/cros_settings.h" |
| #include "chrome/browser/profiles/profile.h" |
| -#include "chrome/browser/ui/browser_list.h" |
| namespace chromeos { |
| -static const char kProxyPacUrl[] = "cros.session.proxy.pacurl"; |
| -static const char kProxySingleHttp[] = "cros.session.proxy.singlehttp"; |
| -static const char kProxySingleHttpPort[] = "cros.session.proxy.singlehttpport"; |
| -static const char kProxyHttpUrl[] = "cros.session.proxy.httpurl"; |
| -static const char kProxyHttpPort[] = "cros.session.proxy.httpport"; |
| -static const char kProxyHttpsUrl[] = "cros.session.proxy.httpsurl"; |
| -static const char kProxyHttpsPort[] = "cros.session.proxy.httpsport"; |
| -static const char kProxyType[] = "cros.session.proxy.type"; |
| -static const char kProxySingle[] = "cros.session.proxy.single"; |
| -static const char kProxyFtpUrl[] = "cros.session.proxy.ftpurl"; |
| -static const char kProxyFtpPort[] = "cros.session.proxy.ftpport"; |
| -static const char kProxySocks[] = "cros.session.proxy.socks"; |
| -static const char kProxySocksPort[] = "cros.session.proxy.socksport"; |
| -static const char kProxyIgnoreList[] = "cros.session.proxy.ignorelist"; |
| +// Names of proxy preferences. |
| +const char kProxyPacUrl[] = "cros.session.proxy.pacurl"; |
| +const char kProxySingleHttp[] = "cros.session.proxy.singlehttp"; |
| +const char kProxySingleHttpPort[] = "cros.session.proxy.singlehttpport"; |
| +const char kProxyHttpUrl[] = "cros.session.proxy.httpurl"; |
| +const char kProxyHttpPort[] = "cros.session.proxy.httpport"; |
| +const char kProxyHttpsUrl[] = "cros.session.proxy.httpsurl"; |
| +const char kProxyHttpsPort[] = "cros.session.proxy.httpsport"; |
| +const char kProxyType[] = "cros.session.proxy.type"; |
| +const char kProxySingle[] = "cros.session.proxy.single"; |
| +const char kProxyFtpUrl[] = "cros.session.proxy.ftpurl"; |
| +const char kProxyFtpPort[] = "cros.session.proxy.ftpport"; |
| +const char kProxySocks[] = "cros.session.proxy.socks"; |
| +const char kProxySocksPort[] = "cros.session.proxy.socksport"; |
| +const char kProxyIgnoreList[] = "cros.session.proxy.ignorelist"; |
| -static const char* const kProxySettings[] = { |
| - kProxyPacUrl, |
| - kProxySingleHttp, |
| - kProxySingleHttpPort, |
| - kProxyHttpUrl, |
| - kProxyHttpPort, |
| - kProxyHttpsUrl, |
| - kProxyHttpsPort, |
| - kProxyType, |
| - kProxySingle, |
| - kProxyFtpUrl, |
| - kProxyFtpPort, |
| - kProxySocks, |
| - kProxySocksPort, |
| - kProxyIgnoreList, |
| -}; |
| +namespace { |
| -//------------------ ProxyCrosSettingsProvider: public methods ----------------- |
| +base::Value* CreateServerHostValue( |
| + const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) { |
| + return proxy.server.is_valid() ? |
| + base::Value::CreateStringValue(proxy.server.host_port_pair().host()) : |
| + NULL; |
| +} |
| + |
| +base::Value* CreateServerPortValue( |
| + const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) { |
| + return proxy.server.is_valid() ? |
| + base::Value::CreateIntegerValue(proxy.server.host_port_pair().port()) : |
| + NULL; |
| +} |
| -ProxyCrosSettingsProvider::ProxyCrosSettingsProvider(Profile* profile) |
| - : profile_(profile) { |
| +net::ProxyServer CreateProxyServerFromHost( |
| + const std::string& host, |
| + const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy, |
| + net::ProxyServer::Scheme scheme) { |
| + uint16 port = 0; |
| + if (proxy.server.is_valid()) |
| + port = proxy.server.host_port_pair().port(); |
| + if (host.length() == 0 && port == 0) |
| + return net::ProxyServer(); |
| + if (port == 0) |
| + port = net::ProxyServer::GetDefaultPortForScheme(scheme); |
| + net::HostPortPair host_port_pair(host, port); |
| + return net::ProxyServer(scheme, host_port_pair); |
| } |
| -void ProxyCrosSettingsProvider::SetCurrentNetwork(const std::string& network) { |
| - GetConfigService()->UISetCurrentNetwork(network); |
| - for (size_t i = 0; i < arraysize(kProxySettings); ++i) |
| - CrosSettings::Get()->FireObservers(kProxySettings[i]); |
| +net::ProxyServer CreateProxyServerFromPort( |
| + uint16 port, |
| + const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy, |
| + net::ProxyServer::Scheme scheme) { |
| + std::string host; |
| + if (proxy.server.is_valid()) |
| + host = proxy.server.host_port_pair().host(); |
| + if (host.length() == 0 && port == 0) |
| + return net::ProxyServer(); |
| + net::HostPortPair host_port_pair(host, port); |
| + return net::ProxyServer(scheme, host_port_pair); |
| } |
| -void ProxyCrosSettingsProvider::MakeActiveNetworkCurrent() { |
| - GetConfigService()->UIMakeActiveNetworkCurrent(); |
| - for (size_t i = 0; i < arraysize(kProxySettings); ++i) |
| - CrosSettings::Get()->FireObservers(kProxySettings[i]); |
| } |
|
Mattias Nissler (ping if slow)
2011/11/08 09:25:22
// namespace
pastarmovj
2011/11/09 17:51:53
Done.
|
| -void ProxyCrosSettingsProvider::DoSet(const std::string& path, |
| - Value* in_value) { |
| +void ProxyCrosSettingsParser::SetProxyPrefValue(Profile* profile, |
|
Mattias Nissler (ping if slow)
2011/11/08 09:25:22
These large functions suck. I wonder whether we ca
kuan
2011/11/08 14:45:25
somewhere some code has to do the parsing with mul
pastarmovj
2011/11/09 17:51:53
Ok keeping as is for now. Those functions are anyh
|
| + const std::string& path, |
| + const base::Value* in_value) { |
| if (!in_value) { |
| + NOTREACHED(); |
| return; |
| } |
| - chromeos::ProxyConfigServiceImpl* config_service = GetConfigService(); |
| + chromeos::ProxyConfigServiceImpl* config_service = |
| + profile->GetProxyConfigTracker(); |
| // Retrieve proxy config. |
| chromeos::ProxyConfigServiceImpl::ProxyConfig config; |
| config_service->UIGetProxyConfig(&config); |
| @@ -211,7 +223,7 @@ void ProxyCrosSettingsProvider::DoSet(const std::string& path, |
| } |
| } else if (path == kProxyIgnoreList) { |
| net::ProxyBypassRules bypass_rules; |
| - if (in_value->GetType() == Value::TYPE_LIST) { |
| + if (in_value->GetType() == base::Value::TYPE_LIST) { |
| const ListValue* list_value = static_cast<const ListValue*>(in_value); |
| for (size_t x = 0; x < list_value->GetSize(); x++) { |
| std::string val; |
| @@ -224,13 +236,15 @@ void ProxyCrosSettingsProvider::DoSet(const std::string& path, |
| } |
| } |
| -bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| - Value** out_value) const { |
| +bool ProxyCrosSettingsParser::GetProxyPrefValue(Profile* profile, |
| + const std::string& path, |
| + base::Value** out_value) { |
| bool found = false; |
| bool managed = false; |
| std::string controlled_by; |
| - Value* data = NULL; |
| - chromeos::ProxyConfigServiceImpl* config_service = GetConfigService(); |
| + base::Value* data = NULL; |
| + chromeos::ProxyConfigServiceImpl* config_service = |
| + profile->GetProxyConfigTracker(); |
| chromeos::ProxyConfigServiceImpl::ProxyConfig config; |
| config_service->UIGetProxyConfig(&config); |
| @@ -239,7 +253,8 @@ bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| if (config.mode == |
| chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT && |
| config.automatic_proxy.pac_url.is_valid()) { |
| - data = Value::CreateStringValue(config.automatic_proxy.pac_url.spec()); |
| + data = |
| + base::Value::CreateStringValue(config.automatic_proxy.pac_url.spec()); |
| } |
| found = true; |
| } else if (path == kProxySingleHttp) { |
| @@ -259,14 +274,14 @@ bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_AUTO_DETECT || |
| config.mode == |
| chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT) { |
| - data = Value::CreateIntegerValue(3); |
| + data = base::Value::CreateIntegerValue(3); |
| } else if (config.mode == |
| chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY || |
| config.mode == |
| chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PROXY_PER_SCHEME) { |
| - data = Value::CreateIntegerValue(2); |
| + data = base::Value::CreateIntegerValue(2); |
| } else { |
| - data = Value::CreateIntegerValue(1); |
| + data = base::Value::CreateIntegerValue(1); |
| } |
| switch (config.state) { |
| case ProxyPrefs::CONFIG_POLICY: |
| @@ -285,7 +300,7 @@ bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| } |
| found = true; |
| } else if (path == kProxySingle) { |
| - data = Value::CreateBooleanValue(config.mode == |
| + data = base::Value::CreateBooleanValue(config.mode == |
| chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY); |
| found = true; |
| } else if (path == kProxyFtpUrl) { |
| @@ -310,7 +325,7 @@ bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| ListValue* list = new ListValue(); |
| net::ProxyBypassRules::RuleList bypass_rules = config.bypass_rules.rules(); |
| for (size_t x = 0; x < bypass_rules.size(); x++) { |
| - list->Append(Value::CreateStringValue(bypass_rules[x]->ToString())); |
| + list->Append(base::Value::CreateStringValue(bypass_rules[x]->ToString())); |
| } |
| *out_value = list; |
| return true; |
| @@ -318,7 +333,7 @@ bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| if (found) { |
| DictionaryValue* dict = new DictionaryValue; |
| if (!data) |
| - data = Value::CreateStringValue(""); |
| + data = base::Value::CreateStringValue(""); |
| dict->Set("value", data); |
| dict->SetBoolean("managed", managed); |
| if (path == kProxyType) { |
| @@ -333,57 +348,4 @@ bool ProxyCrosSettingsProvider::Get(const std::string& path, |
| } |
| } |
| -bool ProxyCrosSettingsProvider::HandlesSetting(const std::string& path) const { |
| - return ::StartsWithASCII(path, "cros.session.proxy", true); |
| -} |
| - |
| -//----------------- ProxyCrosSettingsProvider: private methods ----------------- |
| - |
| -chromeos::ProxyConfigServiceImpl* |
| - ProxyCrosSettingsProvider::GetConfigService() const { |
| - return profile_->GetProxyConfigTracker(); |
| -} |
| - |
| -net::ProxyServer ProxyCrosSettingsProvider::CreateProxyServerFromHost( |
| - const std::string& host, |
| - const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy, |
| - net::ProxyServer::Scheme scheme) const { |
| - uint16 port = 0; |
| - if (proxy.server.is_valid()) |
| - port = proxy.server.host_port_pair().port(); |
| - if (host.length() == 0 && port == 0) |
| - return net::ProxyServer(); |
| - if (port == 0) |
| - port = net::ProxyServer::GetDefaultPortForScheme(scheme); |
| - net::HostPortPair host_port_pair(host, port); |
| - return net::ProxyServer(scheme, host_port_pair); |
| -} |
| - |
| -net::ProxyServer ProxyCrosSettingsProvider::CreateProxyServerFromPort( |
| - uint16 port, |
| - const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy, |
| - net::ProxyServer::Scheme scheme) const { |
| - std::string host; |
| - if (proxy.server.is_valid()) |
| - host = proxy.server.host_port_pair().host(); |
| - if (host.length() == 0 && port == 0) |
| - return net::ProxyServer(); |
| - net::HostPortPair host_port_pair(host, port); |
| - return net::ProxyServer(scheme, host_port_pair); |
| -} |
| - |
| -Value* ProxyCrosSettingsProvider::CreateServerHostValue( |
| - const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) const { |
| - return proxy.server.is_valid() ? |
| - Value::CreateStringValue(proxy.server.host_port_pair().host()) : |
| - NULL; |
| -} |
| - |
| -Value* ProxyCrosSettingsProvider::CreateServerPortValue( |
| - const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) const { |
| - return proxy.server.is_valid() ? |
| - Value::CreateIntegerValue(proxy.server.host_port_pair().port()) : |
| - NULL; |
| -} |
| - |
| } // namespace chromeos |