Index: chrome/browser/chromeos/status/network_menu_icon.cc |
diff --git a/chrome/browser/chromeos/status/network_menu_icon.cc b/chrome/browser/chromeos/status/network_menu_icon.cc |
index fcc4baedefdc231bcb81f8c3afd4196579c32abf..ea3699b7dcce7ee1987f55a100580b3a2484bc22 100644 |
--- a/chrome/browser/chromeos/status/network_menu_icon.cc |
+++ b/chrome/browser/chromeos/status/network_menu_icon.cc |
@@ -340,6 +340,13 @@ class NetworkIcon { |
} else { |
// Use the ethernet icon for VPN when not connected. |
icon_ = rb.GetBitmapNamed(IDR_STATUSBAR_WIRED); |
+ // We can be connected to a VPN, even when there is no connected |
+ // underlying network. In that case, for the status bar, show the |
+ // disconencted badge. |
+ if (is_status_bar_) { |
+ bottom_right_badge_ = |
+ rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED); |
+ } |
} |
// Overlay the VPN badge. |
bottom_left_badge_ = rb.GetBitmapNamed(kVpnBadgeId); |
@@ -566,8 +573,8 @@ void NetworkMenuIcon::SetIconAndText(string16* text) { |
// Icon + badges. |
icon_->SetDirty(); |
icon_->UpdateIcon(network); |
- // Overlay the VPN badge if connected or connecting to a VPN. |
- if (cros->virtual_network()) { |
+ // Overlay the VPN badge if connecting to a VPN. |
+ if (network->type() != TYPE_VPN && cros->virtual_network()) { |
const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId); |
if (cros->virtual_network()->connecting()) { |
double animation = GetAnimation(); |
@@ -578,8 +585,6 @@ void NetworkMenuIcon::SetIconAndText(string16* text) { |
vpn_connecting_badge_ = SkBitmapOperations::CreateBlendedBitmap( |
empty_vpn_badge_, *vpn_badge, animation); |
icon_->set_bottom_left_badge(&vpn_connecting_badge_); |
- } else if (cros->virtual_network()->connected()) { |
- icon_->set_bottom_left_badge(vpn_badge); |
} |
} |
if (!animating) |