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 val; | |
239 if (in_value->GetAsBoolean(&val)) { | |
240 if (val) { | |
Dan Beam
2013/03/29 22:23:34
if (val && config.automatic_proxy.pac_url.is_valid
| |
241 if (config.automatic_proxy.pac_url.is_valid()) | |
Dan Beam
2013/03/29 22:23:34
nit: please use {curlies} in this if/else (even th
| |
242 config_service->UISetProxyConfigToPACScript( | |
243 config.automatic_proxy.pac_url); | |
244 else | |
Dan Beam
2013/03/29 22:23:34
nit: indent off
| |
245 config_service->UISetProxyConfigToAutoDetect(); | |
246 } else { | |
247 config_service->UISetProxyConfigToAutoDetect(); | |
248 } | |
249 } | |
235 } else if (path == kProxyFtpUrl) { | 250 } else if (path == kProxyFtpUrl) { |
236 std::string val; | 251 std::string val; |
237 if (in_value->GetAsString(&val)) { | 252 if (in_value->GetAsString(&val)) { |
238 config_service->UISetProxyConfigToProxyPerScheme("ftp", | 253 config_service->UISetProxyConfigToProxyPerScheme("ftp", |
239 CreateProxyServerFromHost( | 254 CreateProxyServerFromHost( |
240 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); | 255 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); |
241 } | 256 } |
242 } else if (path == kProxyFtpPort) { | 257 } else if (path == kProxyFtpPort) { |
243 int val; | 258 int val; |
244 if (in_value->GetAsInteger(&val)) { | 259 if (in_value->GetAsInteger(&val)) { |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
330 controlled_by = "other"; | 345 controlled_by = "other"; |
331 break; | 346 break; |
332 default: | 347 default: |
333 if (!config.user_modifiable) | 348 if (!config.user_modifiable) |
334 controlled_by = "shared"; | 349 controlled_by = "shared"; |
335 break; | 350 break; |
336 } | 351 } |
337 } else if (path == kProxySingle) { | 352 } else if (path == kProxySingle) { |
338 data = base::Value::CreateBooleanValue(config.mode == | 353 data = base::Value::CreateBooleanValue(config.mode == |
339 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY); | 354 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY); |
355 } else if (path == kProxyUsePacUrl) { | |
356 data = base::Value::CreateBooleanValue(config.mode == | |
357 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT); | |
340 } else if (path == kProxyFtpUrl) { | 358 } else if (path == kProxyFtpUrl) { |
341 data = CreateServerHostValue(config.ftp_proxy); | 359 data = CreateServerHostValue(config.ftp_proxy); |
342 } else if (path == kProxySocks) { | 360 } else if (path == kProxySocks) { |
343 data = CreateServerHostValue(config.socks_proxy); | 361 data = CreateServerHostValue(config.socks_proxy); |
344 } else if (path == kProxyHttpPort) { | 362 } else if (path == kProxyHttpPort) { |
345 data = CreateServerPortValue(config.http_proxy); | 363 data = CreateServerPortValue(config.http_proxy); |
346 } else if (path == kProxyHttpsPort) { | 364 } else if (path == kProxyHttpsPort) { |
347 data = CreateServerPortValue(config.https_proxy); | 365 data = CreateServerPortValue(config.https_proxy); |
348 } else if (path == kProxyFtpPort) { | 366 } else if (path == kProxyFtpPort) { |
349 data = CreateServerPortValue(config.ftp_proxy); | 367 data = CreateServerPortValue(config.ftp_proxy); |
350 } else if (path == kProxySocksPort) { | 368 } else if (path == kProxySocksPort) { |
351 data = CreateServerPortValue(config.socks_proxy); | 369 data = CreateServerPortValue(config.socks_proxy); |
352 } else if (path == kProxyIgnoreList) { | 370 } else if (path == kProxyIgnoreList) { |
353 ListValue* list = new ListValue(); | 371 ListValue* list = new ListValue(); |
354 net::ProxyBypassRules::RuleList bypass_rules = config.bypass_rules.rules(); | 372 net::ProxyBypassRules::RuleList bypass_rules = config.bypass_rules.rules(); |
355 for (size_t x = 0; x < bypass_rules.size(); x++) { | 373 for (size_t x = 0; x < bypass_rules.size(); x++) { |
356 list->Append(new base::StringValue(bypass_rules[x]->ToString())); | 374 list->Append(new base::StringValue(bypass_rules[x]->ToString())); |
357 } | 375 } |
358 data = list; | 376 data = list; |
359 } else { | 377 } else { |
360 *out_value = NULL; | 378 *out_value = NULL; |
361 return false; | 379 return false; |
362 } | 380 } |
363 | 381 |
364 // Decorate pref value as CoreOptionsHandler::CreateValueForPref() does. | 382 // Decorate pref value as CoreOptionsHandler::CreateValueForPref() does. |
383 | |
Dan Beam
2013/03/29 22:23:34
nit: please remove this \n
| |
365 DictionaryValue* dict = new DictionaryValue; | 384 DictionaryValue* dict = new DictionaryValue; |
366 if (!data) | 385 if (!data) |
367 data = new base::StringValue(""); | 386 data = new base::StringValue(""); |
368 dict->Set("value", data); | 387 dict->Set("value", data); |
369 if (path == kProxyType) { | 388 if (path == kProxyType) { |
370 dict->SetString("controlledBy", controlled_by); | 389 dict->SetString("controlledBy", controlled_by); |
371 dict->SetBoolean("disabled", !config.user_modifiable); | 390 dict->SetBoolean("disabled", !config.user_modifiable); |
372 } else { | 391 } else { |
373 dict->SetBoolean("disabled", false); | 392 dict->SetBoolean("disabled", false); |
374 } | 393 } |
375 *out_value = dict; | 394 *out_value = dict; |
376 return true; | 395 return true; |
377 } | 396 } |
378 | 397 |
379 } // namespace proxy_cros_settings_parser | 398 } // namespace proxy_cros_settings_parser |
380 | 399 |
381 } // namespace chromeos | 400 } // namespace chromeos |
OLD | NEW |