| Index: ash/system/chromeos/network/tray_network_state_observer.cc
|
| diff --git a/ash/system/chromeos/network/tray_network_state_observer.cc b/ash/system/chromeos/network/tray_network_state_observer.cc
|
| index 6de9bfedcbf95635e589e28d5586c91634d66dd8..b83edcbb693293378c43af715526683d68b4fa37 100644
|
| --- a/ash/system/chromeos/network/tray_network_state_observer.cc
|
| +++ b/ash/system/chromeos/network/tray_network_state_observer.cc
|
| @@ -41,16 +41,32 @@ void TrayNetworkStateObserver::DeviceListChanged() {
|
| delegate_->NetworkStateChanged(false);
|
| }
|
|
|
| +// Any change to the Default (primary connected) network, including Strength
|
| +// changes, should trigger a NetworkStateChanged update.
|
| void TrayNetworkStateObserver::DefaultNetworkChanged(
|
| const chromeos::NetworkState* network) {
|
| delegate_->NetworkStateChanged(true);
|
| }
|
|
|
| +// Any change to the Connection State should trigger a NetworkStateChanged
|
| +// update. This is important when both a VPN and a physical network are
|
| +// connected.
|
| +void TrayNetworkStateObserver::NetworkConnectionStateChanged(
|
| + const chromeos::NetworkState* network) {
|
| + delegate_->NetworkStateChanged(true);
|
| +}
|
| +
|
| +// This tracks Strength and other property changes for all networks. It will
|
| +// be called in addition to NetworkConnectionStateChanged for connection state
|
| +// changes.
|
| void TrayNetworkStateObserver::NetworkPropertiesUpdated(
|
| const chromeos::NetworkState* network) {
|
| if (network ==
|
| - NetworkHandler::Get()->network_state_handler()->DefaultNetwork())
|
| + NetworkHandler::Get()->network_state_handler()->DefaultNetwork()) {
|
| + // Trigger NetworkStateChanged in case the Strength property of the
|
| + // Default network changed.
|
| delegate_->NetworkStateChanged(true);
|
| + }
|
| delegate_->NetworkServiceChanged(network);
|
| }
|
|
|
|
|