Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/ui/webui/options/chromeos/internet_options_handler.h" | 5 #include "chrome/browser/ui/webui/options/chromeos/internet_options_handler.h" |
| 6 | 6 |
| 7 #include <ctype.h> | 7 #include <ctype.h> |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 59 #include "ui/gfx/image/image_skia.h" | 59 #include "ui/gfx/image/image_skia.h" |
| 60 | 60 |
| 61 namespace chromeos { | 61 namespace chromeos { |
| 62 namespace options { | 62 namespace options { |
| 63 | 63 |
| 64 namespace { | 64 namespace { |
| 65 | 65 |
| 66 // Keys for the network description dictionary passed to the web ui. Make sure | 66 // Keys for the network description dictionary passed to the web ui. Make sure |
| 67 // to keep the strings in sync with what the JavaScript side uses. | 67 // to keep the strings in sync with what the JavaScript side uses. |
| 68 const char kNetworkInfoKeyIconURL[] = "iconURL"; | 68 const char kNetworkInfoKeyIconURL[] = "iconURL"; |
| 69 const char kNetworkInfoKeyServicePath[] = "servicePath"; | |
| 70 const char kNetworkInfoKeyPolicyManaged[] = "policyManaged"; | 69 const char kNetworkInfoKeyPolicyManaged[] = "policyManaged"; |
| 71 | 70 |
| 72 // These are types of name server selections from the web ui. | 71 // These are types of name server selections from the web ui. |
| 73 const char kNameServerTypeAutomatic[] = "automatic"; | 72 const char kNameServerTypeAutomatic[] = "automatic"; |
| 74 const char kNameServerTypeGoogle[] = "google"; | 73 const char kNameServerTypeGoogle[] = "google"; |
| 75 | 74 |
| 76 // Google public name servers (DNS). | 75 // Google public name servers (DNS). |
| 77 const char kGoogleNameServers[] = "8.8.4.4,8.8.8.8"; | 76 const char kGoogleNameServers[] = "8.8.4.4,8.8.8.8"; |
| 78 | 77 |
| 79 // Functions we call in JavaScript. | 78 // Functions we call in JavaScript. |
| 80 const char kRefreshNetworkDataFunction[] = | 79 const char kRefreshNetworkDataFunction[] = |
| 81 "options.network.NetworkList.refreshNetworkData"; | 80 "options.network.NetworkList.refreshNetworkData"; |
| 82 const char kSetDefaultNetworkIconsFunction[] = | 81 const char kSetDefaultNetworkIconsFunction[] = |
| 83 "options.network.NetworkList.setDefaultNetworkIcons"; | 82 "options.network.NetworkList.setDefaultNetworkIcons"; |
| 83 const char kSendNetworkDetailsFunction[] = | |
| 84 "options.internet.DetailsInternetPage.sendNetworkDetails"; | |
| 84 const char kShowDetailedInfoFunction[] = | 85 const char kShowDetailedInfoFunction[] = |
| 85 "options.internet.DetailsInternetPage.showDetailedInfo"; | 86 "options.internet.DetailsInternetPage.showDetailedInfo"; |
| 86 const char kUpdateConnectionDataFunction[] = | 87 const char kUpdateConnectionDataFunction[] = |
| 87 "options.internet.DetailsInternetPage.updateConnectionData"; | 88 "options.internet.DetailsInternetPage.updateConnectionData"; |
| 88 const char kUpdateCarrierFunction[] = | 89 const char kUpdateCarrierFunction[] = |
| 89 "options.internet.DetailsInternetPage.updateCarrier"; | 90 "options.internet.DetailsInternetPage.updateCarrier"; |
| 90 | 91 |
| 91 // These are used to register message handlers with JavaScript. | 92 // These are used to register message handlers with JavaScript. |
| 92 const char kChangePinMessage[] = "changePin"; | |
| 93 const char kDisableCellularMessage[] = "disableCellular"; | |
| 94 const char kDisableWifiMessage[] = "disableWifi"; | |
| 95 const char kDisableWimaxMessage[] = "disableWimax"; | |
| 96 const char kEnableCellularMessage[] = "enableCellular"; | |
| 97 const char kEnableWifiMessage[] = "enableWifi"; | |
| 98 const char kEnableWimaxMessage[] = "enableWimax"; | |
| 99 const char kNetworkCommandMessage[] = "networkCommand"; | 93 const char kNetworkCommandMessage[] = "networkCommand"; |
| 100 const char kRefreshNetworksMessage[] = "refreshNetworks"; | |
| 101 const char kSetApnMessage[] = "setApn"; | 94 const char kSetApnMessage[] = "setApn"; |
| 102 const char kSetAutoConnectMessage[] = "setAutoConnect"; | 95 const char kSetAutoConnectMessage[] = "setAutoConnect"; |
| 103 const char kSetCarrierMessage[] = "setCarrier"; | 96 const char kSetCarrierMessage[] = "setCarrier"; |
| 104 const char kSetIPConfigMessage[] = "setIPConfig"; | 97 const char kSetIPConfigMessage[] = "setIPConfig"; |
| 105 const char kSetPreferNetworkMessage[] = "setPreferNetwork"; | 98 const char kSetPreferNetworkMessage[] = "setPreferNetwork"; |
| 106 const char kSetServerHostname[] = "setServerHostname"; | 99 const char kSetServerHostname[] = "setServerHostname"; |
| 107 const char kSetSimCardLockMessage[] = "setSimCardLock"; | |
| 108 const char kShowMorePlanInfoMessage[] = "showMorePlanInfo"; | 100 const char kShowMorePlanInfoMessage[] = "showMorePlanInfo"; |
| 101 const char kSimOperationMessage[] = "simOperation"; | |
| 102 | |
| 103 // The following messages match the signature and will be replaced with | |
| 104 // networkingPrivate methods: | |
|
armansito
2014/09/16 16:40:42
Add TODO?
stevenjb
2014/09/16 17:32:58
Done.
| |
| 105 const char kDisableNetworkTypeMessage[] = "disableNetworkType"; | |
| 106 const char kEnableNetworkTypeMessage[] = "enableNetworkType"; | |
| 107 const char kGetManagedPropertiesMessage[] = "getManagedProperties"; | |
| 108 const char kRequestNetworkScanMessage[] = "requestNetworkScan"; | |
| 109 const char kStartConnectMessage[] = "startConnect"; | |
| 110 const char kStartDisconnectMessage[] = "startDisconnect"; | |
| 109 | 111 |
| 110 // These are strings used to communicate with JavaScript. | 112 // These are strings used to communicate with JavaScript. |
| 111 const char kTagActivate[] = "activate"; | 113 const char kTagActivate[] = "activate"; |
| 112 const char kTagAddConnection[] = "add"; | 114 const char kTagAddConnection[] = "add"; |
| 113 const char kTagCarrierSelectFlag[] = "showCarrierSelect"; | 115 const char kTagCarrierSelectFlag[] = "showCarrierSelect"; |
| 114 const char kTagCellularAvailable[] = "cellularAvailable"; | 116 const char kTagCellularAvailable[] = "cellularAvailable"; |
| 115 const char kTagCellularEnabled[] = "cellularEnabled"; | 117 const char kTagCellularEnabled[] = "cellularEnabled"; |
| 118 const char kTagCellularSimAbsent[] = "cellularSimAbsent"; | |
| 119 const char kTagCellularSimLockType[] = "cellularSimLockType"; | |
| 116 const char kTagCellularSupportsScan[] = "cellularSupportsScan"; | 120 const char kTagCellularSupportsScan[] = "cellularSupportsScan"; |
| 117 const char kTagConfigure[] = "configure"; | 121 const char kTagConfigure[] = "configure"; |
| 118 const char kTagConnect[] = "connect"; | |
| 119 const char kTagDeviceConnected[] = "deviceConnected"; | |
| 120 const char kTagDisconnect[] = "disconnect"; | |
| 121 const char kTagErrorMessage[] = "errorMessage"; | |
| 122 const char kTagForget[] = "forget"; | 122 const char kTagForget[] = "forget"; |
| 123 const char kTagOptions[] = "options"; | |
| 124 const char kTagRememberedList[] = "rememberedList"; | 123 const char kTagRememberedList[] = "rememberedList"; |
| 124 const char kTagShowDetails[] = "showDetails"; | |
| 125 const char kTagShowViewAccountButton[] = "showViewAccountButton"; | 125 const char kTagShowViewAccountButton[] = "showViewAccountButton"; |
| 126 const char kTagSimOpChangePin[] = "changePin"; | |
| 127 const char kTagSimOpConfigure[] = "configure"; | |
| 128 const char kTagSimOpSetLocked[] = "setLocked"; | |
| 129 const char kTagSimOpSetUnlocked[] = "setUnlocked"; | |
| 130 const char kTagSimOpUnlock[] = "unlock"; | |
| 126 const char kTagTrue[] = "true"; | 131 const char kTagTrue[] = "true"; |
| 127 const char kTagVpnList[] = "vpnList"; | 132 const char kTagVpnList[] = "vpnList"; |
| 128 const char kTagWifiAvailable[] = "wifiAvailable"; | 133 const char kTagWifiAvailable[] = "wifiAvailable"; |
| 129 const char kTagWifiEnabled[] = "wifiEnabled"; | 134 const char kTagWifiEnabled[] = "wifiEnabled"; |
| 130 const char kTagWimaxAvailable[] = "wimaxAvailable"; | 135 const char kTagWimaxAvailable[] = "wimaxAvailable"; |
| 131 const char kTagWimaxEnabled[] = "wimaxEnabled"; | 136 const char kTagWimaxEnabled[] = "wimaxEnabled"; |
| 132 const char kTagWiredList[] = "wiredList"; | 137 const char kTagWiredList[] = "wiredList"; |
| 133 const char kTagWirelessList[] = "wirelessList"; | 138 const char kTagWirelessList[] = "wirelessList"; |
| 134 | 139 |
| 140 // Pseudo-ONC chrome specific properties appended to the ONC dictionary. | |
| 141 const char kTagErrorMessage[] = "errorMessage"; | |
| 142 const char kNetworkInfoKeyServicePath[] = "servicePath"; | |
| 143 const char kNetworkInfoKeyGUID[] = "GUID"; | |
| 144 | |
| 135 const int kPreferredPriority = 1; | 145 const int kPreferredPriority = 1; |
| 136 | 146 |
| 137 void ShillError(const std::string& function, | 147 void ShillError(const std::string& function, |
| 138 const std::string& error_name, | 148 const std::string& error_name, |
| 139 scoped_ptr<base::DictionaryValue> error_data) { | 149 scoped_ptr<base::DictionaryValue> error_data) { |
| 140 // UpdateConnectionData may send requests for stale services; ignore | 150 // UpdateConnectionData may send requests for stale services; ignore |
| 141 // these errors. | 151 // these errors. |
| 142 if (function == "UpdateConnectionData" && | 152 if (function == "UpdateConnectionData" && |
| 143 error_name == network_handler::kDBusFailedError) | 153 error_name == network_handler::kDBusFailedError) |
| 144 return; | 154 return; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 226 } | 236 } |
| 227 | 237 |
| 228 return true; | 238 return true; |
| 229 } | 239 } |
| 230 | 240 |
| 231 scoped_ptr<base::DictionaryValue> PopulateConnectionDetails( | 241 scoped_ptr<base::DictionaryValue> PopulateConnectionDetails( |
| 232 const NetworkState* network, | 242 const NetworkState* network, |
| 233 const base::DictionaryValue& onc_properties) { | 243 const base::DictionaryValue& onc_properties) { |
| 234 scoped_ptr<base::DictionaryValue> dictionary(onc_properties.DeepCopy()); | 244 scoped_ptr<base::DictionaryValue> dictionary(onc_properties.DeepCopy()); |
| 235 | 245 |
| 246 // Append Service Path for now. | |
| 236 dictionary->SetString(kNetworkInfoKeyServicePath, network->path()); | 247 dictionary->SetString(kNetworkInfoKeyServicePath, network->path()); |
| 248 // Append a Chrome specific translated error message. | |
| 237 dictionary->SetString( | 249 dictionary->SetString( |
| 238 kTagErrorMessage, | 250 kTagErrorMessage, |
| 239 ash::network_connect::ErrorString(network->error(), network->path())); | 251 ash::network_connect::ErrorString(network->error(), network->path())); |
| 240 | 252 |
| 241 const std::string& type = network->type(); | |
| 242 | |
| 243 const NetworkState* connected_network = | |
| 244 NetworkHandler::Get()->network_state_handler()->ConnectedNetworkByType( | |
| 245 NetworkTypePattern::Primitive(type)); | |
| 246 dictionary->SetBoolean(kTagDeviceConnected, connected_network != NULL); | |
| 247 | |
| 248 if (type == shill::kTypeCellular) { | |
| 249 dictionary->SetBoolean( | |
| 250 kTagCarrierSelectFlag, | |
| 251 CommandLine::ForCurrentProcess() | |
| 252 ->HasSwitch(chromeos::switches::kEnableCarrierSwitching)); | |
| 253 dictionary->SetBoolean(kTagShowViewAccountButton, | |
| 254 ShowViewAccountButton(network)); | |
| 255 } | |
| 256 return dictionary.Pass(); | 253 return dictionary.Pass(); |
| 257 } | 254 } |
| 258 | 255 |
| 259 // Helper methods for SetIPConfigProperties | 256 // Helper methods for SetIPConfigProperties |
| 260 bool AppendPropertyKeyIfPresent(const std::string& key, | 257 bool AppendPropertyKeyIfPresent(const std::string& key, |
| 261 const base::DictionaryValue& old_properties, | 258 const base::DictionaryValue& old_properties, |
| 262 std::vector<std::string>* property_keys) { | 259 std::vector<std::string>* property_keys) { |
| 263 if (old_properties.HasKey(key)) { | 260 if (old_properties.HasKey(key)) { |
| 264 property_keys->push_back(key); | 261 property_keys->push_back(key); |
| 265 return true; | 262 return true; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 347 dictionary); | 344 dictionary); |
| 348 NetworkHandler::Get()->network_state_handler()->RequestScan(); | 345 NetworkHandler::Get()->network_state_handler()->RequestScan(); |
| 349 RefreshNetworkData(); | 346 RefreshNetworkData(); |
| 350 } | 347 } |
| 351 | 348 |
| 352 void InternetOptionsHandler::RegisterMessages() { | 349 void InternetOptionsHandler::RegisterMessages() { |
| 353 // Setup handlers specific to this panel. | 350 // Setup handlers specific to this panel. |
| 354 web_ui()->RegisterMessageCallback(kNetworkCommandMessage, | 351 web_ui()->RegisterMessageCallback(kNetworkCommandMessage, |
| 355 base::Bind(&InternetOptionsHandler::NetworkCommandCallback, | 352 base::Bind(&InternetOptionsHandler::NetworkCommandCallback, |
| 356 base::Unretained(this))); | 353 base::Unretained(this))); |
| 357 web_ui()->RegisterMessageCallback(kRefreshNetworksMessage, | |
| 358 base::Bind(&InternetOptionsHandler::RefreshNetworksCallback, | |
| 359 base::Unretained(this))); | |
| 360 web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage, | 354 web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage, |
| 361 base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback, | 355 base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback, |
| 362 base::Unretained(this))); | 356 base::Unretained(this))); |
| 363 web_ui()->RegisterMessageCallback(kSetAutoConnectMessage, | 357 web_ui()->RegisterMessageCallback(kSetAutoConnectMessage, |
| 364 base::Bind(&InternetOptionsHandler::SetAutoConnectCallback, | 358 base::Bind(&InternetOptionsHandler::SetAutoConnectCallback, |
| 365 base::Unretained(this))); | 359 base::Unretained(this))); |
| 366 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, | 360 web_ui()->RegisterMessageCallback(kSetIPConfigMessage, |
| 367 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, | 361 base::Bind(&InternetOptionsHandler::SetIPConfigCallback, |
| 368 base::Unretained(this))); | 362 base::Unretained(this))); |
| 369 web_ui()->RegisterMessageCallback(kEnableWifiMessage, | |
| 370 base::Bind(&InternetOptionsHandler::EnableWifiCallback, | |
| 371 base::Unretained(this))); | |
| 372 web_ui()->RegisterMessageCallback(kDisableWifiMessage, | |
| 373 base::Bind(&InternetOptionsHandler::DisableWifiCallback, | |
| 374 base::Unretained(this))); | |
| 375 web_ui()->RegisterMessageCallback(kEnableCellularMessage, | |
| 376 base::Bind(&InternetOptionsHandler::EnableCellularCallback, | |
| 377 base::Unretained(this))); | |
| 378 web_ui()->RegisterMessageCallback(kDisableCellularMessage, | |
| 379 base::Bind(&InternetOptionsHandler::DisableCellularCallback, | |
| 380 base::Unretained(this))); | |
| 381 web_ui()->RegisterMessageCallback(kEnableWimaxMessage, | |
| 382 base::Bind(&InternetOptionsHandler::EnableWimaxCallback, | |
| 383 base::Unretained(this))); | |
| 384 web_ui()->RegisterMessageCallback(kDisableWimaxMessage, | |
| 385 base::Bind(&InternetOptionsHandler::DisableWimaxCallback, | |
| 386 base::Unretained(this))); | |
| 387 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, | 363 web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, |
| 388 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, | 364 base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, |
| 389 base::Unretained(this))); | 365 base::Unretained(this))); |
| 390 web_ui()->RegisterMessageCallback(kSetApnMessage, | 366 web_ui()->RegisterMessageCallback(kSetApnMessage, |
| 391 base::Bind(&InternetOptionsHandler::SetApnCallback, | 367 base::Bind(&InternetOptionsHandler::SetApnCallback, |
| 392 base::Unretained(this))); | 368 base::Unretained(this))); |
| 393 web_ui()->RegisterMessageCallback(kSetCarrierMessage, | 369 web_ui()->RegisterMessageCallback(kSetCarrierMessage, |
| 394 base::Bind(&InternetOptionsHandler::SetCarrierCallback, | 370 base::Bind(&InternetOptionsHandler::SetCarrierCallback, |
| 395 base::Unretained(this))); | 371 base::Unretained(this))); |
| 396 web_ui()->RegisterMessageCallback(kSetSimCardLockMessage, | 372 web_ui()->RegisterMessageCallback(kSimOperationMessage, |
| 397 base::Bind(&InternetOptionsHandler::SetSimCardLockCallback, | 373 base::Bind(&InternetOptionsHandler::SimOperationCallback, |
| 398 base::Unretained(this))); | |
| 399 web_ui()->RegisterMessageCallback(kChangePinMessage, | |
| 400 base::Bind(&InternetOptionsHandler::ChangePinCallback, | |
| 401 base::Unretained(this))); | 374 base::Unretained(this))); |
| 402 web_ui()->RegisterMessageCallback(kSetServerHostname, | 375 web_ui()->RegisterMessageCallback(kSetServerHostname, |
| 403 base::Bind(&InternetOptionsHandler::SetServerHostnameCallback, | 376 base::Bind(&InternetOptionsHandler::SetServerHostnameCallback, |
| 404 base::Unretained(this))); | 377 base::Unretained(this))); |
| 405 } | |
| 406 | 378 |
| 407 void InternetOptionsHandler::EnableWifiCallback(const base::ListValue* args) { | 379 // networkingPrivate methods |
| 408 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | 380 web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage, |
| 409 NetworkTypePattern::WiFi(), true, | 381 base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback, |
| 410 base::Bind(&ShillError, "EnableWifiCallback")); | 382 base::Unretained(this))); |
| 411 } | 383 web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage, |
| 412 | 384 base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback, |
| 413 void InternetOptionsHandler::DisableWifiCallback(const base::ListValue* args) { | 385 base::Unretained(this))); |
| 414 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | 386 web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage, |
| 415 NetworkTypePattern::WiFi(), false, | 387 base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback, |
| 416 base::Bind(&ShillError, "DisableWifiCallback")); | 388 base::Unretained(this))); |
| 417 } | 389 web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage, |
| 418 | 390 base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback, |
| 419 void InternetOptionsHandler::EnableCellularCallback( | 391 base::Unretained(this))); |
| 420 const base::ListValue* args) { | 392 web_ui()->RegisterMessageCallback(kStartConnectMessage, |
| 421 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); | 393 base::Bind(&InternetOptionsHandler::StartConnectCallback, |
| 422 const DeviceState* device = | 394 base::Unretained(this))); |
| 423 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); | 395 web_ui()->RegisterMessageCallback(kStartDisconnectMessage, |
| 424 if (!device) { | 396 base::Bind(&InternetOptionsHandler::StartDisconnectCallback, |
| 425 LOG(ERROR) << "Mobile device not found."; | 397 base::Unretained(this))); |
| 426 return; | |
| 427 } | |
| 428 if (!device->sim_lock_type().empty()) { | |
| 429 SimDialogDelegate::ShowDialog(GetNativeWindow(), | |
| 430 SimDialogDelegate::SIM_DIALOG_UNLOCK); | |
| 431 return; | |
| 432 } | |
| 433 if (!handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { | |
| 434 handler->SetTechnologyEnabled( | |
| 435 NetworkTypePattern::Cellular(), true, | |
| 436 base::Bind(&ShillError, "EnableCellularCallback")); | |
| 437 return; | |
| 438 } | |
| 439 if (device->IsSimAbsent()) { | |
| 440 mobile_config_ui::DisplayConfigDialog(); | |
| 441 return; | |
| 442 } | |
| 443 LOG(ERROR) << "EnableCellularCallback called for enabled mobile device"; | |
| 444 } | |
| 445 | |
| 446 void InternetOptionsHandler::DisableCellularCallback( | |
| 447 const base::ListValue* args) { | |
| 448 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | |
| 449 NetworkTypePattern::Mobile(), false, | |
| 450 base::Bind(&ShillError, "DisableCellularCallback")); | |
| 451 } | |
| 452 | |
| 453 void InternetOptionsHandler::EnableWimaxCallback(const base::ListValue* args) { | |
| 454 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | |
| 455 NetworkTypePattern::Wimax(), true, | |
| 456 base::Bind(&ShillError, "EnableWimaxCallback")); | |
| 457 } | |
| 458 | |
| 459 void InternetOptionsHandler::DisableWimaxCallback(const base::ListValue* args) { | |
| 460 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | |
| 461 NetworkTypePattern::Wimax(), false, | |
| 462 base::Bind(&ShillError, "DisableWimaxCallback")); | |
| 463 } | 398 } |
| 464 | 399 |
| 465 void InternetOptionsHandler::ShowMorePlanInfoCallback( | 400 void InternetOptionsHandler::ShowMorePlanInfoCallback( |
| 466 const base::ListValue* args) { | 401 const base::ListValue* args) { |
| 467 if (!web_ui()) | 402 if (!web_ui()) |
| 468 return; | 403 return; |
| 469 std::string service_path; | 404 std::string service_path; |
| 470 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { | 405 if (args->GetSize() != 1 || !args->GetString(0, &service_path)) { |
| 471 NOTREACHED(); | 406 NOTREACHED(); |
| 472 return; | 407 return; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 533 base::Bind(&ShillError, "SetApnProperties")); | 468 base::Bind(&ShillError, "SetApnProperties")); |
| 534 } | 469 } |
| 535 | 470 |
| 536 void InternetOptionsHandler::CarrierStatusCallback() { | 471 void InternetOptionsHandler::CarrierStatusCallback() { |
| 537 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); | 472 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); |
| 538 const DeviceState* device = | 473 const DeviceState* device = |
| 539 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); | 474 handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); |
| 540 if (device && (device->carrier() == shill::kCarrierSprint)) { | 475 if (device && (device->carrier() == shill::kCarrierSprint)) { |
| 541 const NetworkState* network = | 476 const NetworkState* network = |
| 542 handler->FirstNetworkByType(NetworkTypePattern::Cellular()); | 477 handler->FirstNetworkByType(NetworkTypePattern::Cellular()); |
| 543 if (network) { | 478 if (network && network->path() == details_path_) { |
| 544 ash::network_connect::ActivateCellular(network->path()); | 479 ash::network_connect::ActivateCellular(network->path()); |
| 545 UpdateConnectionData(network->path()); | 480 UpdateConnectionData(network->path()); |
| 546 } | 481 } |
| 547 } | 482 } |
| 548 UpdateCarrier(); | 483 UpdateCarrier(); |
| 549 } | 484 } |
| 550 | 485 |
| 551 void InternetOptionsHandler::SetCarrierCallback(const base::ListValue* args) { | 486 void InternetOptionsHandler::SetCarrierCallback(const base::ListValue* args) { |
| 552 std::string service_path; | 487 std::string service_path; |
| 553 std::string carrier; | 488 std::string carrier; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 564 return; | 499 return; |
| 565 } | 500 } |
| 566 NetworkHandler::Get()->network_device_handler()->SetCarrier( | 501 NetworkHandler::Get()->network_device_handler()->SetCarrier( |
| 567 device->path(), | 502 device->path(), |
| 568 carrier, | 503 carrier, |
| 569 base::Bind(&InternetOptionsHandler::CarrierStatusCallback, | 504 base::Bind(&InternetOptionsHandler::CarrierStatusCallback, |
| 570 weak_factory_.GetWeakPtr()), | 505 weak_factory_.GetWeakPtr()), |
| 571 base::Bind(&ShillError, "SetCarrierCallback")); | 506 base::Bind(&ShillError, "SetCarrierCallback")); |
| 572 } | 507 } |
| 573 | 508 |
| 574 void InternetOptionsHandler::SetSimCardLockCallback( | 509 void InternetOptionsHandler::SimOperationCallback(const base::ListValue* args) { |
| 575 const base::ListValue* args) { | 510 std::string operation; |
| 576 bool require_pin_new_value; | 511 if (args->GetSize() != 1 || !args->GetString(0, &operation)) { |
| 577 if (!args->GetBoolean(0, &require_pin_new_value)) { | |
| 578 NOTREACHED(); | 512 NOTREACHED(); |
| 579 return; | 513 return; |
| 580 } | 514 } |
| 515 if (operation == kTagSimOpConfigure) { | |
| 516 mobile_config_ui::DisplayConfigDialog(); | |
| 517 return; | |
| 518 } | |
| 581 // 1. Bring up SIM unlock dialog, pass new RequirePin setting in URL. | 519 // 1. Bring up SIM unlock dialog, pass new RequirePin setting in URL. |
| 582 // 2. Dialog will ask for current PIN in any case. | 520 // 2. Dialog will ask for current PIN in any case. |
| 583 // 3. If card is locked it will first call PIN unlock operation | 521 // 3. If card is locked it will first call PIN unlock operation |
| 584 // 4. Then it will call Set RequirePin, passing the same PIN. | 522 // 4. Then it will call Set RequirePin, passing the same PIN. |
| 585 // 5. The dialog may change device properties, in which case | 523 // 5. The dialog may change device properties, in which case |
| 586 // DevicePropertiesUpdated() will get called which will update the UI. | 524 // DevicePropertiesUpdated() will get called which will update the UI. |
| 587 SimDialogDelegate::SimDialogMode mode; | 525 SimDialogDelegate::SimDialogMode mode; |
| 588 if (require_pin_new_value) | 526 if (operation == kTagSimOpSetLocked) { |
| 589 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_ON; | 527 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_ON; |
| 590 else | 528 } else if (operation == kTagSimOpSetUnlocked) { |
| 591 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_OFF; | 529 mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_OFF; |
| 530 } else if (operation == kTagSimOpUnlock) { | |
| 531 mode = SimDialogDelegate::SIM_DIALOG_UNLOCK; | |
| 532 } else if (operation == kTagSimOpChangePin) { | |
| 533 mode = SimDialogDelegate::SIM_DIALOG_CHANGE_PIN; | |
| 534 } else { | |
| 535 NOTREACHED(); | |
| 536 return; | |
| 537 } | |
| 592 SimDialogDelegate::ShowDialog(GetNativeWindow(), mode); | 538 SimDialogDelegate::ShowDialog(GetNativeWindow(), mode); |
| 593 } | 539 } |
| 594 | 540 |
| 595 void InternetOptionsHandler::ChangePinCallback(const base::ListValue* args) { | 541 //////////////////////////////////////////////////////////////////////////////// |
| 596 SimDialogDelegate::ShowDialog(GetNativeWindow(), | 542 // networkingPrivate implementation methods |
|
armansito
2014/09/16 16:40:42
Add a note saying that these will be superseded by
stevenjb
2014/09/16 17:32:58
Done.
| |
| 597 SimDialogDelegate::SIM_DIALOG_CHANGE_PIN); | 543 |
| 544 void InternetOptionsHandler::DisableNetworkTypeCallback( | |
| 545 const base::ListValue* args) { | |
| 546 std::string type; | |
| 547 if (!args->GetString(0, &type)) { | |
| 548 NOTREACHED(); | |
| 549 return; | |
| 550 } | |
| 551 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | |
| 552 chromeos::onc::NetworkTypePatternFromOncType(type), false, | |
| 553 base::Bind(&ShillError, "DisableNetworkType")); | |
| 598 } | 554 } |
| 599 | 555 |
| 600 void InternetOptionsHandler::RefreshNetworksCallback( | 556 void InternetOptionsHandler::EnableNetworkTypeCallback( |
| 557 const base::ListValue* args) { | |
| 558 std::string type; | |
| 559 if (!args->GetString(0, &type)) { | |
| 560 NOTREACHED(); | |
| 561 return; | |
| 562 } | |
| 563 NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( | |
| 564 chromeos::onc::NetworkTypePatternFromOncType(type), true, | |
| 565 base::Bind(&ShillError, "EnableNetworkType")); | |
| 566 } | |
| 567 | |
| 568 void InternetOptionsHandler::GetManagedPropertiesCallback( | |
| 569 const base::ListValue* args) { | |
| 570 std::string service_path; | |
| 571 if (!args->GetString(0, &service_path)) { | |
| 572 NOTREACHED(); | |
| 573 return; | |
| 574 } | |
| 575 NetworkHandler::Get()->managed_network_configuration_handler() | |
| 576 ->GetManagedProperties( | |
| 577 LoginState::Get()->primary_user_hash(), | |
| 578 service_path, | |
| 579 base::Bind( | |
| 580 &InternetOptionsHandler::PopulateDictionaryDetailsCallback, | |
| 581 weak_factory_.GetWeakPtr()), | |
| 582 base::Bind(&ShillError, "GetManagedProperties")); | |
| 583 } | |
| 584 | |
| 585 void InternetOptionsHandler::RequestNetworkScanCallback( | |
| 601 const base::ListValue* args) { | 586 const base::ListValue* args) { |
| 602 NetworkHandler::Get()->network_state_handler()->RequestScan(); | 587 NetworkHandler::Get()->network_state_handler()->RequestScan(); |
| 603 } | 588 } |
| 604 | 589 |
| 590 void InternetOptionsHandler::StartConnectCallback(const base::ListValue* args) { | |
| 591 std::string service_path; | |
| 592 if (!args->GetString(0, &service_path)) { | |
| 593 NOTREACHED(); | |
| 594 return; | |
| 595 } | |
| 596 ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow()); | |
| 597 } | |
| 598 | |
| 599 void InternetOptionsHandler::StartDisconnectCallback( | |
| 600 const base::ListValue* args) { | |
| 601 std::string service_path; | |
| 602 if (!args->GetString(0, &service_path)) { | |
| 603 NOTREACHED(); | |
| 604 return; | |
| 605 } | |
| 606 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork( | |
| 607 service_path, | |
| 608 base::Bind(&base::DoNothing), | |
| 609 base::Bind(&ShillError, "StartDisconnectCallback")); | |
| 610 } | |
| 611 | |
| 612 //////////////////////////////////////////////////////////////////////////////// | |
| 613 | |
| 605 std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const { | 614 std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const { |
| 606 gfx::ImageSkia* icon = | 615 gfx::ImageSkia* icon = |
| 607 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); | 616 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); |
| 608 gfx::ImageSkiaRep image_rep = icon->GetRepresentation( | 617 gfx::ImageSkiaRep image_rep = icon->GetRepresentation( |
| 609 web_ui()->GetDeviceScaleFactor()); | 618 web_ui()->GetDeviceScaleFactor()); |
| 610 return webui::GetBitmapDataUrl(image_rep.sk_bitmap()); | 619 return webui::GetBitmapDataUrl(image_rep.sk_bitmap()); |
| 611 } | 620 } |
| 612 | 621 |
| 613 void InternetOptionsHandler::RefreshNetworkData() { | 622 void InternetOptionsHandler::RefreshNetworkData() { |
| 614 base::DictionaryValue dictionary; | 623 base::DictionaryValue dictionary; |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 652 void InternetOptionsHandler::NetworkListChanged() { | 661 void InternetOptionsHandler::NetworkListChanged() { |
| 653 if (!web_ui()) | 662 if (!web_ui()) |
| 654 return; | 663 return; |
| 655 RefreshNetworkData(); | 664 RefreshNetworkData(); |
| 656 } | 665 } |
| 657 | 666 |
| 658 void InternetOptionsHandler::NetworkConnectionStateChanged( | 667 void InternetOptionsHandler::NetworkConnectionStateChanged( |
| 659 const NetworkState* network) { | 668 const NetworkState* network) { |
| 660 if (!web_ui()) | 669 if (!web_ui()) |
| 661 return; | 670 return; |
| 662 // Update the connection data for the detailed view when the connection state | 671 if (network->path() == details_path_) |
| 663 // of any network changes. | 672 UpdateConnectionData(network->path()); |
| 664 if (!details_path_.empty()) | |
| 665 UpdateConnectionData(details_path_); | |
| 666 } | 673 } |
| 667 | 674 |
| 668 void InternetOptionsHandler::NetworkPropertiesUpdated( | 675 void InternetOptionsHandler::NetworkPropertiesUpdated( |
| 669 const NetworkState* network) { | 676 const NetworkState* network) { |
| 670 if (!web_ui()) | 677 if (!web_ui()) |
| 671 return; | 678 return; |
| 672 RefreshNetworkData(); | 679 RefreshNetworkData(); |
| 673 UpdateConnectionData(network->path()); | 680 if (network->path() == details_path_) |
| 681 UpdateConnectionData(network->path()); | |
| 674 } | 682 } |
| 675 | 683 |
| 676 void InternetOptionsHandler::DevicePropertiesUpdated( | 684 void InternetOptionsHandler::DevicePropertiesUpdated( |
| 677 const DeviceState* device) { | 685 const DeviceState* device) { |
| 678 if (!web_ui()) | 686 if (!web_ui()) |
| 679 return; | 687 return; |
| 680 if (device->type() != shill::kTypeCellular) | 688 if (device->type() != shill::kTypeCellular) |
| 681 return; | 689 return; |
| 682 const NetworkState* network = | 690 const NetworkState* network = |
| 683 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( | 691 NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( |
| 684 NetworkTypePattern::Cellular()); | 692 NetworkTypePattern::Cellular()); |
| 685 if (network) | 693 if (network && network->path() == details_path_) |
| 686 UpdateConnectionData(network->path()); // Update sim lock status. | 694 UpdateConnectionData(network->path()); |
| 687 } | 695 } |
| 688 | 696 |
| 689 void InternetOptionsHandler::SetServerHostnameCallback( | 697 void InternetOptionsHandler::SetServerHostnameCallback( |
| 690 const base::ListValue* args) { | 698 const base::ListValue* args) { |
| 691 std::string service_path, server_hostname; | 699 std::string service_path, server_hostname; |
| 692 if (args->GetSize() < 2 || | 700 if (args->GetSize() < 2 || |
| 693 !args->GetString(0, &service_path) || | 701 !args->GetString(0, &service_path) || |
| 694 !args->GetString(1, &server_hostname)) { | 702 !args->GetString(1, &server_hostname)) { |
| 695 NOTREACHED(); | 703 NOTREACHED(); |
| 696 return; | 704 return; |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 832 } | 840 } |
| 833 | 841 |
| 834 void InternetOptionsHandler::PopulateDictionaryDetailsCallback( | 842 void InternetOptionsHandler::PopulateDictionaryDetailsCallback( |
| 835 const std::string& service_path, | 843 const std::string& service_path, |
| 836 const base::DictionaryValue& onc_properties) { | 844 const base::DictionaryValue& onc_properties) { |
| 837 const NetworkState* network = GetNetworkState(service_path); | 845 const NetworkState* network = GetNetworkState(service_path); |
| 838 if (!network) { | 846 if (!network) { |
| 839 LOG(ERROR) << "Network properties not found: " << service_path; | 847 LOG(ERROR) << "Network properties not found: " << service_path; |
| 840 return; | 848 return; |
| 841 } | 849 } |
| 842 | |
| 843 details_path_ = service_path; | |
| 844 | |
| 845 scoped_ptr<base::DictionaryValue> dictionary = | 850 scoped_ptr<base::DictionaryValue> dictionary = |
| 846 PopulateConnectionDetails(network, onc_properties); | 851 PopulateConnectionDetails(network, onc_properties); |
| 847 | 852 |
| 848 // Show details dialog | 853 // Show details dialog |
| 849 web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary); | 854 web_ui()->CallJavascriptFunction(kSendNetworkDetailsFunction, *dictionary); |
| 850 } | 855 } |
| 851 | 856 |
| 852 gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const { | 857 gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const { |
| 853 return web_ui()->GetWebContents()->GetTopLevelNativeWindow(); | 858 return web_ui()->GetWebContents()->GetTopLevelNativeWindow(); |
| 854 } | 859 } |
| 855 | 860 |
| 856 float InternetOptionsHandler::GetScaleFactor() const { | 861 float InternetOptionsHandler::GetScaleFactor() const { |
| 857 return web_ui()->GetDeviceScaleFactor(); | 862 return web_ui()->GetDeviceScaleFactor(); |
| 858 } | 863 } |
| 859 | 864 |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 881 } | 886 } |
| 882 // Process commands that do not require an existing network. | 887 // Process commands that do not require an existing network. |
| 883 if (command == kTagAddConnection) { | 888 if (command == kTagAddConnection) { |
| 884 AddConnection(type); | 889 AddConnection(type); |
| 885 } else if (command == kTagForget) { | 890 } else if (command == kTagForget) { |
| 886 NetworkHandler::Get()->network_configuration_handler()-> | 891 NetworkHandler::Get()->network_configuration_handler()-> |
| 887 RemoveConfiguration( | 892 RemoveConfiguration( |
| 888 service_path, | 893 service_path, |
| 889 base::Bind(&base::DoNothing), | 894 base::Bind(&base::DoNothing), |
| 890 base::Bind(&ShillError, "NetworkCommand: " + command)); | 895 base::Bind(&ShillError, "NetworkCommand: " + command)); |
| 891 } else if (command == kTagOptions) { | 896 } else if (command == kTagShowDetails) { |
| 892 NetworkHandler::Get() | 897 SendShowDetailedInfo(service_path); |
| 893 ->managed_network_configuration_handler() | |
| 894 ->GetManagedProperties( | |
| 895 LoginState::Get()->primary_user_hash(), | |
| 896 service_path, | |
| 897 base::Bind( | |
| 898 &InternetOptionsHandler::PopulateDictionaryDetailsCallback, | |
| 899 weak_factory_.GetWeakPtr()), | |
| 900 base::Bind(&ShillError, "NetworkCommand: " + command)); | |
| 901 } else if (command == kTagConnect) { | |
| 902 ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow()); | |
| 903 } else if (command == kTagDisconnect) { | |
| 904 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork( | |
| 905 service_path, | |
| 906 base::Bind(&base::DoNothing), | |
| 907 base::Bind(&ShillError, "NetworkCommand: " + command)); | |
| 908 } else if (command == kTagConfigure) { | 898 } else if (command == kTagConfigure) { |
| 909 NetworkConfigView::Show(service_path, GetNativeWindow()); | 899 NetworkConfigView::Show(service_path, GetNativeWindow()); |
| 910 } else if (command == kTagActivate && type == shill::kTypeCellular) { | 900 } else if (command == kTagActivate && type == shill::kTypeCellular) { |
| 911 ash::network_connect::ActivateCellular(service_path); | 901 ash::network_connect::ActivateCellular(service_path); |
| 912 // Activation may update network properties (e.g. ActivationState), so | 902 // Activation may update network properties (e.g. ActivationState), so |
| 913 // request them here in case they change. | 903 // request them here in case they change. |
| 914 UpdateConnectionData(service_path); | 904 UpdateConnectionData(service_path); |
| 915 } else { | 905 } else { |
| 916 VLOG(1) << "Unknown command: " << command; | 906 LOG(ERROR) << "Unknown inetenet options command: " << command; |
|
armansito
2014/09/16 16:40:42
nit: inetenet -> internet
stevenjb
2014/09/16 17:32:58
Done.
| |
| 917 NOTREACHED(); | 907 NOTREACHED(); |
| 918 } | 908 } |
| 919 } | 909 } |
| 920 | 910 |
| 921 void InternetOptionsHandler::AddConnection(const std::string& type) { | 911 void InternetOptionsHandler::AddConnection(const std::string& type) { |
| 922 if (type == shill::kTypeWifi) { | 912 if (type == shill::kTypeWifi) { |
| 923 NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow()); | 913 NetworkConfigView::ShowForType(shill::kTypeWifi, GetNativeWindow()); |
| 924 } else if (type == shill::kTypeVPN) { | 914 } else if (type == shill::kTypeVPN) { |
| 925 NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow()); | 915 NetworkConfigView::ShowForType(shill::kTypeVPN, GetNativeWindow()); |
| 926 } else if (type == shill::kTypeCellular) { | 916 } else if (type == shill::kTypeCellular) { |
| 927 ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow()); | 917 ChooseMobileNetworkDialog::ShowDialog(GetNativeWindow()); |
| 928 } else { | 918 } else { |
| 929 LOG(ERROR) << "Unsupported type for AddConnection"; | 919 LOG(ERROR) << "Unsupported type for AddConnection"; |
| 930 } | 920 } |
| 931 } | 921 } |
| 932 | 922 |
| 923 void InternetOptionsHandler::SendShowDetailedInfo( | |
| 924 const std::string& service_path) { | |
| 925 details_path_ = service_path; | |
| 926 | |
| 927 scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue); | |
| 928 const NetworkState* network = GetNetworkState(service_path); | |
| 929 if (network) { | |
| 930 dictionary->SetString(kNetworkInfoKeyServicePath, service_path); | |
| 931 dictionary->SetString(kNetworkInfoKeyGUID, network->guid()); | |
| 932 if (network->type() == shill::kTypeCellular) { | |
| 933 dictionary->SetBoolean( | |
| 934 kTagCarrierSelectFlag, | |
| 935 CommandLine::ForCurrentProcess() | |
| 936 ->HasSwitch(chromeos::switches::kEnableCarrierSwitching)); | |
| 937 dictionary->SetBoolean(kTagShowViewAccountButton, | |
| 938 ShowViewAccountButton(network)); | |
| 939 } | |
| 940 } | |
| 941 web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary); | |
| 942 } | |
| 943 | |
| 933 base::ListValue* InternetOptionsHandler::GetWiredList() { | 944 base::ListValue* InternetOptionsHandler::GetWiredList() { |
| 934 base::ListValue* list = new base::ListValue(); | 945 base::ListValue* list = new base::ListValue(); |
| 935 const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> | 946 const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> |
| 936 FirstNetworkByType(NetworkTypePattern::Ethernet()); | 947 FirstNetworkByType(NetworkTypePattern::Ethernet()); |
| 937 if (!network) | 948 if (!network) |
| 938 return list; | 949 return list; |
| 939 list->Append(BuildNetworkDictionary(network, GetScaleFactor(), GetPrefs())); | 950 list->Append(BuildNetworkDictionary(network, GetScaleFactor(), GetPrefs())); |
| 940 return list; | 951 return list; |
| 941 } | 952 } |
| 942 | 953 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1001 dictionary->Set(kTagVpnList, GetVPNList()); | 1012 dictionary->Set(kTagVpnList, GetVPNList()); |
| 1002 dictionary->Set(kTagRememberedList, GetRememberedList()); | 1013 dictionary->Set(kTagRememberedList, GetRememberedList()); |
| 1003 | 1014 |
| 1004 dictionary->SetBoolean( | 1015 dictionary->SetBoolean( |
| 1005 kTagWifiAvailable, | 1016 kTagWifiAvailable, |
| 1006 handler->IsTechnologyAvailable(NetworkTypePattern::WiFi())); | 1017 handler->IsTechnologyAvailable(NetworkTypePattern::WiFi())); |
| 1007 dictionary->SetBoolean( | 1018 dictionary->SetBoolean( |
| 1008 kTagWifiEnabled, | 1019 kTagWifiEnabled, |
| 1009 handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())); | 1020 handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())); |
| 1010 | 1021 |
| 1022 const DeviceState* cellular = | |
| 1023 handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); | |
| 1011 dictionary->SetBoolean( | 1024 dictionary->SetBoolean( |
| 1012 kTagCellularAvailable, | 1025 kTagCellularAvailable, |
| 1013 handler->IsTechnologyAvailable(NetworkTypePattern::Mobile())); | 1026 handler->IsTechnologyAvailable(NetworkTypePattern::Mobile())); |
| 1014 dictionary->SetBoolean( | 1027 dictionary->SetBoolean( |
| 1015 kTagCellularEnabled, | 1028 kTagCellularEnabled, |
| 1016 handler->IsTechnologyEnabled(NetworkTypePattern::Mobile())); | 1029 handler->IsTechnologyEnabled(NetworkTypePattern::Mobile())); |
| 1017 const DeviceState* cellular = | 1030 dictionary->SetBoolean(kTagCellularSupportsScan, |
| 1018 handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); | 1031 cellular && cellular->support_network_scan()); |
| 1019 dictionary->SetBoolean( | 1032 dictionary->SetBoolean(kTagCellularSimAbsent, |
| 1020 kTagCellularSupportsScan, | 1033 cellular && cellular->IsSimAbsent()); |
| 1021 cellular && cellular->support_network_scan()); | 1034 dictionary->SetString(kTagCellularSimLockType, |
| 1035 cellular ? cellular->sim_lock_type() : ""); | |
| 1022 | 1036 |
| 1023 dictionary->SetBoolean( | 1037 dictionary->SetBoolean( |
| 1024 kTagWimaxAvailable, | 1038 kTagWimaxAvailable, |
| 1025 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); | 1039 handler->IsTechnologyAvailable(NetworkTypePattern::Wimax())); |
| 1026 dictionary->SetBoolean( | 1040 dictionary->SetBoolean( |
| 1027 kTagWimaxEnabled, | 1041 kTagWimaxEnabled, |
| 1028 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); | 1042 handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())); |
| 1029 } | 1043 } |
| 1030 | 1044 |
| 1031 } // namespace options | 1045 } // namespace options |
| 1032 } // namespace chromeos | 1046 } // namespace chromeos |
| OLD | NEW |