| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/proxy_cros_settings_provider.h" | 5 #include "chrome/browser/chromeos/proxy_cros_settings_provider.h" |
| 6 | 6 |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/chromeos/cros_settings.h" | 9 #include "chrome/browser/chromeos/cros_settings.h" |
| 10 #include "chrome/browser/ui/browser_list.h" | 10 #include "chrome/browser/ui/browser_list.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 | 63 |
| 64 bool ProxyCrosSettingsProvider::IsUsingSharedProxies() const { | 64 bool ProxyCrosSettingsProvider::IsUsingSharedProxies() const { |
| 65 return GetConfigService()->use_shared_proxies(); | 65 return GetConfigService()->use_shared_proxies(); |
| 66 } | 66 } |
| 67 | 67 |
| 68 const std::string& ProxyCrosSettingsProvider::GetCurrentNetworkName() const { | 68 const std::string& ProxyCrosSettingsProvider::GetCurrentNetworkName() const { |
| 69 return GetConfigService()->current_network_name(); | 69 return GetConfigService()->current_network_name(); |
| 70 } | 70 } |
| 71 | 71 |
| 72 void ProxyCrosSettingsProvider::DoSet(const std::string& path, | 72 void ProxyCrosSettingsProvider::DoSet(const std::string& path, |
| 73 Value* in_value) { | 73 const base::Value& in_value) { |
| 74 if (!in_value) { | |
| 75 return; | |
| 76 } | |
| 77 | |
| 78 chromeos::ProxyConfigServiceImpl* config_service = GetConfigService(); | 74 chromeos::ProxyConfigServiceImpl* config_service = GetConfigService(); |
| 79 // Retrieve proxy config. | 75 // Retrieve proxy config. |
| 80 chromeos::ProxyConfigServiceImpl::ProxyConfig config; | 76 chromeos::ProxyConfigServiceImpl::ProxyConfig config; |
| 81 config_service->UIGetProxyConfig(&config); | 77 config_service->UIGetProxyConfig(&config); |
| 82 | 78 |
| 83 if (path == kProxyPacUrl) { | 79 if (path == kProxyPacUrl) { |
| 84 std::string val; | 80 std::string val; |
| 85 if (in_value->GetAsString(&val)) { | 81 if (in_value.GetAsString(&val)) { |
| 86 GURL url(val); | 82 GURL url(val); |
| 87 if (url.is_valid()) | 83 if (url.is_valid()) |
| 88 config_service->UISetProxyConfigToPACScript(url); | 84 config_service->UISetProxyConfigToPACScript(url); |
| 89 else | 85 else |
| 90 config_service->UISetProxyConfigToAutoDetect(); | 86 config_service->UISetProxyConfigToAutoDetect(); |
| 91 } | 87 } |
| 92 } else if (path == kProxySingleHttp) { | 88 } else if (path == kProxySingleHttp) { |
| 93 std::string val; | 89 std::string val; |
| 94 if (in_value->GetAsString(&val)) { | 90 if (in_value.GetAsString(&val)) { |
| 95 config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromHost( | 91 config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromHost( |
| 96 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP)); | 92 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 97 } | 93 } |
| 98 } else if (path == kProxySingleHttpPort) { | 94 } else if (path == kProxySingleHttpPort) { |
| 99 int val; | 95 int val; |
| 100 if (in_value->GetAsInteger(&val)) { | 96 if (in_value.GetAsInteger(&val)) { |
| 101 config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromPort( | 97 config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromPort( |
| 102 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP)); | 98 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 103 } | 99 } |
| 104 } else if (path == kProxyHttpUrl) { | 100 } else if (path == kProxyHttpUrl) { |
| 105 std::string val; | 101 std::string val; |
| 106 if (in_value->GetAsString(&val)) { | 102 if (in_value.GetAsString(&val)) { |
| 107 config_service->UISetProxyConfigToProxyPerScheme("http", | 103 config_service->UISetProxyConfigToProxyPerScheme("http", |
| 108 CreateProxyServerFromHost( | 104 CreateProxyServerFromHost( |
| 109 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP)); | 105 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 110 } | 106 } |
| 111 } else if (path == kProxyHttpPort) { | 107 } else if (path == kProxyHttpPort) { |
| 112 int val; | 108 int val; |
| 113 if (in_value->GetAsInteger(&val)) { | 109 if (in_value.GetAsInteger(&val)) { |
| 114 config_service->UISetProxyConfigToProxyPerScheme("http", | 110 config_service->UISetProxyConfigToProxyPerScheme("http", |
| 115 CreateProxyServerFromPort( | 111 CreateProxyServerFromPort( |
| 116 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP)); | 112 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 117 } | 113 } |
| 118 } else if (path == kProxyHttpsUrl) { | 114 } else if (path == kProxyHttpsUrl) { |
| 119 std::string val; | 115 std::string val; |
| 120 if (in_value->GetAsString(&val)) { | 116 if (in_value.GetAsString(&val)) { |
| 121 config_service->UISetProxyConfigToProxyPerScheme("https", | 117 config_service->UISetProxyConfigToProxyPerScheme("https", |
| 122 CreateProxyServerFromHost( | 118 CreateProxyServerFromHost( |
| 123 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP)); | 119 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 124 } | 120 } |
| 125 } else if (path == kProxyHttpsPort) { | 121 } else if (path == kProxyHttpsPort) { |
| 126 int val; | 122 int val; |
| 127 if (in_value->GetAsInteger(&val)) { | 123 if (in_value.GetAsInteger(&val)) { |
| 128 config_service->UISetProxyConfigToProxyPerScheme("https", | 124 config_service->UISetProxyConfigToProxyPerScheme("https", |
| 129 CreateProxyServerFromPort( | 125 CreateProxyServerFromPort( |
| 130 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP)); | 126 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 131 } | 127 } |
| 132 } else if (path == kProxyType) { | 128 } else if (path == kProxyType) { |
| 133 int val; | 129 int val; |
| 134 if (in_value->GetAsInteger(&val)) { | 130 if (in_value.GetAsInteger(&val)) { |
| 135 if (val == 3) { | 131 if (val == 3) { |
| 136 if (config.automatic_proxy.pac_url.is_valid()) | 132 if (config.automatic_proxy.pac_url.is_valid()) |
| 137 config_service->UISetProxyConfigToPACScript( | 133 config_service->UISetProxyConfigToPACScript( |
| 138 config.automatic_proxy.pac_url); | 134 config.automatic_proxy.pac_url); |
| 139 else | 135 else |
| 140 config_service->UISetProxyConfigToAutoDetect(); | 136 config_service->UISetProxyConfigToAutoDetect(); |
| 141 } else if (val == 2) { | 137 } else if (val == 2) { |
| 142 if (config.single_proxy.server.is_valid()) { | 138 if (config.single_proxy.server.is_valid()) { |
| 143 config_service->UISetProxyConfigToSingleProxy( | 139 config_service->UISetProxyConfigToSingleProxy( |
| 144 config.single_proxy.server); | 140 config.single_proxy.server); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 168 config_service->UISetProxyConfigToProxyPerScheme("http", | 164 config_service->UISetProxyConfigToProxyPerScheme("http", |
| 169 net::ProxyServer()); | 165 net::ProxyServer()); |
| 170 } | 166 } |
| 171 } | 167 } |
| 172 } else { | 168 } else { |
| 173 config_service->UISetProxyConfigToDirect(); | 169 config_service->UISetProxyConfigToDirect(); |
| 174 } | 170 } |
| 175 } | 171 } |
| 176 } else if (path == kProxySingle) { | 172 } else if (path == kProxySingle) { |
| 177 bool val; | 173 bool val; |
| 178 if (in_value->GetAsBoolean(&val)) { | 174 if (in_value.GetAsBoolean(&val)) { |
| 179 if (val) | 175 if (val) |
| 180 config_service->UISetProxyConfigToSingleProxy( | 176 config_service->UISetProxyConfigToSingleProxy( |
| 181 config.single_proxy.server); | 177 config.single_proxy.server); |
| 182 else | 178 else |
| 183 config_service->UISetProxyConfigToProxyPerScheme("http", | 179 config_service->UISetProxyConfigToProxyPerScheme("http", |
| 184 config.http_proxy.server); | 180 config.http_proxy.server); |
| 185 } | 181 } |
| 186 } else if (path == kProxyFtpUrl) { | 182 } else if (path == kProxyFtpUrl) { |
| 187 std::string val; | 183 std::string val; |
| 188 if (in_value->GetAsString(&val)) { | 184 if (in_value.GetAsString(&val)) { |
| 189 config_service->UISetProxyConfigToProxyPerScheme("ftp", | 185 config_service->UISetProxyConfigToProxyPerScheme("ftp", |
| 190 CreateProxyServerFromHost( | 186 CreateProxyServerFromHost( |
| 191 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); | 187 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 192 } | 188 } |
| 193 } else if (path == kProxyFtpPort) { | 189 } else if (path == kProxyFtpPort) { |
| 194 int val; | 190 int val; |
| 195 if (in_value->GetAsInteger(&val)) { | 191 if (in_value.GetAsInteger(&val)) { |
| 196 config_service->UISetProxyConfigToProxyPerScheme("ftp", | 192 config_service->UISetProxyConfigToProxyPerScheme("ftp", |
| 197 CreateProxyServerFromPort( | 193 CreateProxyServerFromPort( |
| 198 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); | 194 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); |
| 199 } | 195 } |
| 200 } else if (path == kProxySocks) { | 196 } else if (path == kProxySocks) { |
| 201 std::string val; | 197 std::string val; |
| 202 if (in_value->GetAsString(&val)) { | 198 if (in_value.GetAsString(&val)) { |
| 203 config_service->UISetProxyConfigToProxyPerScheme("socks", | 199 config_service->UISetProxyConfigToProxyPerScheme("socks", |
| 204 CreateProxyServerFromHost(val, config.socks_proxy, | 200 CreateProxyServerFromHost(val, config.socks_proxy, |
| 205 StartsWithASCII(val, "socks5://", false) ? | 201 StartsWithASCII(val, "socks5://", false) ? |
| 206 net::ProxyServer::SCHEME_SOCKS5 : | 202 net::ProxyServer::SCHEME_SOCKS5 : |
| 207 net::ProxyServer::SCHEME_SOCKS4)); | 203 net::ProxyServer::SCHEME_SOCKS4)); |
| 208 } | 204 } |
| 209 } else if (path == kProxySocksPort) { | 205 } else if (path == kProxySocksPort) { |
| 210 int val; | 206 int val; |
| 211 if (in_value->GetAsInteger(&val)) { | 207 if (in_value.GetAsInteger(&val)) { |
| 212 std::string host = config.socks_proxy.server.host_port_pair().host(); | 208 std::string host = config.socks_proxy.server.host_port_pair().host(); |
| 213 config_service->UISetProxyConfigToProxyPerScheme("socks", | 209 config_service->UISetProxyConfigToProxyPerScheme("socks", |
| 214 CreateProxyServerFromPort(val, config.socks_proxy, | 210 CreateProxyServerFromPort(val, config.socks_proxy, |
| 215 StartsWithASCII(host, "socks5://", false) ? | 211 StartsWithASCII(host, "socks5://", false) ? |
| 216 net::ProxyServer::SCHEME_SOCKS5 : | 212 net::ProxyServer::SCHEME_SOCKS5 : |
| 217 net::ProxyServer::SCHEME_SOCKS4)); | 213 net::ProxyServer::SCHEME_SOCKS4)); |
| 218 } | 214 } |
| 219 } else if (path == kProxyIgnoreList) { | 215 } else if (path == kProxyIgnoreList) { |
| 220 net::ProxyBypassRules bypass_rules; | 216 net::ProxyBypassRules bypass_rules; |
| 221 if (in_value->GetType() == Value::TYPE_LIST) { | 217 if (in_value.GetType() == base::Value::TYPE_LIST) { |
| 222 const ListValue* list_value = static_cast<const ListValue*>(in_value); | 218 const base::ListValue& list_value = |
| 223 for (size_t x = 0; x < list_value->GetSize(); x++) { | 219 static_cast<const base::ListValue&>(in_value); |
| 220 for (size_t x = 0; x < list_value.GetSize(); x++) { |
| 224 std::string val; | 221 std::string val; |
| 225 if (list_value->GetString(x, &val)) { | 222 if (list_value.GetString(x, &val)) { |
| 226 bypass_rules.AddRuleFromString(val); | 223 bypass_rules.AddRuleFromString(val); |
| 227 } | 224 } |
| 228 } | 225 } |
| 229 config_service->UISetProxyConfigBypassRules(bypass_rules); | 226 config_service->UISetProxyConfigBypassRules(bypass_rules); |
| 230 } | 227 } |
| 231 } | 228 } |
| 232 } | 229 } |
| 233 | 230 |
| 234 const Value* ProxyCrosSettingsProvider::Get(const std::string& path) const { | 231 const Value* ProxyCrosSettingsProvider::Get(const std::string& path) const { |
| 235 bool found = false; | 232 bool found = false; |
| 236 Value* data = NULL; | 233 base::Value* data = NULL; |
| 237 chromeos::ProxyConfigServiceImpl* config_service = GetConfigService(); | 234 chromeos::ProxyConfigServiceImpl* config_service = GetConfigService(); |
| 238 chromeos::ProxyConfigServiceImpl::ProxyConfig config; | 235 chromeos::ProxyConfigServiceImpl::ProxyConfig config; |
| 239 config_service->UIGetProxyConfig(&config); | 236 config_service->UIGetProxyConfig(&config); |
| 240 | 237 |
| 241 if (path == kProxyPacUrl) { | 238 if (path == kProxyPacUrl) { |
| 242 // Only show pacurl for pac-script mode. | 239 // Only show pacurl for pac-script mode. |
| 243 if (config.mode == | 240 if (config.mode == |
| 244 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT && | 241 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT && |
| 245 config.automatic_proxy.pac_url.is_valid()) { | 242 config.automatic_proxy.pac_url.is_valid()) { |
| 246 data = Value::CreateStringValue(config.automatic_proxy.pac_url.spec()); | 243 data = Value::CreateStringValue(config.automatic_proxy.pac_url.spec()); |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 } | 364 } |
| 368 | 365 |
| 369 Value* ProxyCrosSettingsProvider::CreateServerPortValue( | 366 Value* ProxyCrosSettingsProvider::CreateServerPortValue( |
| 370 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) const { | 367 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) const { |
| 371 return proxy.server.is_valid() ? | 368 return proxy.server.is_valid() ? |
| 372 Value::CreateIntegerValue(proxy.server.host_port_pair().port()) : | 369 Value::CreateIntegerValue(proxy.server.host_port_pair().port()) : |
| 373 NULL; | 370 NULL; |
| 374 } | 371 } |
| 375 | 372 |
| 376 } // namespace chromeos | 373 } // namespace chromeos |
| OLD | NEW |