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

Side by Side Diff: chrome/browser/chromeos/status/network_menu.cc

Issue 3744009: chromium-os:5494 Networks with identical names not handled properly. (Closed)
Patch Set: Rebase from trunk. Created 10 years, 2 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/status/network_menu.h" 5 #include "chrome/browser/chromeos/status/network_menu.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 info->ip_address = cros->ethernet_network().ip_address(); 65 info->ip_address = cros->ethernet_network().ip_address();
66 } 66 }
67 info->need_passphrase = false; 67 info->need_passphrase = false;
68 info->remembered = true; 68 info->remembered = true;
69 } else if (flags & FLAG_WIFI) { 69 } else if (flags & FLAG_WIFI) {
70 WifiNetwork wifi; 70 WifiNetwork wifi;
71 bool found = cros->FindWifiNetworkByPath( 71 bool found = cros->FindWifiNetworkByPath(
72 menu_items_[index].wireless_path, &wifi); 72 menu_items_[index].wireless_path, &wifi);
73 if (found) { 73 if (found) {
74 info->network_type = kNetworkTypeWifi; 74 info->network_type = kNetworkTypeWifi;
75 if (wifi.name() == cros->wifi_name()) { 75 if (wifi.service_path() == cros->wifi_network().service_path()) {
76 if (cros->wifi_connected()) { 76 if (cros->wifi_connected()) {
77 info->status = kNetworkStatusConnected; 77 info->status = kNetworkStatusConnected;
78 info->message = l10n_util::GetStringUTF8( 78 info->message = l10n_util::GetStringUTF8(
79 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED); 79 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED);
80 } else if (cros->wifi_connecting()) { 80 } else if (cros->wifi_connecting()) {
81 info->status = kNetworkStatusConnecting; 81 info->status = kNetworkStatusConnecting;
82 // TODO(stevenjb): Eliminate status message, or localize properly. 82 // TODO(stevenjb): Eliminate status message, or localize properly.
83 info->message = l10n_util::GetStringUTF8( 83 info->message = l10n_util::GetStringUTF8(
84 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING) 84 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)
85 + ": " + wifi.GetStateString(); 85 + ": " + wifi.GetStateString();
(...skipping 24 matching lines...) Expand all
110 info->remembered = wifi.favorite(); 110 info->remembered = wifi.favorite();
111 } else { 111 } else {
112 res = false; // Network not found, hide entry. 112 res = false; // Network not found, hide entry.
113 } 113 }
114 } else if (flags & FLAG_CELLULAR) { 114 } else if (flags & FLAG_CELLULAR) {
115 CellularNetwork cellular; 115 CellularNetwork cellular;
116 bool found = cros->FindCellularNetworkByPath( 116 bool found = cros->FindCellularNetworkByPath(
117 menu_items_[index].wireless_path, &cellular); 117 menu_items_[index].wireless_path, &cellular);
118 if (found) { 118 if (found) {
119 info->network_type = kNetworkTypeCellular; 119 info->network_type = kNetworkTypeCellular;
120 if (cellular.name() == cros->cellular_name()) { 120 if (cellular.service_path() ==
121 cros->cellular_network().service_path()) {
121 if (cros->cellular_connected()) { 122 if (cros->cellular_connected()) {
122 info->status = kNetworkStatusConnected; 123 info->status = kNetworkStatusConnected;
123 info->message = l10n_util::GetStringUTF8( 124 info->message = l10n_util::GetStringUTF8(
124 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED); 125 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTED);
125 } else if (cros->cellular_connecting()) { 126 } else if (cros->cellular_connecting()) {
126 // TODO(stevenjb): Eliminate status message, or localize properly. 127 // TODO(stevenjb): Eliminate status message, or localize properly.
127 info->status = kNetworkStatusConnecting; 128 info->status = kNetworkStatusConnecting;
128 info->message = l10n_util::GetStringUTF8( 129 info->message = l10n_util::GetStringUTF8(
129 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING) 130 IDS_STATUSBAR_NETWORK_DEVICE_CONNECTING)
130 + ": " + cellular.GetStateString(); 131 + ": " + cellular.GetStateString();
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 ShowEthernet(cros->ethernet_network()); 269 ShowEthernet(cros->ethernet_network());
269 } 270 }
270 } else if (flags & FLAG_WIFI) { 271 } else if (flags & FLAG_WIFI) {
271 WifiNetwork wifi; 272 WifiNetwork wifi;
272 bool wifi_exists = cros->FindWifiNetworkByPath( 273 bool wifi_exists = cros->FindWifiNetworkByPath(
273 menu_items_[index].wireless_path, &wifi); 274 menu_items_[index].wireless_path, &wifi);
274 if (!wifi_exists) { 275 if (!wifi_exists) {
275 // If we are attempting to connect to a network that no longer exists, 276 // If we are attempting to connect to a network that no longer exists,
276 // display a notification. 277 // display a notification.
277 // TODO(stevenjb): Show notification. 278 // TODO(stevenjb): Show notification.
278 } else if (wifi.name() == cros->wifi_name()) { 279 } else if (wifi.service_path() == cros->wifi_network().service_path()) {
279 // Show the config settings for the active network. 280 // Show the config settings for the active network.
280 ShowWifi(wifi, false); 281 ShowWifi(wifi, false);
281 } else { 282 } else {
282 ConnectToNetworkAt(index, std::string(), std::string(), -1); 283 ConnectToNetworkAt(index, std::string(), std::string(), -1);
283 } 284 }
284 } else if (flags & FLAG_CELLULAR) { 285 } else if (flags & FLAG_CELLULAR) {
285 CellularNetwork cellular; 286 CellularNetwork cellular;
286 bool cellular_exists = cros->FindCellularNetworkByPath( 287 bool cellular_exists = cros->FindCellularNetworkByPath(
287 menu_items_[index].wireless_path, &cellular); 288 menu_items_[index].wireless_path, &cellular);
288 if (!cellular_exists) { 289 if (!cellular_exists) {
289 // If we are attempting to connect to a network that no longer exists, 290 // If we are attempting to connect to a network that no longer exists,
290 // display a notification. 291 // display a notification.
291 // TODO(stevenjb): Show notification. 292 // TODO(stevenjb): Show notification.
292 } else if (cellular.name() == cros->cellular_name()) { 293 } else if (cellular.service_path() ==
294 cros->cellular_network().service_path()) {
293 // Show the config settings for the cellular network. 295 // Show the config settings for the cellular network.
294 ShowCellular(cellular, false); 296 ShowCellular(cellular, false);
295 } else { 297 } else {
296 ConnectToNetworkAt(index, std::string(), std::string(), -1); 298 ConnectToNetworkAt(index, std::string(), std::string(), -1);
297 } 299 }
298 } 300 }
299 } 301 }
300 302
301 void NetworkMenu::SetFirstLevelMenuWidth(int width) { 303 void NetworkMenu::SetFirstLevelMenuWidth(int width) {
302 min_width_ = width; 304 min_width_ = width;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 400 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
399 401
400 // Ethernet 402 // Ethernet
401 bool ethernet_connected = cros->ethernet_connected(); 403 bool ethernet_connected = cros->ethernet_connected();
402 bool ethernet_connecting = cros->ethernet_connecting(); 404 bool ethernet_connecting = cros->ethernet_connecting();
403 string16 label = l10n_util::GetStringUTF16( 405 string16 label = l10n_util::GetStringUTF16(
404 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); 406 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET);
405 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK); 407 SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
406 SkBitmap badge = ethernet_connecting || ethernet_connected ? 408 SkBitmap badge = ethernet_connecting || ethernet_connected ?
407 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); 409 SkBitmap() : *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
408 int flag = (ethernet_connecting || ethernet_connected) ? 410 int flag = FLAG_ETHERNET;
409 FLAG_ETHERNET | FLAG_ASSOCIATED : FLAG_ETHERNET; 411 if (ethernet_connecting || ethernet_connected)
412 flag |= FLAG_ASSOCIATED;
410 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 413 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
411 IconForDisplay(icon, badge), std::string(), flag)); 414 IconForDisplay(icon, badge), std::string(), flag));
412 415
413 // Wifi 416 // Wifi
414 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); 417 const WifiNetworkVector& wifi_networks = cros->wifi_networks();
415 const std::string& active_wifi_name = cros->wifi_name(); 418 const WifiNetwork& active_wifi = cros->wifi_network();
416 // Wifi networks ssids. 419 // Wifi networks ssids.
417 for (size_t i = 0; i < wifi_networks.size(); ++i) { 420 for (size_t i = 0; i < wifi_networks.size(); ++i) {
418 label = ASCIIToUTF16(wifi_networks[i].name()); 421 label = ASCIIToUTF16(wifi_networks[i].name());
419 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true); 422 SkBitmap icon = IconForNetworkStrength(wifi_networks[i].strength(), true);
420 SkBitmap badge = wifi_networks[i].encrypted() ? 423 SkBitmap badge = wifi_networks[i].encrypted() ?
421 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap(); 424 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE) : SkBitmap();
422 flag = (wifi_networks[i].name() == active_wifi_name) ? 425 flag = FLAG_WIFI;
423 FLAG_WIFI | FLAG_ASSOCIATED : FLAG_WIFI; 426 if (wifi_networks[i].service_path() == active_wifi.service_path())
427 flag |= FLAG_ASSOCIATED;
424 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 428 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
425 IconForDisplay(icon, badge), wifi_networks[i].service_path(), flag)); 429 IconForDisplay(icon, badge), wifi_networks[i].service_path(), flag));
426 } 430 }
427 431
428 // Cellular 432 // Cellular
429 const CellularNetworkVector& cell_networks = cros->cellular_networks(); 433 const CellularNetworkVector& cell_networks = cros->cellular_networks();
430 const std::string& active_cellular_name = cros->cellular_name(); 434 const CellularNetwork& active_cellular = cros->cellular_network();
431 // Cellular networks ssids. 435 // Cellular networks ssids.
432 for (size_t i = 0; i < cell_networks.size(); ++i) { 436 for (size_t i = 0; i < cell_networks.size(); ++i) {
433 label = ASCIIToUTF16(cell_networks[i].name()); 437 label = ASCIIToUTF16(cell_networks[i].name());
434 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true); 438 SkBitmap icon = IconForNetworkStrength(cell_networks[i].strength(), true);
435 // TODO(chocobo): Check cellular network 3g/edge. 439 // TODO(chocobo): Check cellular network 3g/edge.
436 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G); 440 SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
437 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE); 441 // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
438 flag = (cell_networks[i].name() == active_cellular_name) ? 442 flag = FLAG_CELLULAR;
439 FLAG_CELLULAR | FLAG_ASSOCIATED : FLAG_CELLULAR; 443 if (cell_networks[i].service_path() == active_cellular.service_path())
444 flag |= FLAG_ASSOCIATED;
440 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 445 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
441 IconForDisplay(icon, badge), cell_networks[i].service_path(), flag)); 446 IconForDisplay(icon, badge), cell_networks[i].service_path(), flag));
442 } 447 }
443 448
444 // No networks available message. 449 // No networks available message.
445 if (wifi_networks.empty() && cell_networks.empty()) { 450 if (wifi_networks.empty() && cell_networks.empty()) {
446 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, 451 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT,
447 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); 452 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
448 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 453 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
449 SkBitmap(), std::string(), FLAG_DISABLED)); 454 SkBitmap(), std::string(), FLAG_DISABLED));
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 chromeos::TYPE_WIFI); 571 chromeos::TYPE_WIFI);
567 browser->ShowOptionsTab(page); 572 browser->ShowOptionsTab(page);
568 } 573 }
569 } else { 574 } else {
570 const bool kFocusLogin = true; 575 const bool kFocusLogin = true;
571 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); 576 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin);
572 } 577 }
573 } 578 }
574 579
575 } // namespace chromeos 580 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/network_dropdown_button.cc ('k') | chrome/browser/chromeos/status/network_menu_button.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698