Index: chrome/browser/chromeos/status/network_menu.cc |
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc |
index 8689d15a921ffc50a60c6208278cf318a598293d..830e24a5f26901019af258736b11ad2a9cf5e193 100644 |
--- a/chrome/browser/chromeos/status/network_menu.cc |
+++ b/chrome/browser/chromeos/status/network_menu.cc |
@@ -755,11 +755,10 @@ void MainMenuModel::InitMenuItems(bool is_browser_mode, |
SkBitmap(), std::string(), FLAG_DISABLED)); |
} |
- // If we are logged in and there is a connected network, |
+ // If we are logged in and there is a connected network or a connected VPN, |
// add submenu for Private Networks. |
if (is_browser_mode) { |
- const Network* connected_network = cros->connected_network(); |
- if (connected_network) { |
+ if (cros->connected_network() || cros->virtual_network_connected()) { |
menu_items_.push_back(MenuItem()); // Separator |
const SkBitmap* icon = NetworkMenuIcon::GetVpnBitmap(); |
menu_items_.push_back(MenuItem( |
@@ -860,13 +859,8 @@ void VPNMenuModel::InitMenuItems(bool is_browser_mode, |
menu_items_.clear(); |
- // VPN only applies if there's a connected underlying network. |
- NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); |
- const Network* connected_network = cros->connected_network(); |
- if (!connected_network) |
- return; |
- |
// Populate our MenuItems with the current list of virtual networks. |
+ NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); |
const VirtualNetworkVector& virtual_networks = cros->virtual_networks(); |
const VirtualNetwork* active_vpn = cros->virtual_network(); |
@@ -907,10 +901,14 @@ void VPNMenuModel::InitMenuItems(bool is_browser_mode, |
if (!menu_items_.empty()) { // Add separator if menu is not empty. |
menu_items_.push_back(MenuItem()); |
} |
- menu_items_.push_back(MenuItem( |
- ui::MenuModel::TYPE_COMMAND, |
- l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_ADD_VPN), |
- SkBitmap(), std::string(), FLAG_ADD_VPN)); |
+ // Can only connect to a VPN if we have a connected network. |
+ if (cros->connected_network()) { |
+ menu_items_.push_back(MenuItem( |
+ ui::MenuModel::TYPE_COMMAND, |
+ l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_ADD_VPN), |
+ SkBitmap(), std::string(), FLAG_ADD_VPN)); |
+ } |
+ // Show disconnect if we have an active VPN. |
if (active_vpn) { |
menu_items_.push_back(MenuItem( |
ui::MenuModel::TYPE_COMMAND, |