| Index: chrome/browser/chromeos/status/network_menu.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/status/network_menu.cc (revision 64441)
|
| +++ chrome/browser/chromeos/status/network_menu.cc (working copy)
|
| @@ -95,17 +95,18 @@
|
| info->network_type = kNetworkTypeEthernet;
|
| if (cros->ethernet_connected()) {
|
| info->status = kNetworkStatusConnected;
|
| - info->ip_address = cros->ethernet_network().ip_address();
|
| + info->ip_address = cros->ethernet_network() ?
|
| + cros->ethernet_network()->ip_address() : std::string();
|
| }
|
| info->need_passphrase = false;
|
| info->remembered = true;
|
| } else if (flags & FLAG_WIFI) {
|
| - WifiNetwork wifi;
|
| - bool found = cros->FindWifiNetworkByPath(
|
| - menu_items_[index].wireless_path, &wifi);
|
| - if (found) {
|
| + WifiNetwork* wifi = cros->FindWifiNetworkByPath(
|
| + menu_items_[index].wireless_path);
|
| + if (wifi) {
|
| info->network_type = kNetworkTypeWifi;
|
| - if (wifi.service_path() == cros->wifi_network().service_path()) {
|
| + if (cros->wifi_network() &&
|
| + wifi->service_path() == cros->wifi_network()->service_path()) {
|
| if (cros->wifi_connected()) {
|
| info->status = kNetworkStatusConnected;
|
| info->message = l10n_util::GetStringUTF8(
|
| @@ -114,9 +115,9 @@
|
| info->status = kNetworkStatusConnecting;
|
| info->message = l10n_util::GetStringUTF8(
|
| IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING);
|
| - } else if (wifi.state() == STATE_FAILURE) {
|
| + } else if (wifi->state() == STATE_FAILURE) {
|
| info->status = kNetworkStatusError;
|
| - info->message = wifi.GetErrorString();
|
| + info->message = wifi->GetErrorString();
|
| } else {
|
| info->status = kNetworkStatusDisconnected;
|
| info->message = l10n_util::GetStringUTF8(
|
| @@ -127,32 +128,31 @@
|
| info->message = l10n_util::GetStringUTF8(
|
| IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED);
|
| }
|
| - if (wifi.encrypted()) {
|
| + if (wifi->encrypted()) {
|
| info->need_passphrase = true;
|
| - if (wifi.IsCertificateLoaded() ||
|
| - wifi.encryption() == SECURITY_8021X) {
|
| + if (wifi->IsCertificateLoaded() ||
|
| + wifi->encryption() == SECURITY_8021X) {
|
| info->need_passphrase = false;
|
| }
|
| - if (wifi.favorite()) {
|
| - info->passphrase = wifi.passphrase();
|
| + if (wifi->favorite()) {
|
| + info->passphrase = wifi->passphrase();
|
| info->need_passphrase = false;
|
| }
|
| } else {
|
| info->need_passphrase = false;
|
| }
|
| - info->ip_address = wifi.ip_address();
|
| - info->remembered = wifi.favorite();
|
| + info->ip_address = wifi->ip_address();
|
| + info->remembered = wifi->favorite();
|
| } else {
|
| res = false; // Network not found, hide entry.
|
| }
|
| } else if (flags & FLAG_CELLULAR) {
|
| - CellularNetwork cellular;
|
| - bool found = cros->FindCellularNetworkByPath(
|
| - menu_items_[index].wireless_path, &cellular);
|
| - if (found) {
|
| + CellularNetwork* cellular = cros->FindCellularNetworkByPath(
|
| + menu_items_[index].wireless_path);
|
| + if (cellular) {
|
| info->network_type = kNetworkTypeCellular;
|
| - if (cellular.service_path() ==
|
| - cros->cellular_network().service_path()) {
|
| + if (cros->cellular_network() && cellular->service_path() ==
|
| + cros->cellular_network()->service_path()) {
|
| if (cros->cellular_connected()) {
|
| info->status = kNetworkStatusConnected;
|
| info->message = l10n_util::GetStringUTF8(
|
| @@ -162,10 +162,10 @@
|
| info->status = kNetworkStatusConnecting;
|
| info->message = l10n_util::GetStringUTF8(
|
| IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)
|
| - + ": " + cellular.GetStateString();
|
| - } else if (cellular.state() == STATE_FAILURE) {
|
| + + ": " + cellular->GetStateString();
|
| + } else if (cellular->state() == STATE_FAILURE) {
|
| info->status = kNetworkStatusError;
|
| - info->message = cellular.GetErrorString();
|
| + info->message = cellular->GetErrorString();
|
| } else {
|
| info->status = kNetworkStatusDisconnected;
|
| info->message = l10n_util::GetStringUTF8(
|
| @@ -176,7 +176,7 @@
|
| info->message = l10n_util::GetStringUTF8(
|
| IDS_STATUSBAR_NETWORK_DEVICE_DISCONNECTED);
|
| }
|
| - info->ip_address = cellular.ip_address();
|
| + info->ip_address = cellular->ip_address();
|
| info->need_passphrase = false;
|
| info->remembered = true;
|
| } else {
|
| @@ -202,18 +202,17 @@
|
| int flags = menu_items_[index].flags;
|
| NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
|
| if (flags & FLAG_WIFI) {
|
| - WifiNetwork wifi;
|
| - bool found = cros->FindWifiNetworkByPath(
|
| - menu_items_[index].wireless_path, &wifi);
|
| - if (found) {
|
| + WifiNetwork* wifi = cros->FindWifiNetworkByPath(
|
| + menu_items_[index].wireless_path);
|
| + if (wifi) {
|
| // Connect or reconnect.
|
| if (remember >= 0)
|
| - wifi.set_favorite(remember ? true : false);
|
| - if (wifi.encrypted()) {
|
| - if (wifi.IsCertificateLoaded()) {
|
| + wifi->set_favorite(remember ? true : false);
|
| + if (wifi->encrypted()) {
|
| + if (wifi->IsCertificateLoaded()) {
|
| cros->ConnectToWifiNetwork(wifi, std::string(), std::string(),
|
| - wifi.cert_path());
|
| - } else if (wifi.encryption() == SECURITY_8021X) {
|
| + wifi->cert_path());
|
| + } else if (wifi->encryption() == SECURITY_8021X) {
|
| // Show the wifi settings/dialog to load/select a certificate.
|
| ShowWifi(wifi, true);
|
| } else {
|
| @@ -230,10 +229,10 @@
|
| }
|
| }
|
| } else if (flags & FLAG_CELLULAR) {
|
| - CellularNetwork cellular;
|
| - bool found = cros->FindCellularNetworkByPath(
|
| - menu_items_[index].wireless_path, &cellular);
|
| - if (found) {
|
| + CellularNetwork* cellular = cros->FindCellularNetworkByPath(
|
| + menu_items_[index].wireless_path);
|
| + if (cellular) {
|
| + // TODO(zelidrag): Start activation process if needed.
|
| // Connect or reconnect.
|
| cros->ConnectToCellularNetwork(cellular);
|
| }
|
| @@ -307,31 +306,30 @@
|
| ShowEthernet(cros->ethernet_network());
|
| }
|
| } else if (flags & FLAG_WIFI) {
|
| - WifiNetwork wifi;
|
| - bool wifi_exists = cros->FindWifiNetworkByPath(
|
| - menu_items_[index].wireless_path, &wifi);
|
| - if (!wifi_exists) {
|
| + WifiNetwork* wifi = cros->FindWifiNetworkByPath(
|
| + menu_items_[index].wireless_path);
|
| + if (!wifi) {
|
| // If we are attempting to connect to a network that no longer exists,
|
| // display a notification.
|
| // TODO(stevenjb): Show notification.
|
| - } else if (wifi.service_path() == cros->wifi_network().service_path()) {
|
| + } else if (cros->wifi_network() &&
|
| + wifi->service_path() == cros->wifi_network()->service_path()) {
|
| // Show the config settings for the active network.
|
| ShowWifi(wifi, false);
|
| } else {
|
| ConnectToNetworkAt(index, std::string(), std::string(), -1);
|
| }
|
| } else if (flags & FLAG_CELLULAR) {
|
| - CellularNetwork cellular;
|
| - bool cellular_exists = cros->FindCellularNetworkByPath(
|
| - menu_items_[index].wireless_path, &cellular);
|
| - if (!cellular_exists) {
|
| + CellularNetwork* cellular = cros->FindCellularNetworkByPath(
|
| + menu_items_[index].wireless_path);
|
| + if (!cellular) {
|
| // If we are attempting to connect to a network that no longer exists,
|
| // display a notification.
|
| // TODO(stevenjb): Show notification.
|
| - } else if (cellular.activation_state() != ACTIVATION_STATE_ACTIVATED) {
|
| + } else if (cellular->activation_state() != ACTIVATION_STATE_ACTIVATED) {
|
| ActivateCellular(cellular);
|
| - } else if (cellular.service_path() ==
|
| - cros->cellular_network().service_path()) {
|
| + } else if (cellular->service_path() ==
|
| + cros->cellular_network()->service_path()) {
|
| // Show the config settings for the cellular network.
|
| ShowCellular(cellular, false);
|
| } else {
|
| @@ -367,13 +365,14 @@
|
| return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]);
|
| }
|
|
|
| -SkBitmap NetworkMenu::IconForNetworkStrength(CellularNetwork cellular) {
|
| +SkBitmap NetworkMenu::IconForNetworkStrength(const CellularNetwork* cellular) {
|
| + DCHECK(cellular);
|
| // Compose wifi icon by superimposing various icons.
|
| - int index = static_cast<int>(cellular.strength() / 100.0 *
|
| + int index = static_cast<int>(cellular->strength() / 100.0 *
|
| nextafter(static_cast<float>(kNumWifiImages), 0));
|
| index = std::max(std::min(index, kNumWifiImages - 1), 0);
|
| const int* images = kBarsImages;
|
| - switch (cellular.data_left()) {
|
| + switch (cellular->data_left()) {
|
| case CellularNetwork::DATA_NONE:
|
| case CellularNetwork::DATA_VERY_LOW:
|
| images = kBarsImagesVLowData;
|
| @@ -462,7 +461,7 @@
|
| bool wifi_available = cros->wifi_available();
|
| if (wifi_available) {
|
| const WifiNetworkVector& wifi_networks = cros->wifi_networks();
|
| - const WifiNetwork& active_wifi = cros->wifi_network();
|
| + const WifiNetwork* active_wifi = cros->wifi_network();
|
|
|
| if (wifi_networks.size() > 0) {
|
| no_networks = false;
|
| @@ -471,24 +470,26 @@
|
| }
|
| // List Wifi networks.
|
| for (size_t i = 0; i < wifi_networks.size(); ++i) {
|
| - if (wifi_networks[i].connecting()) {
|
| + if (wifi_networks[i]->connecting()) {
|
| label = l10n_util::GetStringFUTF16(
|
| IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
|
| - ASCIIToUTF16(wifi_networks[i].name()),
|
| + ASCIIToUTF16(wifi_networks[i]->name()),
|
| l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING));
|
| } else {
|
| - label = ASCIIToUTF16(wifi_networks[i].name());
|
| + label = ASCIIToUTF16(wifi_networks[i]->name());
|
| }
|
| - SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true);
|
| - SkBitmap badge = wifi_networks[i].encrypted() ?
|
| + SkBitmap icon = IconForNetworkStrength(wifi_networks[i]->strength(),
|
| + true);
|
| + SkBitmap badge = wifi_networks[i]->encrypted() ?
|
| *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap();
|
| int flag = FLAG_WIFI;
|
| - if (wifi_networks[i].service_path() == active_wifi.service_path())
|
| + if (active_wifi
|
| + && wifi_networks[i]->service_path() == active_wifi->service_path())
|
| flag |= FLAG_ASSOCIATED;
|
| menu_items_.push_back(
|
| MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| IconForDisplay(icon, badge),
|
| - wifi_networks[i].service_path(), flag));
|
| + wifi_networks[i]->service_path(), flag));
|
| }
|
| }
|
|
|
| @@ -496,7 +497,7 @@
|
| bool cellular_available = cros->cellular_available();
|
| if (cellular_available) {
|
| const CellularNetworkVector& cell_networks = cros->cellular_networks();
|
| - const CellularNetwork& active_cellular = cros->cellular_network();
|
| + const CellularNetwork* active_cellular = cros->cellular_network();
|
|
|
| if (cell_networks.size() > 0) {
|
| no_networks = false;
|
| @@ -506,37 +507,40 @@
|
| // List Cellular networks.
|
| for (size_t i = 0; i < cell_networks.size(); ++i) {
|
| chromeos::ActivationState activation_state =
|
| - cell_networks[i].activation_state();
|
| + cell_networks[i]->activation_state();
|
| if (activation_state == ACTIVATION_STATE_NOT_ACTIVATED) {
|
| label = l10n_util::GetStringFUTF16(
|
| IDS_STATUSBAR_NETWORK_DEVICE_ACTIVATE,
|
| - ASCIIToUTF16(cell_networks[i].name()));
|
| + ASCIIToUTF16(cell_networks[i]->name()));
|
| } else if (activation_state == ACTIVATION_STATE_PARTIALLY_ACTIVATED ||
|
| activation_state == ACTIVATION_STATE_ACTIVATING) {
|
| label = l10n_util::GetStringFUTF16(
|
| IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
|
| - ASCIIToUTF16(cell_networks[i].name()),
|
| + ASCIIToUTF16(cell_networks[i]->name()),
|
| l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ACTIVATING));
|
| - } else if (cell_networks[i].connecting()) {
|
| + } else if (cell_networks[i]->connecting()) {
|
| label = l10n_util::GetStringFUTF16(
|
| IDS_STATUSBAR_NETWORK_DEVICE_STATUS,
|
| - ASCIIToUTF16(cell_networks[i].name()),
|
| + ASCIIToUTF16(cell_networks[i]->name()),
|
| l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING));
|
| } else {
|
| - label = ASCIIToUTF16(cell_networks[i].name());
|
| + label = ASCIIToUTF16(cell_networks[i]->name());
|
| }
|
| - SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true);
|
| + SkBitmap icon = IconForNetworkStrength(cell_networks[i]->strength(),
|
| + true);
|
| // TODO(chocobo): Check cellular network 3g/edge.
|
| SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
|
| // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
|
| int flag = FLAG_CELLULAR;
|
| - if (cell_networks[i].service_path() == active_cellular.service_path() &&
|
| - (cell_networks[i].connecting() || cell_networks[i].connected()))
|
| + if (active_cellular &&
|
| + cell_networks[i]->service_path() ==
|
| + active_cellular->service_path() &&
|
| + (cell_networks[i]->connecting() || cell_networks[i]->connected()))
|
| flag |= FLAG_ASSOCIATED;
|
| menu_items_.push_back(
|
| MenuItem(menus::MenuModel::TYPE_COMMAND, label,
|
| IconForDisplay(icon, badge),
|
| - cell_networks[i].service_path(), flag));
|
| + cell_networks[i]->service_path(), flag));
|
| }
|
| }
|
|
|
| @@ -604,14 +608,15 @@
|
| }
|
| }
|
|
|
| -void NetworkMenu::ShowTabbedNetworkSettings(const Network& network) const {
|
| +void NetworkMenu::ShowTabbedNetworkSettings(const Network* network) const {
|
| + DCHECK(network);
|
| Browser* browser = BrowserList::GetLastActive();
|
| if (!browser)
|
| return;
|
| std::string page = StringPrintf("%s?servicePath=%s&networkType=%d",
|
| chrome::kInternetOptionsSubPage,
|
| - EscapeUrlEncodedData(network.service_path()).c_str(),
|
| - network.type());
|
| + EscapeUrlEncodedData(network->service_path()).c_str(),
|
| + network->type());
|
| browser->ShowOptionsTab(page);
|
| }
|
|
|
| @@ -630,34 +635,40 @@
|
| view->SetLoginTextfieldFocus();
|
| }
|
|
|
| -void NetworkMenu::ShowWifi(const WifiNetwork& wifi, bool focus_login) const{
|
| +void NetworkMenu::ShowWifi(const WifiNetwork* wifi, bool focus_login) const{
|
| + DCHECK(wifi);
|
| if (use_settings_ui_ &&
|
| - (MenuUI::IsEnabled() || wifi.connected() || wifi.connecting())) {
|
| + (MenuUI::IsEnabled() || wifi->connected() || wifi->connecting())) {
|
| ShowTabbedNetworkSettings(wifi);
|
| } else {
|
| ShowNetworkConfigView(new NetworkConfigView(wifi, true), focus_login);
|
| }
|
| }
|
|
|
| -void NetworkMenu::ShowCellular(const CellularNetwork& cellular,
|
| +void NetworkMenu::ShowCellular(const CellularNetwork* cellular,
|
| bool focus_login) const {
|
| + DCHECK(cellular);
|
| if (use_settings_ui_ &&
|
| - (MenuUI::IsEnabled() || cellular.connected() || cellular.connecting())) {
|
| + (MenuUI::IsEnabled() || cellular->connected() ||
|
| + cellular->connecting())) {
|
| ShowTabbedNetworkSettings(cellular);
|
| } else {
|
| ShowNetworkConfigView(new NetworkConfigView(cellular), focus_login);
|
| }
|
| }
|
|
|
| -void NetworkMenu::ActivateCellular(const CellularNetwork& cellular) const {
|
| +void NetworkMenu::ActivateCellular(const CellularNetwork* cellular) const {
|
| + DCHECK(cellular);
|
| Browser* browser = BrowserList::GetLastActive();
|
| // TODO?(stevenjb) : specify which service to activate.
|
| browser->ShowSingletonTab(GURL(chrome::kChromeUIMobileSetupURL));
|
| }
|
|
|
| -void NetworkMenu::ShowEthernet(const EthernetNetwork& ethernet) const {
|
| +void NetworkMenu::ShowEthernet(const EthernetNetwork* ethernet) const {
|
| + DCHECK(ethernet);
|
| if (use_settings_ui_ &&
|
| - (MenuUI::IsEnabled() || ethernet.connected() || ethernet.connecting())) {
|
| + (MenuUI::IsEnabled() || ethernet->connected() ||
|
| + ethernet->connecting())) {
|
| ShowTabbedNetworkSettings(ethernet);
|
| } else {
|
| ShowNetworkConfigView(new NetworkConfigView(ethernet), false);
|
|
|