OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_parser.h" | 5 #include "chrome/browser/chromeos/proxy_cros_settings_parser.h" |
6 | 6 |
7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/chromeos/proxy_config_service_impl.h" | 9 #include "chrome/browser/chromeos/proxy_config_service_impl.h" |
10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 const char kProxyHttpPort[] = "cros.session.proxy.httpport"; | 22 const char kProxyHttpPort[] = "cros.session.proxy.httpport"; |
23 const char kProxyHttpsUrl[] = "cros.session.proxy.httpsurl"; | 23 const char kProxyHttpsUrl[] = "cros.session.proxy.httpsurl"; |
24 const char kProxyHttpsPort[] = "cros.session.proxy.httpsport"; | 24 const char kProxyHttpsPort[] = "cros.session.proxy.httpsport"; |
25 const char kProxyType[] = "cros.session.proxy.type"; | 25 const char kProxyType[] = "cros.session.proxy.type"; |
26 const char kProxySingle[] = "cros.session.proxy.single"; | 26 const char kProxySingle[] = "cros.session.proxy.single"; |
27 const char kProxyFtpUrl[] = "cros.session.proxy.ftpurl"; | 27 const char kProxyFtpUrl[] = "cros.session.proxy.ftpurl"; |
28 const char kProxyFtpPort[] = "cros.session.proxy.ftpport"; | 28 const char kProxyFtpPort[] = "cros.session.proxy.ftpport"; |
29 const char kProxySocks[] = "cros.session.proxy.socks"; | 29 const char kProxySocks[] = "cros.session.proxy.socks"; |
30 const char kProxySocksPort[] = "cros.session.proxy.socksport"; | 30 const char kProxySocksPort[] = "cros.session.proxy.socksport"; |
31 const char kProxyIgnoreList[] = "cros.session.proxy.ignorelist"; | 31 const char kProxyIgnoreList[] = "cros.session.proxy.ignorelist"; |
| 32 const char kProxyUsePacUrl[] = "cros.session.proxy.usepacurl"; |
32 | 33 |
33 const char* const kProxySettings[] = { | 34 const char* const kProxySettings[] = { |
34 kProxyPacUrl, | 35 kProxyPacUrl, |
35 kProxySingleHttp, | 36 kProxySingleHttp, |
36 kProxySingleHttpPort, | 37 kProxySingleHttpPort, |
37 kProxyHttpUrl, | 38 kProxyHttpUrl, |
38 kProxyHttpPort, | 39 kProxyHttpPort, |
39 kProxyHttpsUrl, | 40 kProxyHttpsUrl, |
40 kProxyHttpsPort, | 41 kProxyHttpsPort, |
41 kProxyType, | 42 kProxyType, |
42 kProxySingle, | 43 kProxySingle, |
43 kProxyFtpUrl, | 44 kProxyFtpUrl, |
44 kProxyFtpPort, | 45 kProxyFtpPort, |
45 kProxySocks, | 46 kProxySocks, |
46 kProxySocksPort, | 47 kProxySocksPort, |
47 kProxyIgnoreList, | 48 kProxyIgnoreList, |
| 49 kProxyUsePacUrl, |
48 }; | 50 }; |
49 | 51 |
50 // We have to explicitly export this because the arraysize macro doesn't like | 52 // We have to explicitly export this because the arraysize macro doesn't like |
51 // extern arrays as their size is not known on compile time. | 53 // extern arrays as their size is not known on compile time. |
52 const size_t kProxySettingsCount = arraysize(kProxySettings); | 54 const size_t kProxySettingsCount = arraysize(kProxySettings); |
53 | 55 |
54 namespace { | 56 namespace { |
55 | 57 |
56 base::Value* CreateServerHostValue( | 58 base::Value* CreateServerHostValue( |
57 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) { | 59 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) { |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 } else if (path == kProxySingle) { | 227 } else if (path == kProxySingle) { |
226 bool val; | 228 bool val; |
227 if (in_value->GetAsBoolean(&val)) { | 229 if (in_value->GetAsBoolean(&val)) { |
228 if (val) | 230 if (val) |
229 config_service->UISetProxyConfigToSingleProxy( | 231 config_service->UISetProxyConfigToSingleProxy( |
230 config.single_proxy.server); | 232 config.single_proxy.server); |
231 else | 233 else |
232 config_service->UISetProxyConfigToProxyPerScheme("http", | 234 config_service->UISetProxyConfigToProxyPerScheme("http", |
233 config.http_proxy.server); | 235 config.http_proxy.server); |
234 } | 236 } |
| 237 } else if (path == kProxyUsePacUrl) { |
| 238 bool use_pac_url; |
| 239 if (in_value->GetAsBoolean(&use_pac_url)) { |
| 240 if (use_pac_url && config.automatic_proxy.pac_url.is_valid()) { |
| 241 config_service->UISetProxyConfigToPACScript( |
| 242 config.automatic_proxy.pac_url); |
| 243 } else { |
| 244 config_service->UISetProxyConfigToAutoDetect(); |
| 245 } |
| 246 } |
235 } else if (path == kProxyFtpUrl) { | 247 } else if (path == kProxyFtpUrl) { |
236 std::string val; | 248 std::string val; |
237 if (in_value->GetAsString(&val)) { | 249 if (in_value->GetAsString(&val)) { |
238 config_service->UISetProxyConfigToProxyPerScheme("ftp", | 250 config_service->UISetProxyConfigToProxyPerScheme("ftp", |
239 CreateProxyServerFromHost( | 251 CreateProxyServerFromHost( |
240 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); | 252 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); |
241 } | 253 } |
242 } else if (path == kProxyFtpPort) { | 254 } else if (path == kProxyFtpPort) { |
243 int val; | 255 int val; |
244 if (in_value->GetAsInteger(&val)) { | 256 if (in_value->GetAsInteger(&val)) { |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 controlled_by = "other"; | 342 controlled_by = "other"; |
331 break; | 343 break; |
332 default: | 344 default: |
333 if (!config.user_modifiable) | 345 if (!config.user_modifiable) |
334 controlled_by = "shared"; | 346 controlled_by = "shared"; |
335 break; | 347 break; |
336 } | 348 } |
337 } else if (path == kProxySingle) { | 349 } else if (path == kProxySingle) { |
338 data = base::Value::CreateBooleanValue(config.mode == | 350 data = base::Value::CreateBooleanValue(config.mode == |
339 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY); | 351 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY); |
| 352 } else if (path == kProxyUsePacUrl) { |
| 353 data = base::Value::CreateBooleanValue(config.mode == |
| 354 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT); |
340 } else if (path == kProxyFtpUrl) { | 355 } else if (path == kProxyFtpUrl) { |
341 data = CreateServerHostValue(config.ftp_proxy); | 356 data = CreateServerHostValue(config.ftp_proxy); |
342 } else if (path == kProxySocks) { | 357 } else if (path == kProxySocks) { |
343 data = CreateServerHostValue(config.socks_proxy); | 358 data = CreateServerHostValue(config.socks_proxy); |
344 } else if (path == kProxyHttpPort) { | 359 } else if (path == kProxyHttpPort) { |
345 data = CreateServerPortValue(config.http_proxy); | 360 data = CreateServerPortValue(config.http_proxy); |
346 } else if (path == kProxyHttpsPort) { | 361 } else if (path == kProxyHttpsPort) { |
347 data = CreateServerPortValue(config.https_proxy); | 362 data = CreateServerPortValue(config.https_proxy); |
348 } else if (path == kProxyFtpPort) { | 363 } else if (path == kProxyFtpPort) { |
349 data = CreateServerPortValue(config.ftp_proxy); | 364 data = CreateServerPortValue(config.ftp_proxy); |
(...skipping 22 matching lines...) Expand all Loading... |
372 } else { | 387 } else { |
373 dict->SetBoolean("disabled", false); | 388 dict->SetBoolean("disabled", false); |
374 } | 389 } |
375 *out_value = dict; | 390 *out_value = dict; |
376 return true; | 391 return true; |
377 } | 392 } |
378 | 393 |
379 } // namespace proxy_cros_settings_parser | 394 } // namespace proxy_cros_settings_parser |
380 | 395 |
381 } // namespace chromeos | 396 } // namespace chromeos |
OLD | NEW |