OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/cros/native_network_parser.h" | 5 #include "chrome/browser/chromeos/cros/native_network_parser.h" |
6 | 6 |
7 #include "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
8 #include "chrome/browser/chromeos/cros/native_network_constants.h" | 8 #include "chrome/browser/chromeos/cros/native_network_constants.h" |
9 #include "chrome/browser/chromeos/cros/network_library.h" | 9 #include "chrome/browser/chromeos/cros/network_library.h" |
10 #include "chrome/browser/chromeos/login/user_manager.h" | 10 #include "chrome/browser/chromeos/login/user_manager.h" |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 | 140 |
141 // -------------------- NativeNetworkDeviceParser -------------------- | 141 // -------------------- NativeNetworkDeviceParser -------------------- |
142 | 142 |
143 NativeNetworkDeviceParser::NativeNetworkDeviceParser() | 143 NativeNetworkDeviceParser::NativeNetworkDeviceParser() |
144 : NetworkDeviceParser(get_native_mapper()) { | 144 : NetworkDeviceParser(get_native_mapper()) { |
145 } | 145 } |
146 | 146 |
147 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { | 147 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { |
148 } | 148 } |
149 | 149 |
150 bool NativeNetworkDeviceParser::ParseValue( | 150 bool NativeNetworkDeviceParser::ParseValue(PropertyIndex index, |
151 PropertyIndex index, const Value& value, NetworkDevice* device) { | 151 Value* value, |
| 152 NetworkDevice* device) { |
152 switch (index) { | 153 switch (index) { |
153 case PROPERTY_INDEX_TYPE: { | 154 case PROPERTY_INDEX_TYPE: { |
154 std::string type_string; | 155 std::string type_string; |
155 if (value.GetAsString(&type_string)) { | 156 if (value->GetAsString(&type_string)) { |
156 device->set_type(ParseType(type_string)); | 157 device->set_type(ParseType(type_string)); |
157 return true; | 158 return true; |
158 } | 159 } |
159 break; | 160 break; |
160 } | 161 } |
161 case PROPERTY_INDEX_NAME: { | 162 case PROPERTY_INDEX_NAME: { |
162 std::string name; | 163 std::string name; |
163 if (!value.GetAsString(&name)) | 164 if (!value->GetAsString(&name)) |
164 return false; | 165 return false; |
165 device->set_name(name); | 166 device->set_name(name); |
166 return true; | 167 return true; |
167 } | 168 } |
168 case PROPERTY_INDEX_GUID: { | 169 case PROPERTY_INDEX_GUID: { |
169 std::string unique_id; | 170 std::string unique_id; |
170 if (!value.GetAsString(&unique_id)) | 171 if (!value->GetAsString(&unique_id)) |
171 return false; | 172 return false; |
172 device->set_unique_id(unique_id); | 173 device->set_unique_id(unique_id); |
173 return true; | 174 return true; |
174 } | 175 } |
175 case PROPERTY_INDEX_CARRIER: { | 176 case PROPERTY_INDEX_CARRIER: { |
176 std::string carrier; | 177 std::string carrier; |
177 if (!value.GetAsString(&carrier)) | 178 if (!value->GetAsString(&carrier)) |
178 return false; | 179 return false; |
179 device->set_carrier(carrier); | 180 device->set_carrier(carrier); |
180 return true; | 181 return true; |
181 } | 182 } |
182 case PROPERTY_INDEX_SCANNING: { | 183 case PROPERTY_INDEX_SCANNING: { |
183 bool scanning; | 184 bool scanning; |
184 if (!value.GetAsBoolean(&scanning)) | 185 if (!value->GetAsBoolean(&scanning)) |
185 return false; | 186 return false; |
186 device->set_scanning(scanning); | 187 device->set_scanning(scanning); |
187 return true; | 188 return true; |
188 } | 189 } |
189 case PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING: { | 190 case PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING: { |
190 bool data_roaming_allowed; | 191 bool data_roaming_allowed; |
191 if (!value.GetAsBoolean(&data_roaming_allowed)) | 192 if (!value->GetAsBoolean(&data_roaming_allowed)) |
192 return false; | 193 return false; |
193 device->set_data_roaming_allowed(data_roaming_allowed); | 194 device->set_data_roaming_allowed(data_roaming_allowed); |
194 return true; | 195 return true; |
195 } | 196 } |
196 case PROPERTY_INDEX_CELLULAR_APN_LIST: | 197 case PROPERTY_INDEX_CELLULAR_APN_LIST: |
197 if (value.IsType(Value::TYPE_LIST)) { | 198 if (ListValue* list = value->AsList()) { |
198 CellularApnList provider_apn_list; | 199 CellularApnList provider_apn_list; |
199 if (!ParseApnList(static_cast<const ListValue&>(value), | 200 if (!ParseApnList(*list, &provider_apn_list)) |
200 &provider_apn_list)) | |
201 return false; | 201 return false; |
202 device->set_provider_apn_list(provider_apn_list); | 202 device->set_provider_apn_list(provider_apn_list); |
203 return true; | 203 return true; |
204 } | 204 } |
205 break; | 205 break; |
206 case PROPERTY_INDEX_NETWORKS: | 206 case PROPERTY_INDEX_NETWORKS: |
207 if (value.IsType(Value::TYPE_LIST)) { | 207 if (value->AsList()) { |
208 // Ignored. | 208 // Ignored. |
209 return true; | 209 return true; |
210 } | 210 } |
211 break; | 211 break; |
212 case PROPERTY_INDEX_FOUND_NETWORKS: | 212 case PROPERTY_INDEX_FOUND_NETWORKS: |
213 if (value.IsType(Value::TYPE_LIST)) { | 213 if (ListValue* list = value->AsList()) { |
214 CellularNetworkList found_cellular_networks; | 214 CellularNetworkList found_cellular_networks; |
215 if (!ParseFoundNetworksFromList( | 215 if (!ParseFoundNetworksFromList(*list, &found_cellular_networks)) |
216 static_cast<const ListValue&>(value), | |
217 &found_cellular_networks)) | |
218 return false; | 216 return false; |
219 device->set_found_cellular_networks(found_cellular_networks); | 217 device->set_found_cellular_networks(found_cellular_networks); |
220 return true; | 218 return true; |
221 } | 219 } |
222 break; | 220 break; |
223 case PROPERTY_INDEX_HOME_PROVIDER: { | 221 case PROPERTY_INDEX_HOME_PROVIDER: { |
224 if (value.IsType(Value::TYPE_DICTIONARY)) { | 222 if (value->IsType(Value::TYPE_DICTIONARY)) { |
225 const DictionaryValue& dict = | 223 DictionaryValue* dict = static_cast<DictionaryValue*>(value); |
226 static_cast<const DictionaryValue&>(value); | |
227 std::string home_provider_code; | 224 std::string home_provider_code; |
228 std::string home_provider_country; | 225 std::string home_provider_country; |
229 std::string home_provider_name; | 226 std::string home_provider_name; |
230 dict.GetStringWithoutPathExpansion(kOperatorCodeKey, | 227 dict->GetStringWithoutPathExpansion(kOperatorCodeKey, |
231 &home_provider_code); | 228 &home_provider_code); |
232 dict.GetStringWithoutPathExpansion(kOperatorCountryKey, | 229 dict->GetStringWithoutPathExpansion(kOperatorCountryKey, |
233 &home_provider_country); | 230 &home_provider_country); |
234 dict.GetStringWithoutPathExpansion(kOperatorNameKey, | 231 dict->GetStringWithoutPathExpansion(kOperatorNameKey, |
235 &home_provider_name); | 232 &home_provider_name); |
236 device->set_home_provider_code(home_provider_code); | 233 device->set_home_provider_code(home_provider_code); |
237 device->set_home_provider_country(home_provider_country); | 234 device->set_home_provider_country(home_provider_country); |
238 device->set_home_provider_name(home_provider_name); | 235 device->set_home_provider_name(home_provider_name); |
239 if (!device->home_provider_name().empty() && | 236 if (!device->home_provider_name().empty() && |
240 !device->home_provider_country().empty()) { | 237 !device->home_provider_country().empty()) { |
241 device->set_home_provider_id(base::StringPrintf( | 238 device->set_home_provider_id(base::StringPrintf( |
242 kCarrierIdFormat, | 239 kCarrierIdFormat, |
243 device->home_provider_name().c_str(), | 240 device->home_provider_name().c_str(), |
244 device->home_provider_country().c_str())); | 241 device->home_provider_country().c_str())); |
245 } else { | 242 } else { |
(...skipping 10 matching lines...) Expand all Loading... |
256 case PROPERTY_INDEX_IMSI: | 253 case PROPERTY_INDEX_IMSI: |
257 case PROPERTY_INDEX_ESN: | 254 case PROPERTY_INDEX_ESN: |
258 case PROPERTY_INDEX_MDN: | 255 case PROPERTY_INDEX_MDN: |
259 case PROPERTY_INDEX_MIN: | 256 case PROPERTY_INDEX_MIN: |
260 case PROPERTY_INDEX_MODEL_ID: | 257 case PROPERTY_INDEX_MODEL_ID: |
261 case PROPERTY_INDEX_MANUFACTURER: | 258 case PROPERTY_INDEX_MANUFACTURER: |
262 case PROPERTY_INDEX_FIRMWARE_REVISION: | 259 case PROPERTY_INDEX_FIRMWARE_REVISION: |
263 case PROPERTY_INDEX_HARDWARE_REVISION: | 260 case PROPERTY_INDEX_HARDWARE_REVISION: |
264 case PROPERTY_INDEX_SELECTED_NETWORK: { | 261 case PROPERTY_INDEX_SELECTED_NETWORK: { |
265 std::string item; | 262 std::string item; |
266 if (!value.GetAsString(&item)) | 263 if (!value->GetAsString(&item)) |
267 return false; | 264 return false; |
268 switch (index) { | 265 switch (index) { |
269 case PROPERTY_INDEX_MEID: | 266 case PROPERTY_INDEX_MEID: |
270 device->set_meid(item); | 267 device->set_meid(item); |
271 break; | 268 break; |
272 case PROPERTY_INDEX_IMEI: | 269 case PROPERTY_INDEX_IMEI: |
273 device->set_imei(item); | 270 device->set_imei(item); |
274 break; | 271 break; |
275 case PROPERTY_INDEX_IMSI: | 272 case PROPERTY_INDEX_IMSI: |
276 device->set_imsi(item); | 273 device->set_imsi(item); |
(...skipping 21 matching lines...) Expand all Loading... |
298 break; | 295 break; |
299 case PROPERTY_INDEX_SELECTED_NETWORK: | 296 case PROPERTY_INDEX_SELECTED_NETWORK: |
300 device->set_selected_cellular_network(item); | 297 device->set_selected_cellular_network(item); |
301 break; | 298 break; |
302 default: | 299 default: |
303 break; | 300 break; |
304 } | 301 } |
305 return true; | 302 return true; |
306 } | 303 } |
307 case PROPERTY_INDEX_SIM_LOCK: | 304 case PROPERTY_INDEX_SIM_LOCK: |
308 if (value.IsType(Value::TYPE_DICTIONARY)) { | 305 if (value->IsType(Value::TYPE_DICTIONARY)) { |
309 SimLockState sim_lock_state; | 306 SimLockState sim_lock_state; |
310 int sim_retries_left; | 307 int sim_retries_left; |
311 if (!ParseSimLockStateFromDictionary( | 308 if (!ParseSimLockStateFromDictionary( |
312 static_cast<const DictionaryValue&>(value), | 309 static_cast<const DictionaryValue&>(*value), |
313 &sim_lock_state, | 310 &sim_lock_state, |
314 &sim_retries_left)) | 311 &sim_retries_left)) |
315 return false; | 312 return false; |
316 device->set_sim_lock_state(sim_lock_state); | 313 device->set_sim_lock_state(sim_lock_state); |
317 device->set_sim_retries_left(sim_retries_left); | 314 device->set_sim_retries_left(sim_retries_left); |
318 // Initialize PinRequired value only once. | 315 // Initialize PinRequired value only once. |
319 // See SimPinRequire enum comments. | 316 // See SimPinRequire enum comments. |
320 if (device->sim_pin_required() == SIM_PIN_REQUIRE_UNKNOWN) { | 317 if (device->sim_pin_required() == SIM_PIN_REQUIRE_UNKNOWN) { |
321 if (device->sim_lock_state() == SIM_UNLOCKED) { | 318 if (device->sim_lock_state() == SIM_UNLOCKED) { |
322 device->set_sim_pin_required(SIM_PIN_NOT_REQUIRED); | 319 device->set_sim_pin_required(SIM_PIN_NOT_REQUIRED); |
323 } else if (device->sim_lock_state() == SIM_LOCKED_PIN || | 320 } else if (device->sim_lock_state() == SIM_LOCKED_PIN || |
324 device->sim_lock_state() == SIM_LOCKED_PUK) { | 321 device->sim_lock_state() == SIM_LOCKED_PUK) { |
325 device->set_sim_pin_required(SIM_PIN_REQUIRED); | 322 device->set_sim_pin_required(SIM_PIN_REQUIRED); |
326 } | 323 } |
327 } | 324 } |
328 return true; | 325 return true; |
329 } | 326 } |
330 break; | 327 break; |
331 case PROPERTY_INDEX_POWERED: | 328 case PROPERTY_INDEX_POWERED: |
332 // we don't care about the value, just the fact that it changed | 329 // we don't care about the value, just the fact that it changed |
333 return true; | 330 return true; |
334 case PROPERTY_INDEX_PRL_VERSION: { | 331 case PROPERTY_INDEX_PRL_VERSION: { |
335 int prl_version; | 332 int prl_version; |
336 if (!value.GetAsInteger(&prl_version)) | 333 if (!value->GetAsInteger(&prl_version)) |
337 return false; | 334 return false; |
338 device->set_prl_version(prl_version); | 335 device->set_prl_version(prl_version); |
339 return true; | 336 return true; |
340 } | 337 } |
341 case PROPERTY_INDEX_SUPPORT_NETWORK_SCAN: { | 338 case PROPERTY_INDEX_SUPPORT_NETWORK_SCAN: { |
342 bool support_network_scan; | 339 bool support_network_scan; |
343 if (!value.GetAsBoolean(&support_network_scan)) | 340 if (!value->GetAsBoolean(&support_network_scan)) |
344 return false; | 341 return false; |
345 device->set_support_network_scan(support_network_scan); | 342 device->set_support_network_scan(support_network_scan); |
346 return true; | 343 return true; |
347 } | 344 } |
348 case PROPERTY_INDEX_TECHNOLOGY_FAMILY: { | 345 case PROPERTY_INDEX_TECHNOLOGY_FAMILY: { |
349 std::string technology_family_string; | 346 std::string technology_family_string; |
350 if (value.GetAsString(&technology_family_string)) { | 347 if (value->GetAsString(&technology_family_string)) { |
351 device->set_technology_family( | 348 device->set_technology_family( |
352 ParseTechnologyFamily(technology_family_string)); | 349 ParseTechnologyFamily(technology_family_string)); |
353 return true; | 350 return true; |
354 } | 351 } |
355 break; | 352 break; |
356 } | 353 } |
357 default: | 354 default: |
358 break; | 355 break; |
359 } | 356 } |
360 return false; | 357 return false; |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 return get_native_mapper(); | 467 return get_native_mapper(); |
471 | 468 |
472 } | 469 } |
473 | 470 |
474 const ConnectionType NativeNetworkParser::ParseConnectionType( | 471 const ConnectionType NativeNetworkParser::ParseConnectionType( |
475 const std::string& connection_type) { | 472 const std::string& connection_type) { |
476 return ParseNetworkType(connection_type); | 473 return ParseNetworkType(connection_type); |
477 } | 474 } |
478 | 475 |
479 bool NativeNetworkParser::ParseValue(PropertyIndex index, | 476 bool NativeNetworkParser::ParseValue(PropertyIndex index, |
480 const Value& value, | 477 Value* value, |
481 Network* network) { | 478 Network* network) { |
482 switch (index) { | 479 switch (index) { |
483 case PROPERTY_INDEX_TYPE: { | 480 case PROPERTY_INDEX_TYPE: { |
484 std::string type_string; | 481 std::string type_string; |
485 if (value.GetAsString(&type_string)) { | 482 if (value->GetAsString(&type_string)) { |
486 ConnectionType type = ParseType(type_string); | 483 ConnectionType type = ParseType(type_string); |
487 LOG_IF(ERROR, type != network->type()) | 484 LOG_IF(ERROR, type != network->type()) |
488 << "Network with mismatched type: " << network->service_path() | 485 << "Network with mismatched type: " << network->service_path() |
489 << " " << type << " != " << network->type(); | 486 << " " << type << " != " << network->type(); |
490 return true; | 487 return true; |
491 } | 488 } |
492 break; | 489 break; |
493 } | 490 } |
494 case PROPERTY_INDEX_DEVICE: { | 491 case PROPERTY_INDEX_DEVICE: { |
495 std::string device_path; | 492 std::string device_path; |
496 if (!value.GetAsString(&device_path)) | 493 if (!value->GetAsString(&device_path)) |
497 return false; | 494 return false; |
498 network->set_device_path(device_path); | 495 network->set_device_path(device_path); |
499 return true; | 496 return true; |
500 } | 497 } |
501 case PROPERTY_INDEX_NAME: { | 498 case PROPERTY_INDEX_NAME: { |
502 std::string name; | 499 std::string name; |
503 if (!value.GetAsString(&name)) | 500 if (!value->GetAsString(&name)) |
504 return false; | 501 return false; |
505 network->SetName(name); | 502 network->SetName(name); |
506 return true; | 503 return true; |
507 } | 504 } |
508 case PROPERTY_INDEX_GUID: { | 505 case PROPERTY_INDEX_GUID: { |
509 std::string unique_id; | 506 std::string unique_id; |
510 if (!value.GetAsString(&unique_id)) | 507 if (!value->GetAsString(&unique_id)) |
511 return false; | 508 return false; |
512 network->set_unique_id(unique_id); | 509 network->set_unique_id(unique_id); |
513 return true; | 510 return true; |
514 } | 511 } |
515 case PROPERTY_INDEX_PROFILE: { | 512 case PROPERTY_INDEX_PROFILE: { |
516 // Note: currently this is only provided for non remembered networks. | 513 // Note: currently this is only provided for non remembered networks. |
517 std::string profile_path; | 514 std::string profile_path; |
518 if (!value.GetAsString(&profile_path)) | 515 if (!value->GetAsString(&profile_path)) |
519 return false; | 516 return false; |
520 network->set_profile_path(profile_path); | 517 network->set_profile_path(profile_path); |
521 return true; | 518 return true; |
522 } | 519 } |
523 case PROPERTY_INDEX_STATE: { | 520 case PROPERTY_INDEX_STATE: { |
524 std::string state_string; | 521 std::string state_string; |
525 if (value.GetAsString(&state_string)) { | 522 if (value->GetAsString(&state_string)) { |
526 network->SetState(ParseState(state_string)); | 523 network->SetState(ParseState(state_string)); |
527 return true; | 524 return true; |
528 } | 525 } |
529 break; | 526 break; |
530 } | 527 } |
531 case PROPERTY_INDEX_MODE: { | 528 case PROPERTY_INDEX_MODE: { |
532 std::string mode_string; | 529 std::string mode_string; |
533 if (value.GetAsString(&mode_string)) { | 530 if (value->GetAsString(&mode_string)) { |
534 network->set_mode(ParseMode(mode_string)); | 531 network->set_mode(ParseMode(mode_string)); |
535 return true; | 532 return true; |
536 } | 533 } |
537 break; | 534 break; |
538 } | 535 } |
539 case PROPERTY_INDEX_ERROR: { | 536 case PROPERTY_INDEX_ERROR: { |
540 std::string error_string; | 537 std::string error_string; |
541 if (value.GetAsString(&error_string)) { | 538 if (value->GetAsString(&error_string)) { |
542 network->set_error(ParseError(error_string)); | 539 network->set_error(ParseError(error_string)); |
543 return true; | 540 return true; |
544 } | 541 } |
545 break; | 542 break; |
546 } | 543 } |
547 case PROPERTY_INDEX_CONNECTABLE: { | 544 case PROPERTY_INDEX_CONNECTABLE: { |
548 bool connectable; | 545 bool connectable; |
549 if (!value.GetAsBoolean(&connectable)) | 546 if (!value->GetAsBoolean(&connectable)) |
550 return false; | 547 return false; |
551 network->set_connectable(connectable); | 548 network->set_connectable(connectable); |
552 return true; | 549 return true; |
553 } | 550 } |
554 case PROPERTY_INDEX_IS_ACTIVE: { | 551 case PROPERTY_INDEX_IS_ACTIVE: { |
555 bool is_active; | 552 bool is_active; |
556 if (!value.GetAsBoolean(&is_active)) | 553 if (!value->GetAsBoolean(&is_active)) |
557 return false; | 554 return false; |
558 network->set_is_active(is_active); | 555 network->set_is_active(is_active); |
559 return true; | 556 return true; |
560 } | 557 } |
561 case PROPERTY_INDEX_FAVORITE: | 558 case PROPERTY_INDEX_FAVORITE: |
562 // This property is ignored. | 559 // This property is ignored. |
563 return true; | 560 return true; |
564 case PROPERTY_INDEX_AUTO_CONNECT: { | 561 case PROPERTY_INDEX_AUTO_CONNECT: { |
565 bool auto_connect; | 562 bool auto_connect; |
566 if (!value.GetAsBoolean(&auto_connect)) | 563 if (!value->GetAsBoolean(&auto_connect)) |
567 return false; | 564 return false; |
568 network->set_auto_connect(auto_connect); | 565 network->set_auto_connect(auto_connect); |
569 return true; | 566 return true; |
570 } | 567 } |
571 case PROPERTY_INDEX_SAVE_CREDENTIALS: { | 568 case PROPERTY_INDEX_SAVE_CREDENTIALS: { |
572 bool save_credentials; | 569 bool save_credentials; |
573 if (!value.GetAsBoolean(&save_credentials)) | 570 if (!value->GetAsBoolean(&save_credentials)) |
574 return false; | 571 return false; |
575 network->set_save_credentials(save_credentials); | 572 network->set_save_credentials(save_credentials); |
576 return true; | 573 return true; |
577 } | 574 } |
578 case PROPERTY_INDEX_PROXY_CONFIG: { | 575 case PROPERTY_INDEX_PROXY_CONFIG: { |
579 std::string proxy_config; | 576 std::string proxy_config; |
580 if (!value.GetAsString(&proxy_config)) | 577 if (!value->GetAsString(&proxy_config)) |
581 return false; | 578 return false; |
582 network->set_proxy_config(proxy_config); | 579 network->set_proxy_config(proxy_config); |
583 return true; | 580 return true; |
584 } | 581 } |
585 default: | 582 default: |
586 break; | 583 break; |
587 } | 584 } |
588 return false; | 585 return false; |
589 } | 586 } |
590 | 587 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 | 650 |
654 NativeEthernetNetworkParser::NativeEthernetNetworkParser() {} | 651 NativeEthernetNetworkParser::NativeEthernetNetworkParser() {} |
655 NativeEthernetNetworkParser::~NativeEthernetNetworkParser() {} | 652 NativeEthernetNetworkParser::~NativeEthernetNetworkParser() {} |
656 | 653 |
657 // -------------------- NativeWirelessNetworkParser -------------------- | 654 // -------------------- NativeWirelessNetworkParser -------------------- |
658 | 655 |
659 NativeWirelessNetworkParser::NativeWirelessNetworkParser() {} | 656 NativeWirelessNetworkParser::NativeWirelessNetworkParser() {} |
660 NativeWirelessNetworkParser::~NativeWirelessNetworkParser() {} | 657 NativeWirelessNetworkParser::~NativeWirelessNetworkParser() {} |
661 | 658 |
662 bool NativeWirelessNetworkParser::ParseValue(PropertyIndex index, | 659 bool NativeWirelessNetworkParser::ParseValue(PropertyIndex index, |
663 const Value& value, | 660 Value* value, |
664 Network* network) { | 661 Network* network) { |
665 DCHECK_NE(TYPE_ETHERNET, network->type()); | 662 DCHECK_NE(TYPE_ETHERNET, network->type()); |
666 DCHECK_NE(TYPE_VPN, network->type()); | 663 DCHECK_NE(TYPE_VPN, network->type()); |
667 WirelessNetwork* wireless_network = static_cast<WirelessNetwork*>(network); | 664 WirelessNetwork* wireless_network = static_cast<WirelessNetwork*>(network); |
668 switch (index) { | 665 switch (index) { |
669 case PROPERTY_INDEX_SIGNAL_STRENGTH: { | 666 case PROPERTY_INDEX_SIGNAL_STRENGTH: { |
670 int strength; | 667 int strength; |
671 if (!value.GetAsInteger(&strength)) | 668 if (!value->GetAsInteger(&strength)) |
672 return false; | 669 return false; |
673 wireless_network->set_strength(strength); | 670 wireless_network->set_strength(strength); |
674 return true; | 671 return true; |
675 } | 672 } |
676 default: | 673 default: |
677 return NativeNetworkParser::ParseValue(index, value, network); | 674 return NativeNetworkParser::ParseValue(index, value, network); |
678 break; | 675 break; |
679 } | 676 } |
680 return false; | 677 return false; |
681 } | 678 } |
682 | 679 |
683 // -------------------- NativeCellularNetworkParser -------------------- | 680 // -------------------- NativeCellularNetworkParser -------------------- |
684 | 681 |
685 NativeCellularNetworkParser::NativeCellularNetworkParser() {} | 682 NativeCellularNetworkParser::NativeCellularNetworkParser() {} |
686 NativeCellularNetworkParser::~NativeCellularNetworkParser() {} | 683 NativeCellularNetworkParser::~NativeCellularNetworkParser() {} |
687 | 684 |
688 bool NativeCellularNetworkParser::ParseValue(PropertyIndex index, | 685 bool NativeCellularNetworkParser::ParseValue(PropertyIndex index, |
689 const Value& value, | 686 Value* value, |
690 Network* network) { | 687 Network* network) { |
691 DCHECK_EQ(TYPE_CELLULAR, network->type()); | 688 DCHECK_EQ(TYPE_CELLULAR, network->type()); |
692 CellularNetwork* cellular_network = static_cast<CellularNetwork*>(network); | 689 CellularNetwork* cellular_network = static_cast<CellularNetwork*>(network); |
693 switch (index) { | 690 switch (index) { |
694 case PROPERTY_INDEX_ACTIVATION_STATE: { | 691 case PROPERTY_INDEX_ACTIVATION_STATE: { |
695 std::string activation_state_string; | 692 std::string activation_state_string; |
696 if (value.GetAsString(&activation_state_string)) { | 693 if (value->GetAsString(&activation_state_string)) { |
697 ActivationState prev_state = cellular_network->activation_state(); | 694 ActivationState prev_state = cellular_network->activation_state(); |
698 cellular_network->set_activation_state( | 695 cellular_network->set_activation_state( |
699 ParseActivationState(activation_state_string)); | 696 ParseActivationState(activation_state_string)); |
700 if (cellular_network->activation_state() != prev_state) | 697 if (cellular_network->activation_state() != prev_state) |
701 cellular_network->RefreshDataPlansIfNeeded(); | 698 cellular_network->RefreshDataPlansIfNeeded(); |
702 return true; | 699 return true; |
703 } | 700 } |
704 break; | 701 break; |
705 } | 702 } |
706 case PROPERTY_INDEX_CELLULAR_APN: { | 703 case PROPERTY_INDEX_CELLULAR_APN: { |
707 if (value.IsType(Value::TYPE_DICTIONARY)) { | 704 if (value->IsType(Value::TYPE_DICTIONARY)) { |
708 cellular_network->set_apn(static_cast<const DictionaryValue&>(value)); | 705 cellular_network->set_apn(static_cast<const DictionaryValue&>(*value)); |
709 return true; | 706 return true; |
710 } | 707 } |
711 break; | 708 break; |
712 } | 709 } |
713 case PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN: { | 710 case PROPERTY_INDEX_CELLULAR_LAST_GOOD_APN: { |
714 if (value.IsType(Value::TYPE_DICTIONARY)) { | 711 if (value->IsType(Value::TYPE_DICTIONARY)) { |
715 cellular_network->set_last_good_apn( | 712 cellular_network->set_last_good_apn( |
716 static_cast<const DictionaryValue&>(value)); | 713 static_cast<const DictionaryValue&>(*value)); |
717 return true; | 714 return true; |
718 } | 715 } |
719 break; | 716 break; |
720 } | 717 } |
721 case PROPERTY_INDEX_NETWORK_TECHNOLOGY: { | 718 case PROPERTY_INDEX_NETWORK_TECHNOLOGY: { |
722 std::string network_technology_string; | 719 std::string network_technology_string; |
723 if (value.GetAsString(&network_technology_string)) { | 720 if (value->GetAsString(&network_technology_string)) { |
724 cellular_network->set_network_technology( | 721 cellular_network->set_network_technology( |
725 ParseNetworkTechnology(network_technology_string)); | 722 ParseNetworkTechnology(network_technology_string)); |
726 return true; | 723 return true; |
727 } | 724 } |
728 break; | 725 break; |
729 } | 726 } |
730 case PROPERTY_INDEX_ROAMING_STATE: { | 727 case PROPERTY_INDEX_ROAMING_STATE: { |
731 std::string roaming_state_string; | 728 std::string roaming_state_string; |
732 if (value.GetAsString(&roaming_state_string)) { | 729 if (value->GetAsString(&roaming_state_string)) { |
733 cellular_network->set_roaming_state( | 730 cellular_network->set_roaming_state( |
734 ParseRoamingState(roaming_state_string)); | 731 ParseRoamingState(roaming_state_string)); |
735 return true; | 732 return true; |
736 } | 733 } |
737 break; | 734 break; |
738 } | 735 } |
739 case PROPERTY_INDEX_OPERATOR_NAME: { | 736 case PROPERTY_INDEX_OPERATOR_NAME: { |
740 std::string value_str; | 737 std::string value_str; |
741 if (!value.GetAsString(&value_str)) | 738 if (!value->GetAsString(&value_str)) |
742 break; | 739 break; |
743 cellular_network->set_operator_name(value_str); | 740 cellular_network->set_operator_name(value_str); |
744 return true; | 741 return true; |
745 } | 742 } |
746 case PROPERTY_INDEX_OPERATOR_CODE: { | 743 case PROPERTY_INDEX_OPERATOR_CODE: { |
747 std::string value_str; | 744 std::string value_str; |
748 if (!value.GetAsString(&value_str)) | 745 if (!value->GetAsString(&value_str)) |
749 break; | 746 break; |
750 cellular_network->set_operator_code(value_str); | 747 cellular_network->set_operator_code(value_str); |
751 return true; | 748 return true; |
752 } | 749 } |
753 case PROPERTY_INDEX_SERVING_OPERATOR: { | 750 case PROPERTY_INDEX_SERVING_OPERATOR: { |
754 if (value.IsType(Value::TYPE_DICTIONARY)) { | 751 if (value->IsType(Value::TYPE_DICTIONARY)) { |
755 const DictionaryValue& dict = | 752 const DictionaryValue& dict = |
756 static_cast<const DictionaryValue&>(value); | 753 static_cast<const DictionaryValue&>(*value); |
757 std::string value_str; | 754 std::string value_str; |
758 dict.GetStringWithoutPathExpansion(kOperatorNameKey, &value_str); | 755 dict.GetStringWithoutPathExpansion(kOperatorNameKey, &value_str); |
759 cellular_network->set_operator_name(value_str); | 756 cellular_network->set_operator_name(value_str); |
760 value_str.clear(); | 757 value_str.clear(); |
761 dict.GetStringWithoutPathExpansion(kOperatorCodeKey, &value_str); | 758 dict.GetStringWithoutPathExpansion(kOperatorCodeKey, &value_str); |
762 cellular_network->set_operator_code(value_str); | 759 cellular_network->set_operator_code(value_str); |
763 value_str.clear(); | 760 value_str.clear(); |
764 dict.GetStringWithoutPathExpansion(kOperatorCountryKey, &value_str); | 761 dict.GetStringWithoutPathExpansion(kOperatorCountryKey, &value_str); |
765 cellular_network->set_operator_country(value_str); | 762 cellular_network->set_operator_country(value_str); |
766 return true; | 763 return true; |
767 } | 764 } |
768 break; | 765 break; |
769 } | 766 } |
770 case PROPERTY_INDEX_PAYMENT_URL: { | 767 case PROPERTY_INDEX_PAYMENT_URL: { |
771 std::string value_str; | 768 std::string value_str; |
772 if (!value.GetAsString(&value_str)) | 769 if (!value->GetAsString(&value_str)) |
773 break; | 770 break; |
774 cellular_network->set_payment_url(value_str); | 771 cellular_network->set_payment_url(value_str); |
775 return true; | 772 return true; |
776 } | 773 } |
777 case PROPERTY_INDEX_USAGE_URL: { | 774 case PROPERTY_INDEX_USAGE_URL: { |
778 std::string value_str; | 775 std::string value_str; |
779 if (!value.GetAsString(&value_str)) | 776 if (!value->GetAsString(&value_str)) |
780 break; | 777 break; |
781 cellular_network->set_usage_url(value_str); | 778 cellular_network->set_usage_url(value_str); |
782 return true; | 779 return true; |
783 } | 780 } |
784 case PROPERTY_INDEX_STATE: { | 781 case PROPERTY_INDEX_STATE: { |
785 // Save previous state before calling WirelessNetwork::ParseValue. | 782 // Save previous state before calling WirelessNetwork::ParseValue. |
786 ConnectionState prev_state = cellular_network->state(); | 783 ConnectionState prev_state = cellular_network->state(); |
787 if (NativeWirelessNetworkParser::ParseValue(index, value, network)) { | 784 if (NativeWirelessNetworkParser::ParseValue(index, value, network)) { |
788 if (cellular_network->state() != prev_state) | 785 if (cellular_network->state() != prev_state) |
789 cellular_network->RefreshDataPlansIfNeeded(); | 786 cellular_network->RefreshDataPlansIfNeeded(); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 table, arraysize(table), ROAMING_STATE_UNKNOWN); | 838 table, arraysize(table), ROAMING_STATE_UNKNOWN); |
842 return parser.Get(roaming_state); | 839 return parser.Get(roaming_state); |
843 } | 840 } |
844 | 841 |
845 // -------------------- NativeWifiNetworkParser -------------------- | 842 // -------------------- NativeWifiNetworkParser -------------------- |
846 | 843 |
847 NativeWifiNetworkParser::NativeWifiNetworkParser() {} | 844 NativeWifiNetworkParser::NativeWifiNetworkParser() {} |
848 NativeWifiNetworkParser::~NativeWifiNetworkParser() {} | 845 NativeWifiNetworkParser::~NativeWifiNetworkParser() {} |
849 | 846 |
850 bool NativeWifiNetworkParser::ParseValue(PropertyIndex index, | 847 bool NativeWifiNetworkParser::ParseValue(PropertyIndex index, |
851 const Value& value, | 848 Value* value, |
852 Network* network) { | 849 Network* network) { |
853 DCHECK_EQ(TYPE_WIFI, network->type()); | 850 DCHECK_EQ(TYPE_WIFI, network->type()); |
854 WifiNetwork* wifi_network = static_cast<WifiNetwork*>(network); | 851 WifiNetwork* wifi_network = static_cast<WifiNetwork*>(network); |
855 switch (index) { | 852 switch (index) { |
856 case PROPERTY_INDEX_WIFI_HEX_SSID: { | 853 case PROPERTY_INDEX_WIFI_HEX_SSID: { |
857 std::string ssid_hex; | 854 std::string ssid_hex; |
858 if (!value.GetAsString(&ssid_hex)) | 855 if (!value->GetAsString(&ssid_hex)) |
859 return false; | 856 return false; |
860 | 857 |
861 wifi_network->SetHexSsid(ssid_hex); | 858 wifi_network->SetHexSsid(ssid_hex); |
862 return true; | 859 return true; |
863 } | 860 } |
864 case PROPERTY_INDEX_WIFI_AUTH_MODE: | 861 case PROPERTY_INDEX_WIFI_AUTH_MODE: |
865 case PROPERTY_INDEX_WIFI_PHY_MODE: | 862 case PROPERTY_INDEX_WIFI_PHY_MODE: |
866 case PROPERTY_INDEX_WIFI_HIDDEN_SSID: | 863 case PROPERTY_INDEX_WIFI_HIDDEN_SSID: |
867 case PROPERTY_INDEX_WIFI_FREQUENCY: | 864 case PROPERTY_INDEX_WIFI_FREQUENCY: |
868 // These properties are currently not used in the UI. | 865 // These properties are currently not used in the UI. |
869 return true; | 866 return true; |
870 case PROPERTY_INDEX_NAME: { | 867 case PROPERTY_INDEX_NAME: { |
871 // Does not change network name when it was already set by WiFi.HexSSID. | 868 // Does not change network name when it was already set by WiFi.HexSSID. |
872 if (!wifi_network->name().empty()) | 869 if (!wifi_network->name().empty()) |
873 return true; | 870 return true; |
874 else | 871 else |
875 return NativeWirelessNetworkParser::ParseValue(index, value, network); | 872 return NativeWirelessNetworkParser::ParseValue(index, value, network); |
876 } | 873 } |
877 case PROPERTY_INDEX_GUID: { | 874 case PROPERTY_INDEX_GUID: { |
878 std::string unique_id; | 875 std::string unique_id; |
879 if (!value.GetAsString(&unique_id)) | 876 if (!value->GetAsString(&unique_id)) |
880 break; | 877 break; |
881 wifi_network->set_unique_id(unique_id); | 878 wifi_network->set_unique_id(unique_id); |
882 return true; | 879 return true; |
883 } | 880 } |
884 case PROPERTY_INDEX_SECURITY: { | 881 case PROPERTY_INDEX_SECURITY: { |
885 std::string security_string; | 882 std::string security_string; |
886 if (!value.GetAsString(&security_string)) | 883 if (!value->GetAsString(&security_string)) |
887 break; | 884 break; |
888 wifi_network->set_encryption(ParseSecurity(security_string)); | 885 wifi_network->set_encryption(ParseSecurity(security_string)); |
889 return true; | 886 return true; |
890 } | 887 } |
891 case PROPERTY_INDEX_PASSPHRASE: { | 888 case PROPERTY_INDEX_PASSPHRASE: { |
892 std::string passphrase; | 889 std::string passphrase; |
893 if (!value.GetAsString(&passphrase)) | 890 if (!value->GetAsString(&passphrase)) |
894 break; | 891 break; |
895 // Only store the passphrase if we are the owner. | 892 // Only store the passphrase if we are the owner. |
896 // TODO(stevenjb): Remove this when chromium-os:12948 is resolved. | 893 // TODO(stevenjb): Remove this when chromium-os:12948 is resolved. |
897 if (chromeos::UserManager::Get()->current_user_is_owner()) | 894 if (chromeos::UserManager::Get()->current_user_is_owner()) |
898 wifi_network->set_passphrase(passphrase); | 895 wifi_network->set_passphrase(passphrase); |
899 return true; | 896 return true; |
900 } | 897 } |
901 case PROPERTY_INDEX_PASSPHRASE_REQUIRED: { | 898 case PROPERTY_INDEX_PASSPHRASE_REQUIRED: { |
902 bool passphrase_required; | 899 bool passphrase_required; |
903 value.GetAsBoolean(&passphrase_required); | 900 value->GetAsBoolean(&passphrase_required); |
904 if (!value.GetAsBoolean(&passphrase_required)) | 901 if (!value->GetAsBoolean(&passphrase_required)) |
905 break; | 902 break; |
906 wifi_network->set_passphrase_required(passphrase_required); | 903 wifi_network->set_passphrase_required(passphrase_required); |
907 return true; | 904 return true; |
908 } | 905 } |
909 case PROPERTY_INDEX_IDENTITY: { | 906 case PROPERTY_INDEX_IDENTITY: { |
910 std::string identity; | 907 std::string identity; |
911 if (!value.GetAsString(&identity)) | 908 if (!value->GetAsString(&identity)) |
912 break; | 909 break; |
913 wifi_network->set_identity(identity); | 910 wifi_network->set_identity(identity); |
914 return true; | 911 return true; |
915 } | 912 } |
916 case PROPERTY_INDEX_EAP_IDENTITY: { | 913 case PROPERTY_INDEX_EAP_IDENTITY: { |
917 std::string eap_identity; | 914 std::string eap_identity; |
918 if (!value.GetAsString(&eap_identity)) | 915 if (!value->GetAsString(&eap_identity)) |
919 break; | 916 break; |
920 wifi_network->set_eap_identity(eap_identity); | 917 wifi_network->set_eap_identity(eap_identity); |
921 return true; | 918 return true; |
922 } | 919 } |
923 case PROPERTY_INDEX_EAP_METHOD: { | 920 case PROPERTY_INDEX_EAP_METHOD: { |
924 std::string eap_method; | 921 std::string eap_method; |
925 if (!value.GetAsString(&eap_method)) | 922 if (!value->GetAsString(&eap_method)) |
926 break; | 923 break; |
927 wifi_network->set_eap_method(ParseEAPMethod(eap_method)); | 924 wifi_network->set_eap_method(ParseEAPMethod(eap_method)); |
928 return true; | 925 return true; |
929 } | 926 } |
930 case PROPERTY_INDEX_EAP_PHASE_2_AUTH: { | 927 case PROPERTY_INDEX_EAP_PHASE_2_AUTH: { |
931 std::string eap_phase_2_auth; | 928 std::string eap_phase_2_auth; |
932 if (!value.GetAsString(&eap_phase_2_auth)) | 929 if (!value->GetAsString(&eap_phase_2_auth)) |
933 break; | 930 break; |
934 wifi_network->set_eap_phase_2_auth(ParseEAPPhase2Auth(eap_phase_2_auth)); | 931 wifi_network->set_eap_phase_2_auth(ParseEAPPhase2Auth(eap_phase_2_auth)); |
935 return true; | 932 return true; |
936 } | 933 } |
937 case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY: { | 934 case PROPERTY_INDEX_EAP_ANONYMOUS_IDENTITY: { |
938 std::string eap_anonymous_identity; | 935 std::string eap_anonymous_identity; |
939 if (!value.GetAsString(&eap_anonymous_identity)) | 936 if (!value->GetAsString(&eap_anonymous_identity)) |
940 break; | 937 break; |
941 wifi_network->set_eap_anonymous_identity(eap_anonymous_identity); | 938 wifi_network->set_eap_anonymous_identity(eap_anonymous_identity); |
942 return true; | 939 return true; |
943 } | 940 } |
944 case PROPERTY_INDEX_EAP_CERT_ID: { | 941 case PROPERTY_INDEX_EAP_CERT_ID: { |
945 std::string eap_client_cert_pkcs11_id; | 942 std::string eap_client_cert_pkcs11_id; |
946 if (!value.GetAsString(&eap_client_cert_pkcs11_id)) | 943 if (!value->GetAsString(&eap_client_cert_pkcs11_id)) |
947 break; | 944 break; |
948 wifi_network->set_eap_client_cert_pkcs11_id(eap_client_cert_pkcs11_id); | 945 wifi_network->set_eap_client_cert_pkcs11_id(eap_client_cert_pkcs11_id); |
949 return true; | 946 return true; |
950 } | 947 } |
951 case PROPERTY_INDEX_EAP_CA_CERT_NSS: { | 948 case PROPERTY_INDEX_EAP_CA_CERT_NSS: { |
952 std::string eap_server_ca_cert_nss_nickname; | 949 std::string eap_server_ca_cert_nss_nickname; |
953 if (!value.GetAsString(&eap_server_ca_cert_nss_nickname)) | 950 if (!value->GetAsString(&eap_server_ca_cert_nss_nickname)) |
954 break; | 951 break; |
955 wifi_network->set_eap_server_ca_cert_nss_nickname( | 952 wifi_network->set_eap_server_ca_cert_nss_nickname( |
956 eap_server_ca_cert_nss_nickname); | 953 eap_server_ca_cert_nss_nickname); |
957 return true; | 954 return true; |
958 } | 955 } |
959 case PROPERTY_INDEX_EAP_USE_SYSTEM_CAS: { | 956 case PROPERTY_INDEX_EAP_USE_SYSTEM_CAS: { |
960 bool eap_use_system_cas; | 957 bool eap_use_system_cas; |
961 if (!value.GetAsBoolean(&eap_use_system_cas)) | 958 if (!value->GetAsBoolean(&eap_use_system_cas)) |
962 break; | 959 break; |
963 wifi_network->set_eap_use_system_cas(eap_use_system_cas); | 960 wifi_network->set_eap_use_system_cas(eap_use_system_cas); |
964 return true; | 961 return true; |
965 } | 962 } |
966 case PROPERTY_INDEX_EAP_PASSWORD: { | 963 case PROPERTY_INDEX_EAP_PASSWORD: { |
967 std::string eap_passphrase; | 964 std::string eap_passphrase; |
968 if (!value.GetAsString(&eap_passphrase)) | 965 if (!value->GetAsString(&eap_passphrase)) |
969 break; | 966 break; |
970 wifi_network->set_eap_passphrase(eap_passphrase); | 967 wifi_network->set_eap_passphrase(eap_passphrase); |
971 return true; | 968 return true; |
972 } | 969 } |
973 case PROPERTY_INDEX_EAP_CLIENT_CERT: | 970 case PROPERTY_INDEX_EAP_CLIENT_CERT: |
974 case PROPERTY_INDEX_EAP_CLIENT_CERT_NSS: | 971 case PROPERTY_INDEX_EAP_CLIENT_CERT_NSS: |
975 case PROPERTY_INDEX_EAP_PRIVATE_KEY: | 972 case PROPERTY_INDEX_EAP_PRIVATE_KEY: |
976 case PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD: | 973 case PROPERTY_INDEX_EAP_PRIVATE_KEY_PASSWORD: |
977 case PROPERTY_INDEX_EAP_KEY_ID: | 974 case PROPERTY_INDEX_EAP_KEY_ID: |
978 case PROPERTY_INDEX_EAP_CA_CERT: | 975 case PROPERTY_INDEX_EAP_CA_CERT: |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1048 << " Type: " | 1045 << " Type: " |
1049 << ProviderTypeToString(virtual_network->provider_type()); | 1046 << ProviderTypeToString(virtual_network->provider_type()); |
1050 if (virtual_network->provider_type() == PROVIDER_TYPE_L2TP_IPSEC_PSK) { | 1047 if (virtual_network->provider_type() == PROVIDER_TYPE_L2TP_IPSEC_PSK) { |
1051 if (!virtual_network->client_cert_id().empty()) | 1048 if (!virtual_network->client_cert_id().empty()) |
1052 virtual_network->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT); | 1049 virtual_network->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT); |
1053 } | 1050 } |
1054 return true; | 1051 return true; |
1055 } | 1052 } |
1056 | 1053 |
1057 bool NativeVirtualNetworkParser::ParseValue(PropertyIndex index, | 1054 bool NativeVirtualNetworkParser::ParseValue(PropertyIndex index, |
1058 const Value& value, | 1055 Value* value, |
1059 Network* network) { | 1056 Network* network) { |
1060 DCHECK_EQ(TYPE_VPN, network->type()); | 1057 DCHECK_EQ(TYPE_VPN, network->type()); |
1061 VirtualNetwork* virtual_network = static_cast<VirtualNetwork*>(network); | 1058 VirtualNetwork* virtual_network = static_cast<VirtualNetwork*>(network); |
1062 switch (index) { | 1059 switch (index) { |
1063 case PROPERTY_INDEX_PROVIDER: { | 1060 case PROPERTY_INDEX_PROVIDER: { |
1064 DCHECK_EQ(value.GetType(), Value::TYPE_DICTIONARY); | 1061 DCHECK_EQ(value->GetType(), Value::TYPE_DICTIONARY); |
1065 const DictionaryValue& dict = static_cast<const DictionaryValue&>(value); | 1062 const DictionaryValue& dict = static_cast<const DictionaryValue&>(*value); |
1066 for (DictionaryValue::key_iterator iter = dict.begin_keys(); | 1063 for (DictionaryValue::key_iterator iter = dict.begin_keys(); |
1067 iter != dict.end_keys(); ++iter) { | 1064 iter != dict.end_keys(); ++iter) { |
1068 const std::string& key = *iter; | 1065 const std::string& key = *iter; |
1069 Value* provider_value; | 1066 Value* provider_value; |
1070 bool res = dict.GetWithoutPathExpansion(key, &provider_value); | 1067 bool res = dict.GetWithoutPathExpansion(key, &provider_value); |
1071 DCHECK(res); | 1068 DCHECK(res); |
1072 if (res) { | 1069 if (res) { |
1073 PropertyIndex index = mapper().Get(key); | 1070 PropertyIndex index = mapper().Get(key); |
1074 if (!ParseProviderValue(index, *provider_value, virtual_network)) | 1071 if (!ParseProviderValue(index, *provider_value, virtual_network)) |
1075 VLOG(1) << network->name() << ": Provider unhandled key: " << key | 1072 VLOG(1) << network->name() << ": Provider unhandled key: " << key |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1156 static EnumMapper<ProviderType>::Pair table[] = { | 1153 static EnumMapper<ProviderType>::Pair table[] = { |
1157 { kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, | 1154 { kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, |
1158 { kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, | 1155 { kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, |
1159 }; | 1156 }; |
1160 static EnumMapper<ProviderType> parser( | 1157 static EnumMapper<ProviderType> parser( |
1161 table, arraysize(table), PROVIDER_TYPE_MAX); | 1158 table, arraysize(table), PROVIDER_TYPE_MAX); |
1162 return parser.Get(type); | 1159 return parser.Get(type); |
1163 } | 1160 } |
1164 | 1161 |
1165 } // namespace chromeos | 1162 } // namespace chromeos |
OLD | NEW |