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

Side by Side Diff: chrome/browser/chromeos/cros/native_network_parser.cc

Issue 7714004: base: Add AsList() function to Value API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix chromeos Created 9 years, 4 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) 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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/native_network_parser.h ('k') | chrome/browser/chromeos/cros/network_library.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698