| 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_config_service_impl.h" | 5 #include "chrome/browser/chromeos/proxy_config_service_impl.h" |
| 6 | 6 |
| 7 #include <ostream> | 7 #include <ostream> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/json/json_string_value_serializer.h" | 10 #include "base/json/json_string_value_serializer.h" |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 566 VLOG(1) << "OnNetworkChanged: " | 566 VLOG(1) << "OnNetworkChanged: " |
| 567 << (network->name().empty() ? network->service_path() : | 567 << (network->name().empty() ? network->service_path() : |
| 568 network->name()) | 568 network->name()) |
| 569 << ", use-shared-proxies=" << GetUseSharedProxies(); | 569 << ", use-shared-proxies=" << GetUseSharedProxies(); |
| 570 // We only care about active network. | 570 // We only care about active network. |
| 571 if (network == network_lib->active_network()) | 571 if (network == network_lib->active_network()) |
| 572 OnActiveNetworkChanged(network_lib, network); | 572 OnActiveNetworkChanged(network_lib, network); |
| 573 } | 573 } |
| 574 | 574 |
| 575 // static | 575 // static |
| 576 bool ProxyConfigServiceImpl::ParseProxyConfig(const Network* network, | 576 bool ProxyConfigServiceImpl::ParseProxyConfig( |
| 577 net::ProxyConfig* proxy_config) { | 577 const std::string& proxy_config_string, net::ProxyConfig* proxy_config) { |
| 578 if (!network || !proxy_config) | 578 if (!proxy_config) |
| 579 return false; | 579 return false; |
| 580 JSONStringValueSerializer serializer(network->proxy_config()); | 580 JSONStringValueSerializer serializer(proxy_config_string); |
| 581 scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); | 581 scoped_ptr<Value> value(serializer.Deserialize(NULL, NULL)); |
| 582 if (!value.get() || value->GetType() != Value::TYPE_DICTIONARY) | 582 if (!value.get() || value->GetType() != Value::TYPE_DICTIONARY) |
| 583 return false; | 583 return false; |
| 584 ProxyConfigDictionary proxy_dict(static_cast<DictionaryValue*>(value.get())); | 584 ProxyConfigDictionary proxy_dict(static_cast<DictionaryValue*>(value.get())); |
| 585 return PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, | 585 return PrefProxyConfigTrackerImpl::PrefConfigToNetConfig(proxy_dict, |
| 586 proxy_config); | 586 proxy_config); |
| 587 } | 587 } |
| 588 | 588 |
| 589 // static | 589 // static |
| 590 void ProxyConfigServiceImpl::RegisterPrefs(PrefRegistrySimple* registry) { | 590 void ProxyConfigServiceImpl::RegisterPrefs(PrefRegistrySimple* registry) { |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 749 if (network) { | 749 if (network) { |
| 750 // If we're activating proxy, ignore proxy if necessary; | 750 // If we're activating proxy, ignore proxy if necessary; |
| 751 // otherwise, for ui, get actual proxy to show user. | 751 // otherwise, for ui, get actual proxy to show user. |
| 752 ignore_proxy = activate ? IgnoreProxy(network) : false; | 752 ignore_proxy = activate ? IgnoreProxy(network) : false; |
| 753 // If network is shared but use-shared-proxies is off, use direct mode. | 753 // If network is shared but use-shared-proxies is off, use direct mode. |
| 754 if (ignore_proxy) { | 754 if (ignore_proxy) { |
| 755 VLOG(1) << "Shared network && !use-shared-proxies, use direct"; | 755 VLOG(1) << "Shared network && !use-shared-proxies, use direct"; |
| 756 network_availability = net::ProxyConfigService::CONFIG_VALID; | 756 network_availability = net::ProxyConfigService::CONFIG_VALID; |
| 757 } else if (!network->proxy_config().empty()) { | 757 } else if (!network->proxy_config().empty()) { |
| 758 // Network is private or shared with user using shared proxies. | 758 // Network is private or shared with user using shared proxies. |
| 759 if (ParseProxyConfig(network, &network_config)) { | 759 if (ParseProxyConfig(network->proxy_config(), &network_config)) { |
| 760 VLOG(1) << this << ": using network proxy: " | 760 VLOG(1) << this << ": using network proxy: " |
| 761 << network->proxy_config(); | 761 << network->proxy_config(); |
| 762 network_availability = net::ProxyConfigService::CONFIG_VALID; | 762 network_availability = net::ProxyConfigService::CONFIG_VALID; |
| 763 } | 763 } |
| 764 } | 764 } |
| 765 } | 765 } |
| 766 | 766 |
| 767 // Determine effective proxy config, either from prefs or network. | 767 // Determine effective proxy config, either from prefs or network. |
| 768 ProxyPrefs::ConfigState effective_config_state; | 768 ProxyPrefs::ConfigState effective_config_state; |
| 769 net::ProxyConfig effective_config; | 769 net::ProxyConfig effective_config; |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 873 device_config_.clear(); | 873 device_config_.clear(); |
| 874 return; | 874 return; |
| 875 } | 875 } |
| 876 if (!active_network_.empty()) { | 876 if (!active_network_.empty()) { |
| 877 VLOG(1) << "Try migrating device config to " << active_network_; | 877 VLOG(1) << "Try migrating device config to " << active_network_; |
| 878 SetProxyConfigForNetwork(active_network_, device_config_, true); | 878 SetProxyConfigForNetwork(active_network_, device_config_, true); |
| 879 } | 879 } |
| 880 } | 880 } |
| 881 | 881 |
| 882 } // namespace chromeos | 882 } // namespace chromeos |
| OLD | NEW |