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

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

Issue 14846004: Migrate ProxyConfigServiceImpl to NetworkStateHandler and NetworkProfileHandler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renamed ConfigStateToString. Created 7 years, 7 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 (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/chromeos/ui_proxy_config.h"
11 #include "chrome/browser/chromeos/ui_proxy_config_service.h"
10 #include "chrome/browser/profiles/profile.h" 12 #include "chrome/browser/profiles/profile.h"
11 13
12 namespace chromeos { 14 namespace chromeos {
13 15
14 // Common prefix of all proxy prefs. 16 // Common prefix of all proxy prefs.
15 const char kProxyPrefsPrefix[] = "cros.session.proxy"; 17 const char kProxyPrefsPrefix[] = "cros.session.proxy";
16 18
17 // Names of proxy preferences. 19 // Names of proxy preferences.
18 const char kProxyPacUrl[] = "cros.session.proxy.pacurl"; 20 const char kProxyPacUrl[] = "cros.session.proxy.pacurl";
19 const char kProxySingleHttp[] = "cros.session.proxy.singlehttp"; 21 const char kProxySingleHttp[] = "cros.session.proxy.singlehttp";
(...skipping 28 matching lines...) Expand all
48 kProxyIgnoreList, 50 kProxyIgnoreList,
49 kProxyUsePacUrl, 51 kProxyUsePacUrl,
50 }; 52 };
51 53
52 // We have to explicitly export this because the arraysize macro doesn't like 54 // We have to explicitly export this because the arraysize macro doesn't like
53 // extern arrays as their size is not known on compile time. 55 // extern arrays as their size is not known on compile time.
54 const size_t kProxySettingsCount = arraysize(kProxySettings); 56 const size_t kProxySettingsCount = arraysize(kProxySettings);
55 57
56 namespace { 58 namespace {
57 59
58 base::Value* CreateServerHostValue( 60 base::Value* CreateServerHostValue(const UIProxyConfig::ManualProxy& proxy) {
59 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) {
60 return proxy.server.is_valid() ? 61 return proxy.server.is_valid() ?
61 new base::StringValue(proxy.server.host_port_pair().host()) : 62 new base::StringValue(proxy.server.host_port_pair().host()) :
62 NULL; 63 NULL;
63 } 64 }
64 65
65 base::Value* CreateServerPortValue( 66 base::Value* CreateServerPortValue(const UIProxyConfig::ManualProxy& proxy) {
66 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy) {
67 return proxy.server.is_valid() ? 67 return proxy.server.is_valid() ?
68 base::Value::CreateIntegerValue(proxy.server.host_port_pair().port()) : 68 base::Value::CreateIntegerValue(proxy.server.host_port_pair().port()) :
69 NULL; 69 NULL;
70 } 70 }
71 71
72 net::ProxyServer CreateProxyServer(std::string host, 72 net::ProxyServer CreateProxyServer(std::string host,
73 uint16 port, 73 uint16 port,
74 net::ProxyServer::Scheme scheme) { 74 net::ProxyServer::Scheme scheme) {
75 if (host.empty() && port == 0) 75 if (host.empty() && port == 0)
76 return net::ProxyServer(); 76 return net::ProxyServer();
77 uint16 default_port = net::ProxyServer::GetDefaultPortForScheme(scheme); 77 uint16 default_port = net::ProxyServer::GetDefaultPortForScheme(scheme);
78 net::HostPortPair host_port_pair; 78 net::HostPortPair host_port_pair;
79 // Check if host is a valid URL or a string of valid format <server>::<port>. 79 // Check if host is a valid URL or a string of valid format <server>::<port>.
80 GURL url(host); 80 GURL url(host);
81 if (url.is_valid()) // See if host is URL. 81 if (url.is_valid()) // See if host is URL.
82 host_port_pair = net::HostPortPair::FromURL(url); 82 host_port_pair = net::HostPortPair::FromURL(url);
83 if (host_port_pair.host().empty()) // See if host is <server>::<port>. 83 if (host_port_pair.host().empty()) // See if host is <server>::<port>.
84 host_port_pair = net::HostPortPair::FromString(host); 84 host_port_pair = net::HostPortPair::FromString(host);
85 if (host_port_pair.host().empty()) // Host is not URL or <server>::<port>. 85 if (host_port_pair.host().empty()) // Host is not URL or <server>::<port>.
86 host_port_pair = net::HostPortPair(host, port); 86 host_port_pair = net::HostPortPair(host, port);
87 if (host_port_pair.port() == 0) // No port in host, use default. 87 if (host_port_pair.port() == 0) // No port in host, use default.
88 host_port_pair.set_port(default_port); 88 host_port_pair.set_port(default_port);
89 return net::ProxyServer(scheme, host_port_pair); 89 return net::ProxyServer(scheme, host_port_pair);
90 } 90 }
91 91
92 net::ProxyServer CreateProxyServerFromHost( 92 net::ProxyServer CreateProxyServerFromHost(
93 const std::string& host, 93 const std::string& host,
94 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy, 94 const UIProxyConfig::ManualProxy& proxy,
95 net::ProxyServer::Scheme scheme) { 95 net::ProxyServer::Scheme scheme) {
96 uint16 port = 0; 96 uint16 port = 0;
97 if (proxy.server.is_valid()) 97 if (proxy.server.is_valid())
98 port = proxy.server.host_port_pair().port(); 98 port = proxy.server.host_port_pair().port();
99 return CreateProxyServer(host, port, scheme); 99 return CreateProxyServer(host, port, scheme);
100 } 100 }
101 101
102 net::ProxyServer CreateProxyServerFromPort( 102 net::ProxyServer CreateProxyServerFromPort(
103 uint16 port, 103 uint16 port,
104 const ProxyConfigServiceImpl::ProxyConfig::ManualProxy& proxy, 104 const UIProxyConfig::ManualProxy& proxy,
105 net::ProxyServer::Scheme scheme) { 105 net::ProxyServer::Scheme scheme) {
106 std::string host; 106 std::string host;
107 if (proxy.server.is_valid()) 107 if (proxy.server.is_valid())
108 host = proxy.server.host_port_pair().host(); 108 host = proxy.server.host_port_pair().host();
109 return CreateProxyServer(host, port, scheme); 109 return CreateProxyServer(host, port, scheme);
110 } 110 }
111 111
112 } // namespace 112 } // namespace
113 113
114 namespace proxy_cros_settings_parser { 114 namespace proxy_cros_settings_parser {
115 115
116 bool IsProxyPref(const std::string& path) { 116 bool IsProxyPref(const std::string& path) {
117 return StartsWithASCII(path, kProxyPrefsPrefix, true); 117 return StartsWithASCII(path, kProxyPrefsPrefix, true);
118 } 118 }
119 119
120 void SetProxyPrefValue(Profile* profile, 120 void SetProxyPrefValue(Profile* profile,
121 const std::string& path, 121 const std::string& path,
122 const base::Value* in_value) { 122 const base::Value* in_value) {
123 if (!in_value) { 123 if (!in_value) {
124 NOTREACHED(); 124 NOTREACHED();
125 return; 125 return;
126 } 126 }
127 127
128 chromeos::ProxyConfigServiceImpl* config_service = 128 UIProxyConfigService* config_service =
129 profile->GetProxyConfigTracker(); 129 &profile->GetProxyConfigTracker()->GetUIService();
130 // Retrieve proxy config. 130 // Retrieve proxy config.
131 chromeos::ProxyConfigServiceImpl::ProxyConfig config; 131 UIProxyConfig config;
132 config_service->UIGetProxyConfig(&config); 132 config_service->GetProxyConfig(&config);
133 133
134 if (path == kProxyPacUrl) { 134 if (path == kProxyPacUrl) {
135 std::string val; 135 std::string val;
136 if (in_value->GetAsString(&val)) { 136 if (in_value->GetAsString(&val)) {
137 GURL url(val); 137 GURL url(val);
138 if (url.is_valid()) 138 if (url.is_valid())
139 config_service->UISetProxyConfigToPACScript(url); 139 config.SetPacUrl(url);
140 else 140 else
141 config_service->UISetProxyConfigToAutoDetect(); 141 config.mode = UIProxyConfig::MODE_AUTO_DETECT;
142 } 142 }
143 } else if (path == kProxySingleHttp) { 143 } else if (path == kProxySingleHttp) {
144 std::string val; 144 std::string val;
145 if (in_value->GetAsString(&val)) { 145 if (in_value->GetAsString(&val)) {
146 config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromHost( 146 config.SetSingleProxy(CreateProxyServerFromHost(
147 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP)); 147 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP));
148 } 148 }
149 } else if (path == kProxySingleHttpPort) { 149 } else if (path == kProxySingleHttpPort) {
150 int val; 150 int val;
151 if (in_value->GetAsInteger(&val)) { 151 if (in_value->GetAsInteger(&val)) {
152 config_service->UISetProxyConfigToSingleProxy(CreateProxyServerFromPort( 152 config.SetSingleProxy(CreateProxyServerFromPort(
153 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP)); 153 val, config.single_proxy, net::ProxyServer::SCHEME_HTTP));
154 } 154 }
155 } else if (path == kProxyHttpUrl) { 155 } else if (path == kProxyHttpUrl) {
156 std::string val; 156 std::string val;
157 if (in_value->GetAsString(&val)) { 157 if (in_value->GetAsString(&val)) {
158 config_service->UISetProxyConfigToProxyPerScheme("http", 158 config.SetProxyForScheme(
159 CreateProxyServerFromHost( 159 "http", CreateProxyServerFromHost(
160 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP)); 160 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP));
161 } 161 }
162 } else if (path == kProxyHttpPort) { 162 } else if (path == kProxyHttpPort) {
163 int val; 163 int val;
164 if (in_value->GetAsInteger(&val)) { 164 if (in_value->GetAsInteger(&val)) {
165 config_service->UISetProxyConfigToProxyPerScheme("http", 165 config.SetProxyForScheme(
166 CreateProxyServerFromPort( 166 "http", CreateProxyServerFromPort(
167 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP)); 167 val, config.http_proxy, net::ProxyServer::SCHEME_HTTP));
168 } 168 }
169 } else if (path == kProxyHttpsUrl) { 169 } else if (path == kProxyHttpsUrl) {
170 std::string val; 170 std::string val;
171 if (in_value->GetAsString(&val)) { 171 if (in_value->GetAsString(&val)) {
172 config_service->UISetProxyConfigToProxyPerScheme("https", 172 config.SetProxyForScheme(
173 CreateProxyServerFromHost( 173 "https", CreateProxyServerFromHost(
174 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP)); 174 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP));
175 } 175 }
176 } else if (path == kProxyHttpsPort) { 176 } else if (path == kProxyHttpsPort) {
177 int val; 177 int val;
178 if (in_value->GetAsInteger(&val)) { 178 if (in_value->GetAsInteger(&val)) {
179 config_service->UISetProxyConfigToProxyPerScheme("https", 179 config.SetProxyForScheme(
180 CreateProxyServerFromPort( 180 "https", CreateProxyServerFromPort(
181 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP)); 181 val, config.https_proxy, net::ProxyServer::SCHEME_HTTP));
182 } 182 }
183 } else if (path == kProxyType) { 183 } else if (path == kProxyType) {
184 int val; 184 int val;
185 if (in_value->GetAsInteger(&val)) { 185 if (in_value->GetAsInteger(&val)) {
186 if (val == 3) { 186 if (val == 3) {
187 if (config.automatic_proxy.pac_url.is_valid()) 187 if (config.automatic_proxy.pac_url.is_valid())
188 config_service->UISetProxyConfigToPACScript( 188 config.SetPacUrl(config.automatic_proxy.pac_url);
189 config.automatic_proxy.pac_url);
190 else 189 else
191 config_service->UISetProxyConfigToAutoDetect(); 190 config.mode = UIProxyConfig::MODE_AUTO_DETECT;
192 } else if (val == 2) { 191 } else if (val == 2) {
193 if (config.single_proxy.server.is_valid()) { 192 if (config.single_proxy.server.is_valid()) {
194 config_service->UISetProxyConfigToSingleProxy( 193 config.SetSingleProxy(config.single_proxy.server);
195 config.single_proxy.server);
196 } else { 194 } else {
197 bool set_config = false; 195 bool set_config = false;
198 if (config.http_proxy.server.is_valid()) { 196 if (config.http_proxy.server.is_valid()) {
199 config_service->UISetProxyConfigToProxyPerScheme("http", 197 config.SetProxyForScheme("http", config.http_proxy.server);
200 config.http_proxy.server);
201 set_config = true; 198 set_config = true;
202 } 199 }
203 if (config.https_proxy.server.is_valid()) { 200 if (config.https_proxy.server.is_valid()) {
204 config_service->UISetProxyConfigToProxyPerScheme("https", 201 config.SetProxyForScheme("https", config.https_proxy.server);
205 config.https_proxy.server);
206 set_config = true; 202 set_config = true;
207 } 203 }
208 if (config.ftp_proxy.server.is_valid()) { 204 if (config.ftp_proxy.server.is_valid()) {
209 config_service->UISetProxyConfigToProxyPerScheme("ftp", 205 config.SetProxyForScheme("ftp", config.ftp_proxy.server);
210 config.ftp_proxy.server);
211 set_config = true; 206 set_config = true;
212 } 207 }
213 if (config.socks_proxy.server.is_valid()) { 208 if (config.socks_proxy.server.is_valid()) {
214 config_service->UISetProxyConfigToProxyPerScheme("socks", 209 config.SetProxyForScheme("socks", config.socks_proxy.server);
215 config.socks_proxy.server);
216 set_config = true; 210 set_config = true;
217 } 211 }
218 if (!set_config) { 212 if (!set_config)
219 config_service->UISetProxyConfigToProxyPerScheme("http", 213 config.SetProxyForScheme("http", net::ProxyServer());
220 net::ProxyServer());
221 }
222 } 214 }
223 } else { 215 } else {
224 config_service->UISetProxyConfigToDirect(); 216 config.mode = UIProxyConfig::MODE_DIRECT;
225 } 217 }
226 } 218 }
227 } else if (path == kProxySingle) { 219 } else if (path == kProxySingle) {
228 bool val; 220 bool val;
229 if (in_value->GetAsBoolean(&val)) { 221 if (in_value->GetAsBoolean(&val)) {
230 if (val) 222 if (val)
231 config_service->UISetProxyConfigToSingleProxy( 223 config.SetSingleProxy(config.single_proxy.server);
232 config.single_proxy.server);
233 else 224 else
234 config_service->UISetProxyConfigToProxyPerScheme("http", 225 config.SetProxyForScheme("http", config.http_proxy.server);
235 config.http_proxy.server);
236 } 226 }
237 } else if (path == kProxyUsePacUrl) { 227 } else if (path == kProxyUsePacUrl) {
238 bool use_pac_url; 228 bool use_pac_url;
239 if (in_value->GetAsBoolean(&use_pac_url)) { 229 if (in_value->GetAsBoolean(&use_pac_url)) {
240 if (use_pac_url && config.automatic_proxy.pac_url.is_valid()) { 230 if (use_pac_url && config.automatic_proxy.pac_url.is_valid())
241 config_service->UISetProxyConfigToPACScript( 231 config.SetPacUrl(config.automatic_proxy.pac_url);
242 config.automatic_proxy.pac_url); 232 else
243 } else { 233 config.mode = UIProxyConfig::MODE_AUTO_DETECT;
244 config_service->UISetProxyConfigToAutoDetect();
245 }
246 } 234 }
247 } else if (path == kProxyFtpUrl) { 235 } else if (path == kProxyFtpUrl) {
248 std::string val; 236 std::string val;
249 if (in_value->GetAsString(&val)) { 237 if (in_value->GetAsString(&val)) {
250 config_service->UISetProxyConfigToProxyPerScheme("ftp", 238 config.SetProxyForScheme(
251 CreateProxyServerFromHost( 239 "ftp", CreateProxyServerFromHost(
252 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); 240 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP));
253 } 241 }
254 } else if (path == kProxyFtpPort) { 242 } else if (path == kProxyFtpPort) {
255 int val; 243 int val;
256 if (in_value->GetAsInteger(&val)) { 244 if (in_value->GetAsInteger(&val)) {
257 config_service->UISetProxyConfigToProxyPerScheme("ftp", 245 config.SetProxyForScheme(
258 CreateProxyServerFromPort( 246 "ftp", CreateProxyServerFromPort(
259 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP)); 247 val, config.ftp_proxy, net::ProxyServer::SCHEME_HTTP));
260 } 248 }
261 } else if (path == kProxySocks) { 249 } else if (path == kProxySocks) {
262 std::string val; 250 std::string val;
263 if (in_value->GetAsString(&val)) { 251 if (in_value->GetAsString(&val)) {
264 config_service->UISetProxyConfigToProxyPerScheme("socks", 252 config.SetProxyForScheme(
265 CreateProxyServerFromHost(val, config.socks_proxy, 253 "socks", CreateProxyServerFromHost(
266 StartsWithASCII(val, "socks5://", false) ? 254 val,
267 net::ProxyServer::SCHEME_SOCKS5 : 255 config.socks_proxy,
268 net::ProxyServer::SCHEME_SOCKS4)); 256 StartsWithASCII(val, "socks5://", false) ?
257 net::ProxyServer::SCHEME_SOCKS5 :
258 net::ProxyServer::SCHEME_SOCKS4));
269 } 259 }
270 } else if (path == kProxySocksPort) { 260 } else if (path == kProxySocksPort) {
271 int val; 261 int val;
272 if (in_value->GetAsInteger(&val)) { 262 if (in_value->GetAsInteger(&val)) {
273 std::string host = config.socks_proxy.server.host_port_pair().host(); 263 std::string host = config.socks_proxy.server.host_port_pair().host();
274 config_service->UISetProxyConfigToProxyPerScheme("socks", 264 config.SetProxyForScheme(
275 CreateProxyServerFromPort(val, config.socks_proxy, 265 "socks", CreateProxyServerFromPort(
276 StartsWithASCII(host, "socks5://", false) ? 266 val,
277 net::ProxyServer::SCHEME_SOCKS5 : 267 config.socks_proxy,
278 net::ProxyServer::SCHEME_SOCKS4)); 268 StartsWithASCII(host, "socks5://", false) ?
269 net::ProxyServer::SCHEME_SOCKS5 :
270 net::ProxyServer::SCHEME_SOCKS4));
279 } 271 }
280 } else if (path == kProxyIgnoreList) { 272 } else if (path == kProxyIgnoreList) {
281 net::ProxyBypassRules bypass_rules; 273 net::ProxyBypassRules bypass_rules;
282 if (in_value->GetType() == base::Value::TYPE_LIST) { 274 if (in_value->GetType() == base::Value::TYPE_LIST) {
283 const ListValue* list_value = static_cast<const ListValue*>(in_value); 275 const ListValue* list_value = static_cast<const ListValue*>(in_value);
284 for (size_t x = 0; x < list_value->GetSize(); x++) { 276 for (size_t x = 0; x < list_value->GetSize(); x++) {
285 std::string val; 277 std::string val;
286 if (list_value->GetString(x, &val)) { 278 if (list_value->GetString(x, &val))
287 bypass_rules.AddRuleFromString(val); 279 bypass_rules.AddRuleFromString(val);
288 }
289 } 280 }
290 config_service->UISetProxyConfigBypassRules(bypass_rules); 281 config.SetBypassRules(bypass_rules);
291 } 282 }
283 } else {
284 LOG(WARNING) << "Unknown proxy settings path " << path;
285 return;
292 } 286 }
287
288 config_service->SetProxyConfig(config);
293 } 289 }
294 290
295 bool GetProxyPrefValue(Profile* profile, 291 bool GetProxyPrefValue(Profile* profile,
296 const std::string& path, 292 const std::string& path,
297 base::Value** out_value) { 293 base::Value** out_value) {
298 std::string controlled_by; 294 std::string controlled_by;
299 base::Value* data = NULL; 295 base::Value* data = NULL;
300 chromeos::ProxyConfigServiceImpl* config_service = 296 UIProxyConfigService& config_service =
301 profile->GetProxyConfigTracker(); 297 profile->GetProxyConfigTracker()->GetUIService();
302 chromeos::ProxyConfigServiceImpl::ProxyConfig config; 298 UIProxyConfig config;
303 config_service->UIGetProxyConfig(&config); 299 config_service.GetProxyConfig(&config);
304 300
305 if (path == kProxyPacUrl) { 301 if (path == kProxyPacUrl) {
306 // Only show pacurl for pac-script mode. 302 // Only show pacurl for pac-script mode.
307 if (config.mode == 303 if (config.mode == UIProxyConfig::MODE_PAC_SCRIPT &&
308 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT &&
309 config.automatic_proxy.pac_url.is_valid()) { 304 config.automatic_proxy.pac_url.is_valid()) {
310 data = new base::StringValue(config.automatic_proxy.pac_url.spec()); 305 data = new base::StringValue(config.automatic_proxy.pac_url.spec());
311 } 306 }
312 } else if (path == kProxySingleHttp) { 307 } else if (path == kProxySingleHttp) {
313 data = CreateServerHostValue(config.single_proxy); 308 data = CreateServerHostValue(config.single_proxy);
314 } else if (path == kProxySingleHttpPort) { 309 } else if (path == kProxySingleHttpPort) {
315 data = CreateServerPortValue(config.single_proxy); 310 data = CreateServerPortValue(config.single_proxy);
316 } else if (path == kProxyHttpUrl) { 311 } else if (path == kProxyHttpUrl) {
317 data = CreateServerHostValue(config.http_proxy); 312 data = CreateServerHostValue(config.http_proxy);
318 } else if (path == kProxyHttpsUrl) { 313 } else if (path == kProxyHttpsUrl) {
319 data = CreateServerHostValue(config.https_proxy); 314 data = CreateServerHostValue(config.https_proxy);
320 } else if (path == kProxyType) { 315 } else if (path == kProxyType) {
321 if (config.mode == 316 if (config.mode == UIProxyConfig::MODE_AUTO_DETECT ||
322 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_AUTO_DETECT || 317 config.mode == UIProxyConfig::MODE_PAC_SCRIPT) {
323 config.mode ==
324 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT) {
325 data = base::Value::CreateIntegerValue(3); 318 data = base::Value::CreateIntegerValue(3);
326 } else if (config.mode == 319 } else if (config.mode == UIProxyConfig::MODE_SINGLE_PROXY ||
327 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY || 320 config.mode == UIProxyConfig::MODE_PROXY_PER_SCHEME) {
328 config.mode ==
329 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PROXY_PER_SCHEME) {
330 data = base::Value::CreateIntegerValue(2); 321 data = base::Value::CreateIntegerValue(2);
331 } else { 322 } else {
332 data = base::Value::CreateIntegerValue(1); 323 data = base::Value::CreateIntegerValue(1);
333 } 324 }
334 switch (config.state) { 325 switch (config.state) {
335 case ProxyPrefs::CONFIG_POLICY: 326 case ProxyPrefs::CONFIG_POLICY:
336 controlled_by = "policy"; 327 controlled_by = "policy";
337 break; 328 break;
338 case ProxyPrefs::CONFIG_EXTENSION: 329 case ProxyPrefs::CONFIG_EXTENSION:
339 controlled_by = "extension"; 330 controlled_by = "extension";
340 break; 331 break;
341 case ProxyPrefs::CONFIG_OTHER_PRECEDE: 332 case ProxyPrefs::CONFIG_OTHER_PRECEDE:
342 controlled_by = "other"; 333 controlled_by = "other";
343 break; 334 break;
344 default: 335 default:
345 if (!config.user_modifiable) 336 if (!config.user_modifiable)
346 controlled_by = "shared"; 337 controlled_by = "shared";
347 break; 338 break;
348 } 339 }
349 } else if (path == kProxySingle) { 340 } else if (path == kProxySingle) {
350 data = base::Value::CreateBooleanValue(config.mode == 341 data = base::Value::CreateBooleanValue(
351 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_SINGLE_PROXY); 342 config.mode == UIProxyConfig::MODE_SINGLE_PROXY);
352 } else if (path == kProxyUsePacUrl) { 343 } else if (path == kProxyUsePacUrl) {
353 data = base::Value::CreateBooleanValue(config.mode == 344 data = base::Value::CreateBooleanValue(
354 chromeos::ProxyConfigServiceImpl::ProxyConfig::MODE_PAC_SCRIPT); 345 config.mode == UIProxyConfig::MODE_PAC_SCRIPT);
355 } else if (path == kProxyFtpUrl) { 346 } else if (path == kProxyFtpUrl) {
356 data = CreateServerHostValue(config.ftp_proxy); 347 data = CreateServerHostValue(config.ftp_proxy);
357 } else if (path == kProxySocks) { 348 } else if (path == kProxySocks) {
358 data = CreateServerHostValue(config.socks_proxy); 349 data = CreateServerHostValue(config.socks_proxy);
359 } else if (path == kProxyHttpPort) { 350 } else if (path == kProxyHttpPort) {
360 data = CreateServerPortValue(config.http_proxy); 351 data = CreateServerPortValue(config.http_proxy);
361 } else if (path == kProxyHttpsPort) { 352 } else if (path == kProxyHttpsPort) {
362 data = CreateServerPortValue(config.https_proxy); 353 data = CreateServerPortValue(config.https_proxy);
363 } else if (path == kProxyFtpPort) { 354 } else if (path == kProxyFtpPort) {
364 data = CreateServerPortValue(config.ftp_proxy); 355 data = CreateServerPortValue(config.ftp_proxy);
365 } else if (path == kProxySocksPort) { 356 } else if (path == kProxySocksPort) {
366 data = CreateServerPortValue(config.socks_proxy); 357 data = CreateServerPortValue(config.socks_proxy);
367 } else if (path == kProxyIgnoreList) { 358 } else if (path == kProxyIgnoreList) {
368 ListValue* list = new ListValue(); 359 ListValue* list = new ListValue();
369 net::ProxyBypassRules::RuleList bypass_rules = config.bypass_rules.rules(); 360 net::ProxyBypassRules::RuleList bypass_rules = config.bypass_rules.rules();
370 for (size_t x = 0; x < bypass_rules.size(); x++) { 361 for (size_t x = 0; x < bypass_rules.size(); x++)
371 list->Append(new base::StringValue(bypass_rules[x]->ToString())); 362 list->Append(new base::StringValue(bypass_rules[x]->ToString()));
372 }
373 data = list; 363 data = list;
374 } else { 364 } else {
375 *out_value = NULL; 365 *out_value = NULL;
376 return false; 366 return false;
377 } 367 }
378 368
379 // Decorate pref value as CoreOptionsHandler::CreateValueForPref() does. 369 // Decorate pref value as CoreOptionsHandler::CreateValueForPref() does.
380 DictionaryValue* dict = new DictionaryValue; 370 DictionaryValue* dict = new DictionaryValue;
381 if (!data) 371 if (!data)
382 data = new base::StringValue(""); 372 data = new base::StringValue("");
383 dict->Set("value", data); 373 dict->Set("value", data);
384 if (path == kProxyType) { 374 if (path == kProxyType) {
385 dict->SetString("controlledBy", controlled_by); 375 dict->SetString("controlledBy", controlled_by);
386 dict->SetBoolean("disabled", !config.user_modifiable); 376 dict->SetBoolean("disabled", !config.user_modifiable);
387 } else { 377 } else {
388 dict->SetBoolean("disabled", false); 378 dict->SetBoolean("disabled", false);
389 } 379 }
390 *out_value = dict; 380 *out_value = dict;
391 return true; 381 return true;
392 } 382 }
393 383
394 } // namespace proxy_cros_settings_parser 384 } // namespace proxy_cros_settings_parser
395 385
396 } // namespace chromeos 386 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698