| Index: chrome/browser/chromeos/proxy_cros_settings_provider.cc
|
| diff --git a/chrome/browser/chromeos/proxy_cros_settings_provider.cc b/chrome/browser/chromeos/proxy_cros_settings_provider.cc
|
| deleted file mode 100644
|
| index df41816006e096d5b76ce58d19ad58417bf3f81b..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/proxy_cros_settings_provider.cc
|
| +++ /dev/null
|
| @@ -1,393 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// 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 "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";
|
| -
|
| -static const char* const kProxySettings[] = {
|
| - kProxyPacUrl,
|
| - kProxySingleHttp,
|
| - kProxySingleHttpPort,
|
| - kProxyHttpUrl,
|
| - kProxyHttpPort,
|
| - kProxyHttpsUrl,
|
| - kProxyHttpsPort,
|
| - kProxyType,
|
| - kProxySingle,
|
| - kProxyFtpUrl,
|
| - kProxyFtpPort,
|
| - kProxySocks,
|
| - kProxySocksPort,
|
| - kProxyIgnoreList,
|
| -};
|
| -
|
| -//------------------ ProxyCrosSettingsProvider: public methods -----------------
|
| -
|
| -ProxyCrosSettingsProvider::ProxyCrosSettingsProvider(Profile* profile)
|
| - : profile_(profile) {
|
| -}
|
| -
|
| -void ProxyCrosSettingsProvider::SetCurrentNetwork(const std::string& network) {
|
| - GetConfigService()->UISetCurrentNetwork(network);
|
| - for (size_t i = 0; i < arraysize(kProxySettings); ++i)
|
| - CrosSettings::Get()->FireObservers(kProxySettings[i]);
|
| -}
|
| -
|
| -void ProxyCrosSettingsProvider::MakeActiveNetworkCurrent() {
|
| - GetConfigService()->UIMakeActiveNetworkCurrent();
|
| - for (size_t i = 0; i < arraysize(kProxySettings); ++i)
|
| - CrosSettings::Get()->FireObservers(kProxySettings[i]);
|
| -}
|
| -
|
| -void ProxyCrosSettingsProvider::DoSet(const std::string& path,
|
| - Value* in_value) {
|
| - if (!in_value) {
|
| - return;
|
| - }
|
| -
|
| - chromeos::ProxyConfigServiceImpl* config_service = GetConfigService();
|
| - // Retrieve proxy config.
|
| - chromeos::ProxyConfigServiceImpl::ProxyConfig config;
|
| - config_service->UIGetProxyConfig(&config);
|
| -
|
| - if (path == kProxyPacUrl) {
|
| - std::string val;
|
| - if (in_value->GetAsString(&val)) {
|
| - GURL url(val);
|
| - if (url.is_valid())
|
| - config_service->UISetProxyConfigToPACScript(url);
|
| - else
|
| - config_service->UISetProxyConfigToAutoDetect();
|
| - }
|
| - } else if (path == kProxySingleHttp) {
|
| - std::string val;
|
| - if (in_value->GetAsString(&val)) {
|
| - config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromHost(
|
| - val, config.single_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxySingleHttpPort) {
|
| - int val;
|
| - if (in_value->GetAsInteger(&val)) {
|
| - config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromPort(
|
| - val, config.single_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxyHttpUrl) {
|
| - std::string val;
|
| - if (in_value->GetAsString(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("http",
|
| - CreateProxyServerFromHost(
|
| - val, config.http_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxyHttpPort) {
|
| - int val;
|
| - if (in_value->GetAsInteger(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("http",
|
| - CreateProxyServerFromPort(
|
| - val, config.http_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxyHttpsUrl) {
|
| - std::string val;
|
| - if (in_value->GetAsString(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("https",
|
| - CreateProxyServerFromHost(
|
| - val, config.https_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxyHttpsPort) {
|
| - int val;
|
| - if (in_value->GetAsInteger(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("https",
|
| - CreateProxyServerFromPort(
|
| - val, config.https_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxyType) {
|
| - int val;
|
| - if (in_value->GetAsInteger(&val)) {
|
| - if (val == 3) {
|
| - if (config.automatic_proxy.pac_url.is_valid())
|
| - config_service->UISetProxyConfigToPACScript(
|
| - config.automatic_proxy.pac_url);
|
| - else
|
| - config_service->UISetProxyConfigToAutoDetect();
|
| - } else if (val == 2) {
|
| - if (config.single_proxy.server.is_valid()) {
|
| - config_service->UISetProxyConfigToSingleProxy(
|
| - config.single_proxy.server);
|
| - } else {
|
| - bool set_config = false;
|
| - if (config.http_proxy.server.is_valid()) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("http",
|
| - config.http_proxy.server);
|
| - set_config = true;
|
| - }
|
| - if (config.https_proxy.server.is_valid()) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("https",
|
| - config.https_proxy.server);
|
| - set_config = true;
|
| - }
|
| - if (config.ftp_proxy.server.is_valid()) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("ftp",
|
| - config.ftp_proxy.server);
|
| - set_config = true;
|
| - }
|
| - if (config.socks_proxy.server.is_valid()) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("socks",
|
| - config.socks_proxy.server);
|
| - set_config = true;
|
| - }
|
| - if (!set_config) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("http",
|
| - net::ProxyServer());
|
| - }
|
| - }
|
| - } else {
|
| - config_service->UISetProxyConfigToDirect();
|
| - }
|
| - }
|
| - } else if (path == kProxySingle) {
|
| - bool val;
|
| - if (in_value->GetAsBoolean(&val)) {
|
| - if (val)
|
| - config_service->UISetProxyConfigToSingleProxy(
|
| - config.single_proxy.server);
|
| - else
|
| - config_service->UISetProxyConfigToProxyPerScheme("http",
|
| - config.http_proxy.server);
|
| - }
|
| - } else if (path == kProxyFtpUrl) {
|
| - std::string val;
|
| - if (in_value->GetAsString(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("ftp",
|
| - CreateProxyServerFromHost(
|
| - val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxyFtpPort) {
|
| - int val;
|
| - if (in_value->GetAsInteger(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("ftp",
|
| - CreateProxyServerFromPort(
|
| - val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP));
|
| - }
|
| - } else if (path == kProxySocks) {
|
| - std::string val;
|
| - if (in_value->GetAsString(&val)) {
|
| - config_service->UISetProxyConfigToProxyPerScheme("socks",
|
| - CreateProxyServerFromHost(val, config.socks_proxy,
|
| - StartsWithASCII(val, "socks5://", false) ?
|
| - net::ProxyServer::SCHEME_SOCKS5 :
|
| - net::ProxyServer::SCHEME_SOCKS4));
|
| - }
|
| - } else if (path == kProxySocksPort) {
|
| - int val;
|
| - if (in_value->GetAsInteger(&val)) {
|
| - std::string host = config.socks_proxy.server.host_port_pair().host();
|
| - config_service->UISetProxyConfigToProxyPerScheme("socks",
|
| - CreateProxyServerFromPort(val, config.socks_proxy,
|
| - StartsWithASCII(host, "socks5://", false) ?
|
| - net::ProxyServer::SCHEME_SOCKS5 :
|
| - net::ProxyServer::SCHEME_SOCKS4));
|
| - }
|
| - } else if (path == kProxyIgnoreList) {
|
| - net::ProxyBypassRules bypass_rules;
|
| - if (in_value->GetType() == 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;
|
| - if (list_value->GetString(x, &val)) {
|
| - bypass_rules.AddRuleFromString(val);
|
| - }
|
| - }
|
| - config_service->UISetProxyConfigBypassRules(bypass_rules);
|
| - }
|
| - }
|
| -}
|
| -
|
| -bool ProxyCrosSettingsProvider::Get(const std::string& path,
|
| - Value** out_value) const {
|
| - bool found = false;
|
| - bool managed = false;
|
| - std::string controlled_by;
|
| - Value* data = NULL;
|
| - chromeos::ProxyConfigServiceImpl* config_service = GetConfigService();
|
| - chromeos::ProxyConfigServiceImpl::ProxyConfig config;
|
| - config_service->UIGetProxyConfig(&config);
|
| -
|
| - if (path == kProxyPacUrl) {
|
| - // Only show pacurl for pac-script mode.
|
| - 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());
|
| - }
|
| - found = true;
|
| - } else if (path == kProxySingleHttp) {
|
| - data = CreateServerHostValue(config.single_proxy);
|
| - found = true;
|
| - } else if (path == kProxySingleHttpPort) {
|
| - data = CreateServerPortValue(config.single_proxy);
|
| - found = true;
|
| - } else if (path == kProxyHttpUrl) {
|
| - data = CreateServerHostValue(config.http_proxy);
|
| - found = true;
|
| - } else if (path == kProxyHttpsUrl) {
|
| - data = CreateServerHostValue(config.https_proxy);
|
| - found = true;
|
| - } else if (path == kProxyType) {
|
| - if (config.mode ==
|
| - chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_AUTO_DETECT ||
|
| - config.mode ==
|
| - chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT) {
|
| - data = 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);
|
| - } else {
|
| - data = Value::CreateIntegerValue(1);
|
| - }
|
| - switch (config.state) {
|
| - case ProxyPrefs::CONFIG_POLICY:
|
| - controlled_by = "policyManagedPrefsBannerText";
|
| - break;
|
| - case ProxyPrefs::CONFIG_EXTENSION:
|
| - controlled_by = "extensionManagedPrefsBannerText";
|
| - break;
|
| - case ProxyPrefs::CONFIG_OTHER_PRECEDE:
|
| - controlled_by = "unmodifiablePrefsBannerText";
|
| - break;
|
| - default:
|
| - if (!config.user_modifiable)
|
| - controlled_by = "enableSharedProxiesBannerText";
|
| - break;
|
| - }
|
| - found = true;
|
| - } else if (path == kProxySingle) {
|
| - data = Value::CreateBooleanValue(config.mode ==
|
| - chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY);
|
| - found = true;
|
| - } else if (path == kProxyFtpUrl) {
|
| - data = CreateServerHostValue(config.ftp_proxy);
|
| - found = true;
|
| - } else if (path == kProxySocks) {
|
| - data = CreateServerHostValue(config.socks_proxy);
|
| - found = true;
|
| - } else if (path == kProxyHttpPort) {
|
| - data = CreateServerPortValue(config.http_proxy);
|
| - found = true;
|
| - } else if (path == kProxyHttpsPort) {
|
| - data = CreateServerPortValue(config.https_proxy);
|
| - found = true;
|
| - } else if (path == kProxyFtpPort) {
|
| - data = CreateServerPortValue(config.ftp_proxy);
|
| - found = true;
|
| - } else if (path == kProxySocksPort) {
|
| - data = CreateServerPortValue(config.socks_proxy);
|
| - found = true;
|
| - } else if (path == kProxyIgnoreList) {
|
| - 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()));
|
| - }
|
| - *out_value = list;
|
| - return true;
|
| - }
|
| - if (found) {
|
| - DictionaryValue* dict = new DictionaryValue;
|
| - if (!data)
|
| - data = Value::CreateStringValue("");
|
| - dict->Set("value", data);
|
| - dict->SetBoolean("managed", managed);
|
| - if (path == kProxyType) {
|
| - dict->SetString("controlledBy", controlled_by);
|
| - dict->SetBoolean("disabled", !config.user_modifiable);
|
| - }
|
| - *out_value = dict;
|
| - return true;
|
| - } else {
|
| - *out_value = NULL;
|
| - return false;
|
| - }
|
| -}
|
| -
|
| -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();
|
| - return CreateProxyServer(host, port, scheme);
|
| -}
|
| -
|
| -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();
|
| - return CreateProxyServer(host, port, scheme);
|
| -}
|
| -
|
| -net::ProxyServer ProxyCrosSettingsProvider::CreateProxyServer(
|
| - std::string host,
|
| - uint16 port,
|
| - net::ProxyServer::Scheme scheme) const {
|
| - 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);
|
| -}
|
| -
|
| -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
|
|
|