| 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 20d76bcc6590498f10e6ebcac82589931fdbf661..18c29026870cceeb033a8cd7b6c2de7ed83b1a62 100644
|
| --- a/chrome/browser/chromeos/status/network_menu_icon.cc
|
| +++ b/chrome/browser/chromeos/status/network_menu_icon.cc
|
| @@ -157,7 +157,8 @@ class NetworkIcon {
|
| bottom_left_badge_(NULL),
|
| bottom_right_badge_(NULL),
|
| is_status_bar_(true),
|
| - connected_network_(NULL) {
|
| + connected_network_(NULL),
|
| + roaming_state_(ROAMING_STATE_UNKNOWN) {
|
| }
|
|
|
| // Service path constructor for cached network service icons.
|
| @@ -170,7 +171,8 @@ class NetworkIcon {
|
| bottom_left_badge_(NULL),
|
| bottom_right_badge_(NULL),
|
| is_status_bar_(false),
|
| - connected_network_(NULL) {
|
| + connected_network_(NULL),
|
| + roaming_state_(ROAMING_STATE_UNKNOWN) {
|
| }
|
|
|
| ~NetworkIcon() {
|
| @@ -223,7 +225,19 @@ class NetworkIcon {
|
| strength_index_ = index;
|
| dirty = true;
|
| }
|
| - } else if (type == TYPE_VPN) {
|
| + }
|
| + if (type == TYPE_CELLULAR) {
|
| + const CellularNetwork* cellular =
|
| + static_cast<const CellularNetwork*>(network);
|
| + const SkBitmap* technology_badge = BadgeForNetworkTechnology(cellular);
|
| + if (technology_badge != bottom_right_badge_)
|
| + dirty = true;
|
| + if (cellular->roaming_state() != roaming_state_) {
|
| + roaming_state_ = cellular->roaming_state();
|
| + dirty = true;
|
| + }
|
| + }
|
| + if (type == TYPE_VPN) {
|
| if (cros->connected_network() != connected_network_) {
|
| connected_network_ = cros->connected_network();
|
| dirty = true;
|
| @@ -391,6 +405,7 @@ class NetworkIcon {
|
| const SkBitmap* bottom_right_badge_;
|
| bool is_status_bar_;
|
| const Network* connected_network_; // weak pointer; used for VPN icons.
|
| + NetworkRoamingState roaming_state_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(NetworkIcon);
|
| };
|
| @@ -403,7 +418,8 @@ NetworkMenuIcon::NetworkMenuIcon(Delegate* delegate, Mode mode)
|
| : mode_(mode),
|
| delegate_(delegate),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(animation_connecting_(this)),
|
| - last_network_type_(TYPE_WIFI) {
|
| + last_network_type_(TYPE_WIFI),
|
| + connecting_network_(NULL) {
|
| // Generate empty images for blending.
|
| ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
| const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId);
|
|
|