Chromium Code Reviews| Index: chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc |
| diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc |
| index b6239d4dfe57c0961c334fab8567193fe551df17..48ef318c10921d2a7959a3cd3fb5cf8a245cc985 100644 |
| --- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc |
| +++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc |
| @@ -66,7 +66,6 @@ namespace { |
| // Keys for the network description dictionary passed to the web ui. Make sure |
| // to keep the strings in sync with what the JavaScript side uses. |
| const char kNetworkInfoKeyIconURL[] = "iconURL"; |
| -const char kNetworkInfoKeyServicePath[] = "servicePath"; |
| const char kNetworkInfoKeyPolicyManaged[] = "policyManaged"; |
| // These are types of name server selections from the web ui. |
| @@ -81,6 +80,8 @@ const char kRefreshNetworkDataFunction[] = |
| "options.network.NetworkList.refreshNetworkData"; |
| const char kSetDefaultNetworkIconsFunction[] = |
| "options.network.NetworkList.setDefaultNetworkIcons"; |
| +const char kSendNetworkDetailsFunction[] = |
| + "options.internet.DetailsInternetPage.sendNetworkDetails"; |
| const char kShowDetailedInfoFunction[] = |
| "options.internet.DetailsInternetPage.showDetailedInfo"; |
| const char kUpdateConnectionDataFunction[] = |
| @@ -89,23 +90,24 @@ const char kUpdateCarrierFunction[] = |
| "options.internet.DetailsInternetPage.updateCarrier"; |
| // These are used to register message handlers with JavaScript. |
| -const char kChangePinMessage[] = "changePin"; |
| -const char kDisableCellularMessage[] = "disableCellular"; |
| -const char kDisableWifiMessage[] = "disableWifi"; |
| -const char kDisableWimaxMessage[] = "disableWimax"; |
| -const char kEnableCellularMessage[] = "enableCellular"; |
| -const char kEnableWifiMessage[] = "enableWifi"; |
| -const char kEnableWimaxMessage[] = "enableWimax"; |
| const char kNetworkCommandMessage[] = "networkCommand"; |
| -const char kRefreshNetworksMessage[] = "refreshNetworks"; |
| const char kSetApnMessage[] = "setApn"; |
| const char kSetAutoConnectMessage[] = "setAutoConnect"; |
| const char kSetCarrierMessage[] = "setCarrier"; |
| const char kSetIPConfigMessage[] = "setIPConfig"; |
| const char kSetPreferNetworkMessage[] = "setPreferNetwork"; |
| const char kSetServerHostname[] = "setServerHostname"; |
| -const char kSetSimCardLockMessage[] = "setSimCardLock"; |
| const char kShowMorePlanInfoMessage[] = "showMorePlanInfo"; |
| +const char kSimOperationMessage[] = "simOperation"; |
| + |
| +// TODO(stevenjb): Replace these with the matching networkingPrivate methods. |
| +// crbug.com/279351. |
| +const char kDisableNetworkTypeMessage[] = "disableNetworkType"; |
| +const char kEnableNetworkTypeMessage[] = "enableNetworkType"; |
| +const char kGetManagedPropertiesMessage[] = "getManagedProperties"; |
| +const char kRequestNetworkScanMessage[] = "requestNetworkScan"; |
| +const char kStartConnectMessage[] = "startConnect"; |
| +const char kStartDisconnectMessage[] = "startDisconnect"; |
| // These are strings used to communicate with JavaScript. |
| const char kTagActivate[] = "activate"; |
| @@ -113,16 +115,19 @@ const char kTagAddConnection[] = "add"; |
| const char kTagCarrierSelectFlag[] = "showCarrierSelect"; |
| const char kTagCellularAvailable[] = "cellularAvailable"; |
| const char kTagCellularEnabled[] = "cellularEnabled"; |
| +const char kTagCellularSimAbsent[] = "cellularSimAbsent"; |
| +const char kTagCellularSimLockType[] = "cellularSimLockType"; |
| const char kTagCellularSupportsScan[] = "cellularSupportsScan"; |
| const char kTagConfigure[] = "configure"; |
| -const char kTagConnect[] = "connect"; |
| -const char kTagDeviceConnected[] = "deviceConnected"; |
| -const char kTagDisconnect[] = "disconnect"; |
| -const char kTagErrorMessage[] = "errorMessage"; |
| const char kTagForget[] = "forget"; |
| -const char kTagOptions[] = "options"; |
| const char kTagRememberedList[] = "rememberedList"; |
| +const char kTagShowDetails[] = "showDetails"; |
| const char kTagShowViewAccountButton[] = "showViewAccountButton"; |
| +const char kTagSimOpChangePin[] = "changePin"; |
| +const char kTagSimOpConfigure[] = "configure"; |
| +const char kTagSimOpSetLocked[] = "setLocked"; |
| +const char kTagSimOpSetUnlocked[] = "setUnlocked"; |
| +const char kTagSimOpUnlock[] = "unlock"; |
| const char kTagTrue[] = "true"; |
| const char kTagVpnList[] = "vpnList"; |
| const char kTagWifiAvailable[] = "wifiAvailable"; |
| @@ -132,6 +137,11 @@ const char kTagWimaxEnabled[] = "wimaxEnabled"; |
| const char kTagWiredList[] = "wiredList"; |
| const char kTagWirelessList[] = "wirelessList"; |
| +// Pseudo-ONC chrome specific properties appended to the ONC dictionary. |
| +const char kTagErrorMessage[] = "errorMessage"; |
| +const char kNetworkInfoKeyServicePath[] = "servicePath"; |
| +const char kNetworkInfoKeyGUID[] = "GUID"; |
| + |
| const int kPreferredPriority = 1; |
| void ShillError(const std::string& function, |
| @@ -233,26 +243,13 @@ scoped_ptr<base::DictionaryValue> PopulateConnectionDetails( |
| const base::DictionaryValue& onc_properties) { |
| scoped_ptr<base::DictionaryValue> dictionary(onc_properties.DeepCopy()); |
| + // Append Service Path for now. |
| dictionary->SetString(kNetworkInfoKeyServicePath, network->path()); |
| + // Append a Chrome specific translated error message. |
| dictionary->SetString( |
| kTagErrorMessage, |
| ash::network_connect::ErrorString(network->error(), network->path())); |
| - const std::string& type = network->type(); |
| - |
| - const NetworkState* connected_network = |
| - NetworkHandler::Get()->network_state_handler()->ConnectedNetworkByType( |
| - NetworkTypePattern::Primitive(type)); |
| - dictionary->SetBoolean(kTagDeviceConnected, connected_network != NULL); |
| - |
| - if (type == shill::kTypeCellular) { |
| - dictionary->SetBoolean( |
| - kTagCarrierSelectFlag, |
| - CommandLine::ForCurrentProcess() |
| - ->HasSwitch(chromeos::switches::kEnableCarrierSwitching)); |
| - dictionary->SetBoolean(kTagShowViewAccountButton, |
| - ShowViewAccountButton(network)); |
| - } |
| return dictionary.Pass(); |
| } |
| @@ -354,9 +351,6 @@ void InternetOptionsHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback(kNetworkCommandMessage, |
| base::Bind(&InternetOptionsHandler::NetworkCommandCallback, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kRefreshNetworksMessage, |
| - base::Bind(&InternetOptionsHandler::RefreshNetworksCallback, |
| - base::Unretained(this))); |
| web_ui()->RegisterMessageCallback(kSetPreferNetworkMessage, |
| base::Bind(&InternetOptionsHandler::SetPreferNetworkCallback, |
| base::Unretained(this))); |
| @@ -366,24 +360,6 @@ void InternetOptionsHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback(kSetIPConfigMessage, |
| base::Bind(&InternetOptionsHandler::SetIPConfigCallback, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kEnableWifiMessage, |
| - base::Bind(&InternetOptionsHandler::EnableWifiCallback, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kDisableWifiMessage, |
| - base::Bind(&InternetOptionsHandler::DisableWifiCallback, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kEnableCellularMessage, |
| - base::Bind(&InternetOptionsHandler::EnableCellularCallback, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kDisableCellularMessage, |
| - base::Bind(&InternetOptionsHandler::DisableCellularCallback, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kEnableWimaxMessage, |
| - base::Bind(&InternetOptionsHandler::EnableWimaxCallback, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kDisableWimaxMessage, |
| - base::Bind(&InternetOptionsHandler::DisableWimaxCallback, |
| - base::Unretained(this))); |
| web_ui()->RegisterMessageCallback(kShowMorePlanInfoMessage, |
| base::Bind(&InternetOptionsHandler::ShowMorePlanInfoCallback, |
| base::Unretained(this))); |
| @@ -393,73 +369,32 @@ void InternetOptionsHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback(kSetCarrierMessage, |
| base::Bind(&InternetOptionsHandler::SetCarrierCallback, |
| base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kSetSimCardLockMessage, |
| - base::Bind(&InternetOptionsHandler::SetSimCardLockCallback, |
| - base::Unretained(this))); |
| - web_ui()->RegisterMessageCallback(kChangePinMessage, |
| - base::Bind(&InternetOptionsHandler::ChangePinCallback, |
| + web_ui()->RegisterMessageCallback(kSimOperationMessage, |
| + base::Bind(&InternetOptionsHandler::SimOperationCallback, |
| base::Unretained(this))); |
| web_ui()->RegisterMessageCallback(kSetServerHostname, |
| base::Bind(&InternetOptionsHandler::SetServerHostnameCallback, |
| base::Unretained(this))); |
| -} |
| - |
| -void InternetOptionsHandler::EnableWifiCallback(const base::ListValue* args) { |
| - NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| - NetworkTypePattern::WiFi(), true, |
| - base::Bind(&ShillError, "EnableWifiCallback")); |
| -} |
| - |
| -void InternetOptionsHandler::DisableWifiCallback(const base::ListValue* args) { |
| - NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| - NetworkTypePattern::WiFi(), false, |
| - base::Bind(&ShillError, "DisableWifiCallback")); |
| -} |
| -void InternetOptionsHandler::EnableCellularCallback( |
| - const base::ListValue* args) { |
| - NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); |
| - const DeviceState* device = |
| - handler->GetDeviceStateByType(NetworkTypePattern::Cellular()); |
| - if (!device) { |
| - LOG(ERROR) << "Mobile device not found."; |
| - return; |
| - } |
| - if (!device->sim_lock_type().empty()) { |
| - SimDialogDelegate::ShowDialog(GetNativeWindow(), |
| - SimDialogDelegate::SIM_DIALOG_UNLOCK); |
| - return; |
| - } |
| - if (!handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) { |
| - handler->SetTechnologyEnabled( |
| - NetworkTypePattern::Cellular(), true, |
| - base::Bind(&ShillError, "EnableCellularCallback")); |
| - return; |
| - } |
| - if (device->IsSimAbsent()) { |
| - mobile_config_ui::DisplayConfigDialog(); |
| - return; |
| - } |
| - LOG(ERROR) << "EnableCellularCallback called for enabled mobile device"; |
| -} |
| - |
| -void InternetOptionsHandler::DisableCellularCallback( |
| - const base::ListValue* args) { |
| - NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| - NetworkTypePattern::Mobile(), false, |
| - base::Bind(&ShillError, "DisableCellularCallback")); |
| -} |
| - |
| -void InternetOptionsHandler::EnableWimaxCallback(const base::ListValue* args) { |
| - NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| - NetworkTypePattern::Wimax(), true, |
| - base::Bind(&ShillError, "EnableWimaxCallback")); |
| -} |
| - |
| -void InternetOptionsHandler::DisableWimaxCallback(const base::ListValue* args) { |
| - NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| - NetworkTypePattern::Wimax(), false, |
| - base::Bind(&ShillError, "DisableWimaxCallback")); |
| + // networkingPrivate methods |
| + web_ui()->RegisterMessageCallback(kDisableNetworkTypeMessage, |
| + base::Bind(&InternetOptionsHandler::DisableNetworkTypeCallback, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback(kEnableNetworkTypeMessage, |
| + base::Bind(&InternetOptionsHandler::EnableNetworkTypeCallback, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback(kGetManagedPropertiesMessage, |
| + base::Bind(&InternetOptionsHandler::GetManagedPropertiesCallback, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback(kRequestNetworkScanMessage, |
| + base::Bind(&InternetOptionsHandler::RequestNetworkScanCallback, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback(kStartConnectMessage, |
| + base::Bind(&InternetOptionsHandler::StartConnectCallback, |
| + base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback(kStartDisconnectMessage, |
| + base::Bind(&InternetOptionsHandler::StartDisconnectCallback, |
| + base::Unretained(this))); |
| } |
| void InternetOptionsHandler::ShowMorePlanInfoCallback( |
| @@ -540,7 +475,7 @@ void InternetOptionsHandler::CarrierStatusCallback() { |
| if (device && (device->carrier() == shill::kCarrierSprint)) { |
| const NetworkState* network = |
| handler->FirstNetworkByType(NetworkTypePattern::Cellular()); |
| - if (network) { |
| + if (network && network->path() == details_path_) { |
| ash::network_connect::ActivateCellular(network->path()); |
| UpdateConnectionData(network->path()); |
| } |
| @@ -571,13 +506,16 @@ void InternetOptionsHandler::SetCarrierCallback(const base::ListValue* args) { |
| base::Bind(&ShillError, "SetCarrierCallback")); |
| } |
| -void InternetOptionsHandler::SetSimCardLockCallback( |
| - const base::ListValue* args) { |
| - bool require_pin_new_value; |
| - if (!args->GetBoolean(0, &require_pin_new_value)) { |
| +void InternetOptionsHandler::SimOperationCallback(const base::ListValue* args) { |
| + std::string operation; |
| + if (args->GetSize() != 1 || !args->GetString(0, &operation)) { |
| NOTREACHED(); |
| return; |
| } |
| + if (operation == kTagSimOpConfigure) { |
| + mobile_config_ui::DisplayConfigDialog(); |
| + return; |
| + } |
| // 1. Bring up SIM unlock dialog, pass new RequirePin setting in URL. |
| // 2. Dialog will ask for current PIN in any case. |
| // 3. If card is locked it will first call PIN unlock operation |
| @@ -585,23 +523,95 @@ void InternetOptionsHandler::SetSimCardLockCallback( |
| // 5. The dialog may change device properties, in which case |
| // DevicePropertiesUpdated() will get called which will update the UI. |
| SimDialogDelegate::SimDialogMode mode; |
| - if (require_pin_new_value) |
| + if (operation == kTagSimOpSetLocked) { |
| mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_ON; |
| - else |
| + } else if (operation == kTagSimOpSetUnlocked) { |
| mode = SimDialogDelegate::SIM_DIALOG_SET_LOCK_OFF; |
| + } else if (operation == kTagSimOpUnlock) { |
| + mode = SimDialogDelegate::SIM_DIALOG_UNLOCK; |
| + } else if (operation == kTagSimOpChangePin) { |
| + mode = SimDialogDelegate::SIM_DIALOG_CHANGE_PIN; |
| + } else { |
| + NOTREACHED(); |
| + return; |
| + } |
| SimDialogDelegate::ShowDialog(GetNativeWindow(), mode); |
| } |
| -void InternetOptionsHandler::ChangePinCallback(const base::ListValue* args) { |
| - SimDialogDelegate::ShowDialog(GetNativeWindow(), |
| - SimDialogDelegate::SIM_DIALOG_CHANGE_PIN); |
| +//////////////////////////////////////////////////////////////////////////////// |
| +// networkingPrivate implementation methods. TODO(stevenjb): Replace these with |
| +// the matching networkingPrivate methods, crbug.com/279351. |
|
armansito
2014/09/16 17:38:56
nit: I guess by replacing we mean that these metho
stevenjb
2014/09/16 18:27:33
Done.
|
| + |
| +void InternetOptionsHandler::DisableNetworkTypeCallback( |
| + const base::ListValue* args) { |
| + std::string type; |
| + if (!args->GetString(0, &type)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| + chromeos::onc::NetworkTypePatternFromOncType(type), false, |
| + base::Bind(&ShillError, "DisableNetworkType")); |
| +} |
| + |
| +void InternetOptionsHandler::EnableNetworkTypeCallback( |
| + const base::ListValue* args) { |
| + std::string type; |
| + if (!args->GetString(0, &type)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
| + chromeos::onc::NetworkTypePatternFromOncType(type), true, |
| + base::Bind(&ShillError, "EnableNetworkType")); |
| +} |
| + |
| +void InternetOptionsHandler::GetManagedPropertiesCallback( |
| + const base::ListValue* args) { |
| + std::string service_path; |
| + if (!args->GetString(0, &service_path)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + NetworkHandler::Get()->managed_network_configuration_handler() |
| + ->GetManagedProperties( |
| + LoginState::Get()->primary_user_hash(), |
| + service_path, |
| + base::Bind( |
| + &InternetOptionsHandler::PopulateDictionaryDetailsCallback, |
| + weak_factory_.GetWeakPtr()), |
| + base::Bind(&ShillError, "GetManagedProperties")); |
| } |
| -void InternetOptionsHandler::RefreshNetworksCallback( |
| +void InternetOptionsHandler::RequestNetworkScanCallback( |
| const base::ListValue* args) { |
| NetworkHandler::Get()->network_state_handler()->RequestScan(); |
| } |
| +void InternetOptionsHandler::StartConnectCallback(const base::ListValue* args) { |
| + std::string service_path; |
| + if (!args->GetString(0, &service_path)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow()); |
| +} |
| + |
| +void InternetOptionsHandler::StartDisconnectCallback( |
| + const base::ListValue* args) { |
| + std::string service_path; |
| + if (!args->GetString(0, &service_path)) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork( |
| + service_path, |
| + base::Bind(&base::DoNothing), |
| + base::Bind(&ShillError, "StartDisconnectCallback")); |
| +} |
| + |
| +//////////////////////////////////////////////////////////////////////////////// |
| + |
| std::string InternetOptionsHandler::GetIconDataUrl(int resource_id) const { |
| gfx::ImageSkia* icon = |
| ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); |
| @@ -659,10 +669,8 @@ void InternetOptionsHandler::NetworkConnectionStateChanged( |
| const NetworkState* network) { |
| if (!web_ui()) |
| return; |
| - // Update the connection data for the detailed view when the connection state |
| - // of any network changes. |
| - if (!details_path_.empty()) |
| - UpdateConnectionData(details_path_); |
| + if (network->path() == details_path_) |
| + UpdateConnectionData(network->path()); |
| } |
| void InternetOptionsHandler::NetworkPropertiesUpdated( |
| @@ -670,7 +678,8 @@ void InternetOptionsHandler::NetworkPropertiesUpdated( |
| if (!web_ui()) |
| return; |
| RefreshNetworkData(); |
| - UpdateConnectionData(network->path()); |
| + if (network->path() == details_path_) |
| + UpdateConnectionData(network->path()); |
| } |
| void InternetOptionsHandler::DevicePropertiesUpdated( |
| @@ -682,8 +691,8 @@ void InternetOptionsHandler::DevicePropertiesUpdated( |
| const NetworkState* network = |
| NetworkHandler::Get()->network_state_handler()->FirstNetworkByType( |
| NetworkTypePattern::Cellular()); |
| - if (network) |
| - UpdateConnectionData(network->path()); // Update sim lock status. |
| + if (network && network->path() == details_path_) |
| + UpdateConnectionData(network->path()); |
| } |
| void InternetOptionsHandler::SetServerHostnameCallback( |
| @@ -839,14 +848,11 @@ void InternetOptionsHandler::PopulateDictionaryDetailsCallback( |
| LOG(ERROR) << "Network properties not found: " << service_path; |
| return; |
| } |
| - |
| - details_path_ = service_path; |
| - |
| scoped_ptr<base::DictionaryValue> dictionary = |
| PopulateConnectionDetails(network, onc_properties); |
| // Show details dialog |
| - web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary); |
| + web_ui()->CallJavascriptFunction(kSendNetworkDetailsFunction, *dictionary); |
| } |
| gfx::NativeWindow InternetOptionsHandler::GetNativeWindow() const { |
| @@ -888,23 +894,8 @@ void InternetOptionsHandler::NetworkCommandCallback( |
| service_path, |
| base::Bind(&base::DoNothing), |
| base::Bind(&ShillError, "NetworkCommand: " + command)); |
| - } else if (command == kTagOptions) { |
| - NetworkHandler::Get() |
| - ->managed_network_configuration_handler() |
| - ->GetManagedProperties( |
| - LoginState::Get()->primary_user_hash(), |
| - service_path, |
| - base::Bind( |
| - &InternetOptionsHandler::PopulateDictionaryDetailsCallback, |
| - weak_factory_.GetWeakPtr()), |
| - base::Bind(&ShillError, "NetworkCommand: " + command)); |
| - } else if (command == kTagConnect) { |
| - ash::network_connect::ConnectToNetwork(service_path, GetNativeWindow()); |
| - } else if (command == kTagDisconnect) { |
| - NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork( |
| - service_path, |
| - base::Bind(&base::DoNothing), |
| - base::Bind(&ShillError, "NetworkCommand: " + command)); |
| + } else if (command == kTagShowDetails) { |
| + SendShowDetailedInfo(service_path); |
| } else if (command == kTagConfigure) { |
| NetworkConfigView::Show(service_path, GetNativeWindow()); |
| } else if (command == kTagActivate && type == shill::kTypeCellular) { |
| @@ -913,7 +904,7 @@ void InternetOptionsHandler::NetworkCommandCallback( |
| // request them here in case they change. |
| UpdateConnectionData(service_path); |
| } else { |
| - VLOG(1) << "Unknown command: " << command; |
| + LOG(ERROR) << "Unknown internet options command: " << command; |
| NOTREACHED(); |
| } |
| } |
| @@ -930,6 +921,27 @@ void InternetOptionsHandler::AddConnection(const std::string& type) { |
| } |
| } |
| +void InternetOptionsHandler::SendShowDetailedInfo( |
| + const std::string& service_path) { |
| + details_path_ = service_path; |
| + |
| + scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue); |
| + const NetworkState* network = GetNetworkState(service_path); |
| + if (network) { |
| + dictionary->SetString(kNetworkInfoKeyServicePath, service_path); |
| + dictionary->SetString(kNetworkInfoKeyGUID, network->guid()); |
| + if (network->type() == shill::kTypeCellular) { |
| + dictionary->SetBoolean( |
| + kTagCarrierSelectFlag, |
| + CommandLine::ForCurrentProcess() |
| + ->HasSwitch(chromeos::switches::kEnableCarrierSwitching)); |
| + dictionary->SetBoolean(kTagShowViewAccountButton, |
| + ShowViewAccountButton(network)); |
| + } |
| + } |
| + web_ui()->CallJavascriptFunction(kShowDetailedInfoFunction, *dictionary); |
| +} |
| + |
| base::ListValue* InternetOptionsHandler::GetWiredList() { |
| base::ListValue* list = new base::ListValue(); |
| const NetworkState* network = NetworkHandler::Get()->network_state_handler()-> |
| @@ -1008,17 +1020,20 @@ void InternetOptionsHandler::FillNetworkInfo( |
| kTagWifiEnabled, |
| handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())); |
| + const DeviceState* cellular = |
| + handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); |
| dictionary->SetBoolean( |
| kTagCellularAvailable, |
| handler->IsTechnologyAvailable(NetworkTypePattern::Mobile())); |
| dictionary->SetBoolean( |
| kTagCellularEnabled, |
| handler->IsTechnologyEnabled(NetworkTypePattern::Mobile())); |
| - const DeviceState* cellular = |
| - handler->GetDeviceStateByType(NetworkTypePattern::Mobile()); |
| - dictionary->SetBoolean( |
| - kTagCellularSupportsScan, |
| - cellular && cellular->support_network_scan()); |
| + dictionary->SetBoolean(kTagCellularSupportsScan, |
| + cellular && cellular->support_network_scan()); |
| + dictionary->SetBoolean(kTagCellularSimAbsent, |
| + cellular && cellular->IsSimAbsent()); |
| + dictionary->SetString(kTagCellularSimLockType, |
| + cellular ? cellular->sim_lock_type() : ""); |
| dictionary->SetBoolean( |
| kTagWimaxAvailable, |