Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: chrome/browser/chromeos/ui_proxy_config.cc

Issue 16398005: Extract common per-network proxy configuration functions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nit. Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/ui_proxy_config.h" 5 #include "chrome/browser/chromeos/ui_proxy_config.h"
6 6
7 #include "base/json/json_writer.h"
8 #include "base/logging.h" 7 #include "base/logging.h"
9 #include "base/values.h" 8 #include "base/values.h"
10 #include "chrome/browser/policy/proto/chromeos/chrome_device_policy.pb.h" 9 #include "chrome/browser/policy/proto/chromeos/chrome_device_policy.pb.h"
11 #include "chrome/browser/prefs/proxy_config_dictionary.h" 10 #include "chrome/browser/prefs/proxy_config_dictionary.h"
12 #include "net/proxy/proxy_config.h" 11 #include "net/proxy/proxy_config.h"
13 12
14 namespace chromeos { 13 namespace chromeos {
15 14
16 UIProxyConfig::UIProxyConfig() 15 UIProxyConfig::UIProxyConfig()
17 : mode(MODE_DIRECT), 16 : mode(MODE_DIRECT),
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 socks_proxy.server = rules.fallback_proxies.Get(); 93 socks_proxy.server = rules.fallback_proxies.Get();
95 bypass_rules = rules.bypass_rules; 94 bypass_rules = rules.bypass_rules;
96 return true; 95 return true;
97 default: 96 default:
98 NOTREACHED() << "Unrecognized proxy config mode"; 97 NOTREACHED() << "Unrecognized proxy config mode";
99 break; 98 break;
100 } 99 }
101 return false; 100 return false;
102 } 101 }
103 102
104 base::DictionaryValue* UIProxyConfig::ToPrefProxyConfig() { 103 base::DictionaryValue* UIProxyConfig::ToPrefProxyConfig() const {
105 switch (mode) { 104 switch (mode) {
106 case MODE_DIRECT: { 105 case MODE_DIRECT: {
107 return ProxyConfigDictionary::CreateDirect(); 106 return ProxyConfigDictionary::CreateDirect();
108 } 107 }
109 case MODE_AUTO_DETECT: { 108 case MODE_AUTO_DETECT: {
110 return ProxyConfigDictionary::CreateAutoDetect(); 109 return ProxyConfigDictionary::CreateAutoDetect();
111 } 110 }
112 case MODE_PAC_SCRIPT: { 111 case MODE_PAC_SCRIPT: {
113 return ProxyConfigDictionary::CreatePacScript( 112 return ProxyConfigDictionary::CreatePacScript(
114 automatic_proxy.pac_url.spec(), false); 113 automatic_proxy.pac_url.spec(), false);
(...skipping 28 matching lines...) Expand all
143 if (scheme == "https") 142 if (scheme == "https")
144 return &https_proxy; 143 return &https_proxy;
145 if (scheme == "ftp") 144 if (scheme == "ftp")
146 return &ftp_proxy; 145 return &ftp_proxy;
147 if (scheme == "socks") 146 if (scheme == "socks")
148 return &socks_proxy; 147 return &socks_proxy;
149 NOTREACHED() << "Invalid scheme: " << scheme; 148 NOTREACHED() << "Invalid scheme: " << scheme;
150 return NULL; 149 return NULL;
151 } 150 }
152 151
153 bool UIProxyConfig::SerializeForNetwork(std::string* output) {
154 scoped_ptr<base::DictionaryValue> proxy_dict_ptr(ToPrefProxyConfig());
155 if (!proxy_dict_ptr.get())
156 return false;
157
158 // Return empty string for direct mode for portal check to work correctly.
159 base::DictionaryValue *dict = proxy_dict_ptr.get();
160 ProxyConfigDictionary proxy_dict(dict);
161 ProxyPrefs::ProxyMode mode;
162 if (proxy_dict.GetMode(&mode)) {
163 if (mode == ProxyPrefs::MODE_DIRECT) {
164 output->clear();
165 return true;
166 }
167 }
168 base::JSONWriter::Write(dict, output);
169 return true;
170 }
171
172 // static 152 // static
173 void UIProxyConfig::EncodeAndAppendProxyServer(const std::string& url_scheme, 153 void UIProxyConfig::EncodeAndAppendProxyServer(const std::string& url_scheme,
174 const net::ProxyServer& server, 154 const net::ProxyServer& server,
175 std::string* spec) { 155 std::string* spec) {
176 if (!server.is_valid()) 156 if (!server.is_valid())
177 return; 157 return;
178 158
179 if (!spec->empty()) 159 if (!spec->empty())
180 *spec += ';'; 160 *spec += ';';
181 161
182 if (!url_scheme.empty()) { 162 if (!url_scheme.empty()) {
183 *spec += url_scheme; 163 *spec += url_scheme;
184 *spec += "="; 164 *spec += "=";
185 } 165 }
186 *spec += server.ToURI(); 166 *spec += server.ToURI();
187 } 167 }
188 168
189 } // namespace chromeos 169 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/ui_proxy_config.h ('k') | chrome/browser/chromeos/ui_proxy_config_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698