summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/browser_init.cc10
-rw-r--r--chrome/browser/chromeos/cros/cros_mock.cc2
-rw-r--r--chrome/browser/chromeos/cros/mock_network_library.h10
-rw-r--r--chrome/browser/chromeos/cros/network_library.cc489
-rw-r--r--chrome/browser/chromeos/cros/network_library.h110
-rw-r--r--chrome/browser/chromeos/dom_ui/internet_options_handler.cc60
-rw-r--r--chrome/browser/chromeos/dom_ui/internet_options_handler.h25
-rw-r--r--chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc76
-rw-r--r--chrome/browser/chromeos/login/login_utils.cc12
-rw-r--r--chrome/browser/chromeos/login/network_screen.cc12
-rw-r--r--chrome/browser/chromeos/login/network_screen.h4
-rw-r--r--chrome/browser/chromeos/login/network_screen_browsertest.cc19
-rw-r--r--chrome/browser/chromeos/login/network_screen_delegate.h2
-rw-r--r--chrome/browser/chromeos/network_list.cc3
-rw-r--r--chrome/browser/chromeos/network_list.h2
-rw-r--r--chrome/browser/chromeos/network_message_observer.cc14
-rw-r--r--chrome/browser/chromeos/network_message_observer.h11
-rw-r--r--chrome/browser/chromeos/network_state_notifier.cc10
-rw-r--r--chrome/browser/chromeos/network_state_notifier.h10
-rw-r--r--chrome/browser/chromeos/network_state_notifier_browsertest.cc6
-rw-r--r--chrome/browser/chromeos/options/internet_page_view.cc35
-rw-r--r--chrome/browser/chromeos/options/internet_page_view.h6
-rw-r--r--chrome/browser/chromeos/status/network_dropdown_button.cc41
-rw-r--r--chrome/browser/chromeos/status/network_dropdown_button.h6
-rw-r--r--chrome/browser/chromeos/status/network_menu.cc45
-rw-r--r--chrome/browser/chromeos/status/network_menu.h5
-rw-r--r--chrome/browser/chromeos/status/network_menu_button.cc165
-rw-r--r--chrome/browser/chromeos/status/network_menu_button.h20
28 files changed, 381 insertions, 829 deletions
diff --git a/chrome/browser/browser_init.cc b/chrome/browser/browser_init.cc
index f28029f..15bfb0b 100644
--- a/chrome/browser/browser_init.cc
+++ b/chrome/browser/browser_init.cc
@@ -441,13 +441,11 @@ bool BrowserInit::LaunchBrowser(const CommandLine& command_line,
static chromeos::NetworkMessageObserver* network_message_observer =
new chromeos::NetworkMessageObserver(profile);
- chromeos::CrosLibrary::Get()->GetNetworkLibrary()
- ->AddNetworkManagerObserver(network_message_observer);
- chromeos::CrosLibrary::Get()->GetNetworkLibrary()
- ->AddCellularDataPlanObserver(network_message_observer);
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(
+ network_message_observer);
- chromeos::CrosLibrary::Get()->GetNetworkLibrary()
- ->AddNetworkManagerObserver(chromeos::NetworkStateNotifier::Get());
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(
+ chromeos::NetworkStateNotifier::Get());
}
#endif
return true;
diff --git a/chrome/browser/chromeos/cros/cros_mock.cc b/chrome/browser/chromeos/cros/cros_mock.cc
index 13416c5..25bf9aa 100644
--- a/chrome/browser/chromeos/cros/cros_mock.cc
+++ b/chrome/browser/chromeos/cros/cros_mock.cc
@@ -273,7 +273,7 @@ void CrosMock::SetNetworkLibraryStatusAreaExpectations() {
.Times(1)
.RetiresOnSaturation();
- // NetworkDropdownButton::OnNetworkManagerChanged() calls:
+ // NetworkDropdownButton::NetworkChanged() calls:
EXPECT_CALL(*mock_network_library_, ethernet_connected())
.Times(1)
.WillRepeatedly((Return(false)))
diff --git a/chrome/browser/chromeos/cros/mock_network_library.h b/chrome/browser/chromeos/cros/mock_network_library.h
index 513eca34..21465c7 100644
--- a/chrome/browser/chromeos/cros/mock_network_library.h
+++ b/chrome/browser/chromeos/cros/mock_network_library.h
@@ -17,12 +17,10 @@ class MockNetworkLibrary : public NetworkLibrary {
public:
MockNetworkLibrary() {}
virtual ~MockNetworkLibrary() {}
- MOCK_METHOD1(AddNetworkManagerObserver, void(NetworkManagerObserver*));
- MOCK_METHOD1(RemoveNetworkManagerObserver, void(NetworkManagerObserver*));
- MOCK_METHOD2(AddNetworkObserver, void(const char*, NetworkObserver*));
- MOCK_METHOD1(RemoveNetworkObserver, void(NetworkObserver*));
- MOCK_METHOD1(AddCellularDataPlanObserver, void(NetworkManagerObserver*));
- MOCK_METHOD1(RemoveCellularDataPlanObserver, void(NetworkManagerObserver*));
+ MOCK_METHOD1(AddObserver, void(Observer*));
+ MOCK_METHOD1(RemoveObserver, void(Observer*));
+ MOCK_METHOD2(AddProperyObserver, void(const char*, PropertyObserver*));
+ MOCK_METHOD1(RemoveProperyObserver, void(PropertyObserver*));
MOCK_METHOD0(ethernet_network, EthernetNetwork*(void));
MOCK_CONST_METHOD0(ethernet_connecting, bool(void));
MOCK_CONST_METHOD0(ethernet_connected, bool(void));
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc
index dac756c..feb4d49 100644
--- a/chrome/browser/chromeos/cros/network_library.cc
+++ b/chrome/browser/chromeos/cros/network_library.cc
@@ -12,130 +12,12 @@
#include "base/string_number_conversions.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
-#include "base/values.h"
#include "chrome/browser/browser_thread.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "grit/generated_resources.h"
namespace chromeos {
-namespace {
-// TODO(ers) These string constants and Parse functions are copied
-// straight out of libcros:chromeos_network.cc. Fix this by moving
-// all handling of properties into libcros.
-// Network service properties we are interested in monitoring
-static const char* kIsActiveProperty = "IsActive";
-static const char* kStateProperty = "State";
-static const char* kSignalStrengthProperty = "Strength";
-static const char* kActivationStateProperty = "Cellular.ActivationState";
-static const char* kNetworkTechnologyProperty = "Cellular.NetworkTechnology";
-static const char* kPaymentURLProperty = "Cellular.OlpUrl";
-static const char* kRestrictedPoolProperty = "Cellular.RestrictedPool";
-static const char* kRoamingStateProperty = "Cellular.RoamingState";
-
-// Connman state options.
-static const char* kStateIdle = "idle";
-static const char* kStateCarrier = "carrier";
-static const char* kStateAssociation = "association";
-static const char* kStateConfiguration = "configuration";
-static const char* kStateReady = "ready";
-static const char* kStateDisconnect = "disconnect";
-static const char* kStateFailure = "failure";
-static const char* kStateActivationFailure = "activation-failure";
-
-// Connman activation state options
-static const char* kActivationStateActivated = "activated";
-static const char* kActivationStateActivating = "activating";
-static const char* kActivationStateNotActivated = "not-activated";
-static const char* kActivationStatePartiallyActivated = "partially-activated";
-static const char* kActivationStateUnknown = "unknown";
-
-// Connman network technology options.
-static const char* kNetworkTechnology1Xrtt = "1xRTT";
-static const char* kNetworkTechnologyEvdo = "EVDO";
-static const char* kNetworkTechnologyGprs = "GPRS";
-static const char* kNetworkTechnologyEdge = "EDGE";
-static const char* kNetworkTechnologyUmts = "UMTS";
-static const char* kNetworkTechnologyHspa = "HSPA";
-static const char* kNetworkTechnologyHspaPlus = "HSPA+";
-static const char* kNetworkTechnologyLte = "LTE";
-static const char* kNetworkTechnologyLteAdvanced = "LTE Advanced";
-
-// Connman roaming state options
-static const char* kRoamingStateHome = "home";
-static const char* kRoamingStateRoaming = "roaming";
-static const char* kRoamingStateUnknown = "unknown";
-
-static ConnectionState ParseState(const std::string& state) {
- if (state == kStateIdle)
- return STATE_IDLE;
- if (state == kStateCarrier)
- return STATE_CARRIER;
- if (state == kStateAssociation)
- return STATE_ASSOCIATION;
- if (state == kStateConfiguration)
- return STATE_CONFIGURATION;
- if (state == kStateReady)
- return STATE_READY;
- if (state == kStateDisconnect)
- return STATE_DISCONNECT;
- if (state == kStateFailure)
- return STATE_FAILURE;
- if (state == kStateActivationFailure)
- return STATE_ACTIVATION_FAILURE;
- return STATE_UNKNOWN;
-}
-
-static ActivationState ParseActivationState(
- const std::string& activation_state) {
- if (activation_state == kActivationStateActivated)
- return ACTIVATION_STATE_ACTIVATED;
- if (activation_state == kActivationStateActivating)
- return ACTIVATION_STATE_ACTIVATING;
- if (activation_state == kActivationStateNotActivated)
- return ACTIVATION_STATE_NOT_ACTIVATED;
- if (activation_state == kActivationStateUnknown)
- return ACTIVATION_STATE_UNKNOWN;
- if (activation_state == kActivationStatePartiallyActivated)
- return ACTIVATION_STATE_PARTIALLY_ACTIVATED;
- return ACTIVATION_STATE_UNKNOWN;
-}
-
-static NetworkTechnology ParseNetworkTechnology(
- const std::string& technology) {
- if (technology == kNetworkTechnology1Xrtt)
- return NETWORK_TECHNOLOGY_1XRTT;
- if (technology == kNetworkTechnologyEvdo)
- return NETWORK_TECHNOLOGY_EVDO;
- if (technology == kNetworkTechnologyGprs)
- return NETWORK_TECHNOLOGY_GPRS;
- if (technology == kNetworkTechnologyEdge)
- return NETWORK_TECHNOLOGY_EDGE;
- if (technology == kNetworkTechnologyUmts)
- return NETWORK_TECHNOLOGY_UMTS;
- if (technology == kNetworkTechnologyHspa)
- return NETWORK_TECHNOLOGY_HSPA;
- if (technology == kNetworkTechnologyHspaPlus)
- return NETWORK_TECHNOLOGY_HSPA_PLUS;
- if (technology == kNetworkTechnologyLte)
- return NETWORK_TECHNOLOGY_LTE;
- if (technology == kNetworkTechnologyLteAdvanced)
- return NETWORK_TECHNOLOGY_LTE_ADVANCED;
- return NETWORK_TECHNOLOGY_UNKNOWN;
-}
-static NetworkRoamingState ParseRoamingState(
- const std::string& roaming_state) {
- if (roaming_state == kRoamingStateHome)
- return ROAMING_STATE_HOME;
- if (roaming_state == kRoamingStateRoaming)
- return ROAMING_STATE_ROAMING;
- if (roaming_state == kRoamingStateUnknown)
- return ROAMING_STATE_UNKNOWN;
- return ROAMING_STATE_UNKNOWN;
-}
-
-}
-
// Helper function to wrap Html with <th> tag.
static std::string WrapWithTH(std::string text) {
return "<th>" + text + "</th>";
@@ -217,7 +99,6 @@ void Network::Clear() {
service_path_.clear();
device_path_.clear();
ip_address_.clear();
- is_active_ = false;
}
Network::Network(const ServiceInfo* service) {
@@ -226,7 +107,6 @@ Network::Network(const ServiceInfo* service) {
error_ = service->error;
service_path_ = SafeString(service->service_path);
device_path_ = SafeString(service->device_path);
- is_active_ = service->is_active;
ip_address_.clear();
// If connected, get ip config.
if (EnsureCrosLoaded() && connected() && service->device_path) {
@@ -630,7 +510,7 @@ bool WifiNetwork::IsCertificateLoaded() const {
class NetworkLibraryImpl : public NetworkLibrary {
public:
NetworkLibraryImpl()
- : network_manager_monitor_(NULL),
+ : network_status_connection_(NULL),
data_plan_monitor_(NULL),
ethernet_(NULL),
wifi_(NULL),
@@ -641,98 +521,68 @@ class NetworkLibraryImpl : public NetworkLibrary {
offline_mode_(false) {
if (EnsureCrosLoaded()) {
Init();
- network_manager_monitor_ =
- MonitorNetworkManager(&NetworkManagerStatusChangedHandler,
- this);
- data_plan_monitor_ = MonitorCellularDataPlan(&DataPlanUpdateHandler,
- this);
} else {
InitTestData();
}
}
~NetworkLibraryImpl() {
- DCHECK(!network_manager_observers_.size());
- DCHECK(network_manager_monitor_);
- DisconnectPropertyChangeMonitor(network_manager_monitor_);
- DCHECK(!data_plan_observers_.size());
- DCHECK(data_plan_monitor_);
- DisconnectDataPlanUpdateMonitor(data_plan_monitor_);
- DCHECK(!network_observers_.size());
- STLDeleteValues(&network_observers_);
+ if (network_status_connection_) {
+ DisconnectMonitorNetwork(network_status_connection_);
+ }
+ if (data_plan_monitor_) {
+ DisconnectDataPlanUpdateMonitor(data_plan_monitor_);
+ }
+ // DCHECK(!observers_.size());
+ DCHECK(!property_observers_.size());
+ STLDeleteValues(&property_observers_);
ClearNetworks();
}
- virtual void AddNetworkManagerObserver(NetworkManagerObserver* observer) {
- network_manager_observers_.AddObserver(observer);
+ void AddObserver(Observer* observer) {
+ observers_.AddObserver(observer);
}
- virtual void RemoveNetworkManagerObserver(NetworkManagerObserver* observer) {
- if (!network_manager_observers_.HasObserver(observer))
- network_manager_observers_.RemoveObserver(observer);
+ void RemoveObserver(Observer* observer) {
+ observers_.RemoveObserver(observer);
}
- virtual void AddNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) {
+ virtual void AddProperyObserver(const char* service_path,
+ PropertyObserver* observer) {
+ DCHECK(service_path);
DCHECK(observer);
if (!EnsureCrosLoaded())
return;
// First, add the observer to the callback map.
- NetworkObserverMap::iterator iter = network_observers_.find(service_path);
- NetworkObserverList* oblist;
- if (iter != network_observers_.end()) {
- oblist = iter->second;
+ PropertyChangeObserverMap::iterator iter = property_observers_.find(
+ std::string(service_path));
+ if (iter != property_observers_.end()) {
+ iter->second->AddObserver(observer);
} else {
- std::pair<NetworkObserverMap::iterator, bool> inserted =
- network_observers_.insert(
- std::make_pair<std::string, NetworkObserverList*>(
- service_path,
- new NetworkObserverList(this, service_path)));
- oblist = inserted.first->second;
- }
- if (!oblist->HasObserver(observer))
- oblist->AddObserver(observer);
- }
-
- virtual void RemoveNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) {
- DCHECK(observer);
- DCHECK(service_path.size());
- NetworkObserverMap::iterator map_iter = network_observers_.find(
- service_path);
- if (map_iter != network_observers_.end()) {
- map_iter->second->RemoveObserver(observer);
- if (!map_iter->second->size()) {
- delete map_iter->second;
- network_observers_.erase(map_iter++);
- }
+ std::pair<PropertyChangeObserverMap::iterator, bool> inserted =
+ property_observers_.insert(
+ std::pair<std::string, PropertyObserverList*>(
+ std::string(service_path),
+ new PropertyObserverList(this, service_path)));
+ inserted.first->second->AddObserver(observer);
}
}
- virtual void RemoveObserverForAllNetworks(NetworkObserver* observer) {
+ virtual void RemoveProperyObserver(PropertyObserver* observer) {
DCHECK(observer);
- NetworkObserverMap::iterator map_iter = network_observers_.begin();
- while (map_iter != network_observers_.end()) {
+ PropertyChangeObserverMap::iterator map_iter =
+ property_observers_.begin();
+ while (map_iter != property_observers_.end()) {
map_iter->second->RemoveObserver(observer);
if (!map_iter->second->size()) {
delete map_iter->second;
- network_observers_.erase(map_iter++);
+ property_observers_.erase(map_iter++);
} else {
++map_iter;
}
}
}
- virtual void AddCellularDataPlanObserver(CellularDataPlanObserver* observer) {
- if (!data_plan_observers_.HasObserver(observer))
- data_plan_observers_.AddObserver(observer);
- }
-
- virtual void RemoveCellularDataPlanObserver(
- CellularDataPlanObserver* observer) {
- data_plan_observers_.RemoveObserver(observer);
- }
-
virtual EthernetNetwork* ethernet_network() { return ethernet_; }
virtual bool ethernet_connecting() const {
return ethernet_ ? ethernet_->connecting() : false;
@@ -766,14 +616,14 @@ class NetworkLibraryImpl : public NetworkLibrary {
}
const std::string& IPAddress() const {
- // Returns IP address for the active network.
- const Network* active = active_network();
- if (active != NULL)
- return active->ip_address();
- if (ethernet_)
+ // Returns highest priority IP address.
+ if (ethernet_connected())
return ethernet_->ip_address();
- static std::string null_address("0.0.0.0");
- return null_address;
+ if (wifi_connected())
+ return wifi_->ip_address();
+ if (cellular_connected())
+ return cellular_->ip_address();
+ return ethernet_->ip_address();
}
virtual const WifiNetworkVector& wifi_networks() const {
@@ -838,7 +688,6 @@ class NetworkLibraryImpl : public NetworkLibrary {
DCHECK(network);
if (!EnsureCrosLoaded())
return;
- // TODO(ers) make wifi the highest priority service type
if (ConnectToNetworkWithCertInfo(network->service_path().c_str(),
password.empty() ? NULL : password.c_str(),
identity.empty() ? NULL : identity.c_str(),
@@ -853,7 +702,7 @@ class NetworkLibraryImpl : public NetworkLibrary {
wifi->set_connecting(true);
wifi_ = wifi;
}
- NotifyNetworkManagerChanged();
+ NotifyNetworkChanged();
}
}
@@ -872,7 +721,6 @@ class NetworkLibraryImpl : public NetworkLibrary {
// Set auto-connect.
SetAutoConnect(service->service_path, auto_connect);
// Now connect to that service.
- // TODO(ers) make wifi the highest priority service type
ConnectToNetworkWithCertInfo(service->service_path,
password.empty() ? NULL : password.c_str(),
identity.empty() ? NULL : identity.c_str(),
@@ -890,7 +738,6 @@ class NetworkLibraryImpl : public NetworkLibrary {
DCHECK(network);
if (!EnsureCrosLoaded())
return;
- // TODO(ers) make cellular the highest priority service type
if (network && ConnectToNetwork(network->service_path().c_str(), NULL)) {
// Update local cache and notify listeners.
CellularNetwork* cellular = GetWirelessNetworkByPath(
@@ -899,7 +746,7 @@ class NetworkLibraryImpl : public NetworkLibrary {
cellular->set_connecting(true);
cellular_ = cellular;
}
- NotifyNetworkManagerChanged();
+ NotifyNetworkChanged();
}
}
@@ -914,7 +761,6 @@ class NetworkLibraryImpl : public NetworkLibrary {
DCHECK(network);
if (!EnsureCrosLoaded() || !network)
return;
- // TODO(ers) restore default service type priority ordering?
if (DisconnectFromNetwork(network->service_path().c_str())) {
// Update local cache and notify listeners.
if (network->type() == TYPE_WIFI) {
@@ -932,7 +778,7 @@ class NetworkLibraryImpl : public NetworkLibrary {
cellular_ = NULL;
}
}
- NotifyNetworkManagerChanged();
+ NotifyNetworkChanged();
}
}
@@ -974,7 +820,7 @@ class NetworkLibraryImpl : public NetworkLibrary {
break;
}
}
- NotifyNetworkManagerChanged();
+ NotifyNetworkChanged();
}
}
@@ -1000,16 +846,6 @@ class NetworkLibraryImpl : public NetworkLibrary {
virtual bool offline_mode() const { return offline_mode_; }
- virtual const Network* active_network() const {
- if (ethernet_ && ethernet_->is_active())
- return ethernet_;
- if (wifi_ && wifi_->is_active())
- return wifi_;
- if (cellular_ && cellular_->is_active())
- return cellular_;
- return NULL;
- }
-
virtual void EnableEthernetNetworkDevice(bool enable) {
EnableNetworkDeviceType(TYPE_ETHERNET, enable);
}
@@ -1115,53 +951,52 @@ class NetworkLibraryImpl : public NetworkLibrary {
private:
- class NetworkObserverList : public ObserverList<NetworkObserver> {
+ class PropertyObserverList : public ObserverList<PropertyObserver> {
public:
- NetworkObserverList(NetworkLibraryImpl* library,
- const std::string& service_path) {
- network_monitor_ = MonitorNetworkService(&NetworkStatusChangedHandler,
- service_path.c_str(),
- library);
+ PropertyObserverList(NetworkLibraryImpl* library,
+ const char* service_path) {
+ DCHECK(service_path);
+ property_change_monitor_ = MonitorNetworkService(&PropertyChangeHandler,
+ service_path,
+ library);
}
- virtual ~NetworkObserverList() {
- if (network_monitor_)
- DisconnectPropertyChangeMonitor(network_monitor_);
+ virtual ~PropertyObserverList() {
+ if (property_change_monitor_)
+ DisconnectPropertyChangeMonitor(property_change_monitor_);
}
private:
- static void NetworkStatusChangedHandler(void* object,
- const char* path,
- const char* key,
- const Value* value) {
- NetworkLibraryImpl* networklib = static_cast<NetworkLibraryImpl*>(object);
- DCHECK(networklib);
- networklib->UpdateNetworkStatus(path, key, value);
+ static void PropertyChangeHandler(void* object,
+ const char* path,
+ const char* key,
+ const Value* value) {
+ NetworkLibraryImpl* network = static_cast<NetworkLibraryImpl*>(object);
+ DCHECK(network);
+ network->NotifyPropertyChange(path, key, value);
}
- PropertyChangeMonitor network_monitor_;
+ PropertyChangeMonitor property_change_monitor_;
};
- typedef std::map<std::string, NetworkObserverList*> NetworkObserverMap;
+ typedef std::map<std::string, PropertyObserverList*>
+ PropertyChangeObserverMap;
- static void NetworkManagerStatusChangedHandler(void* object,
- const char* path,
- const char* key,
- const Value* value) {
- NetworkLibraryImpl* networklib = static_cast<NetworkLibraryImpl*>(object);
- DCHECK(networklib);
- networklib->UpdateNetworkManagerStatus();
+ static void NetworkStatusChangedHandler(void* object) {
+ NetworkLibraryImpl* network = static_cast<NetworkLibraryImpl*>(object);
+ DCHECK(network);
+ network->UpdateNetworkStatus();
}
static void DataPlanUpdateHandler(void* object,
const char* modem_service_path,
const CellularDataPlanList* dataplan) {
- NetworkLibraryImpl* networklib = static_cast<NetworkLibraryImpl*>(object);
- DCHECK(networklib && networklib->cellular_network());
+ NetworkLibraryImpl* network = static_cast<NetworkLibraryImpl*>(object);
+ DCHECK(network && network->cellular_network());
// Store data plan for currently connected cellular network.
- if (networklib->cellular_network()->service_path()
+ if (network->cellular_network()->service_path()
.compare(modem_service_path) == 0) {
if (dataplan != NULL) {
- networklib->UpdateCellularDataPlan(*dataplan);
+ network->UpdateCellularDataPlan(*dataplan);
}
}
}
@@ -1186,7 +1021,6 @@ class NetworkLibraryImpl : public NetworkLibrary {
<< " str=" << service->strength
<< " fav=" << service->favorite
<< " auto=" << service->auto_connect
- << " is_active=" << service->is_active
<< " error=" << service->error;
// Once a connected ethernet service is found, disregard other ethernet
// services that are also found
@@ -1226,10 +1060,17 @@ class NetworkLibraryImpl : public NetworkLibrary {
}
void Init() {
- // First, get the currently available networks. This data is cached
+ // First, get the currently available networks. This data is cached
// on the connman side, so the call should be quick.
VLOG(1) << "Getting initial CrOS network info.";
UpdateSystemInfo();
+
+ VLOG(1) << "Registering for network status updates.";
+ // Now, register to receive updates on network status.
+ network_status_connection_ = MonitorNetwork(&NetworkStatusChangedHandler,
+ this);
+ VLOG(1) << "Registering for cellular data plan updates.";
+ data_plan_monitor_ = MonitorCellularDataPlan(&DataPlanUpdateHandler, this);
}
void InitTestData() {
@@ -1308,7 +1149,7 @@ class NetworkLibraryImpl : public NetworkLibrary {
void UpdateSystemInfo() {
if (EnsureCrosLoaded()) {
- UpdateNetworkManagerStatus();
+ UpdateNetworkStatus();
}
}
@@ -1357,40 +1198,53 @@ class NetworkLibraryImpl : public NetworkLibrary {
EnableNetworkDevice(device, enable);
}
- void NotifyNetworkManagerChanged() {
- FOR_EACH_OBSERVER(NetworkManagerObserver,
- network_manager_observers_,
- OnNetworkManagerChanged(this));
+ void NotifyNetworkChanged() {
+ FOR_EACH_OBSERVER(Observer, observers_, NetworkChanged(this));
}
- void NotifyNetworkChanged(Network* network) {
- DCHECK(network);
- NetworkObserverMap::const_iterator iter = network_observers_.find(
- network->service_path());
- if (iter != network_observers_.end()) {
- FOR_EACH_OBSERVER(NetworkObserver,
- *(iter->second),
- OnNetworkChanged(this, network));
+ void NotifyCellularDataPlanChanged() {
+ FOR_EACH_OBSERVER(Observer, observers_, CellularDataPlanChanged(this));
+ }
+
+ void NotifyPropertyChange(const char* service_path,
+ const char* key,
+ const Value* value) {
+ DCHECK(service_path);
+ DCHECK(key);
+ DCHECK(value);
+ PropertyChangeObserverMap::const_iterator iter = property_observers_.find(
+ std::string(service_path));
+ if (iter != property_observers_.end()) {
+ FOR_EACH_OBSERVER(PropertyObserver, *(iter->second),
+ PropertyChanged(service_path, key, value));
} else {
NOTREACHED() <<
"There weren't supposed to be any property change observers of " <<
- network->service_path();
+ service_path;
}
}
- void NotifyCellularDataPlanChanged() {
- FOR_EACH_OBSERVER(CellularDataPlanObserver,
- data_plan_observers_,
- OnCellularDataPlanChanged(this));
+ void ClearNetworks() {
+ if (ethernet_)
+ delete ethernet_;
+ ethernet_ = NULL;
+ wifi_ = NULL;
+ cellular_ = NULL;
+ STLDeleteElements(&wifi_networks_);
+ wifi_networks_.clear();
+ STLDeleteElements(&cellular_networks_);
+ cellular_networks_.clear();
+ STLDeleteElements(&remembered_wifi_networks_);
+ remembered_wifi_networks_.clear();
}
- void UpdateNetworkManagerStatus() {
+ void UpdateNetworkStatus() {
// Make sure we run on UI thread.
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
NewRunnableMethod(this,
- &NetworkLibraryImpl::UpdateNetworkManagerStatus));
+ &NetworkLibraryImpl::UpdateNetworkStatus));
return;
}
@@ -1434,114 +1288,30 @@ class NetworkLibraryImpl : public NetworkLibrary {
connected_devices_ = system->connected_technologies;
offline_mode_ = system->offline_mode;
- NotifyNetworkManagerChanged();
+ NotifyNetworkChanged();
FreeSystemInfo(system);
}
- void UpdateNetworkStatus(const char* path,
- const char* key,
- const Value* value) {
- if (key == NULL || value == NULL)
- return;
- // Make sure we run on UI thread.
- if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this,
- &NetworkLibraryImpl::UpdateNetworkStatus,
- path, key, value));
- return;
- }
-
- bool boolval = false;
- int intval = 0;
- std::string stringval;
- Network* network;
- if (ethernet_->service_path() == path) {
- network = ethernet_;
- } else {
- CellularNetwork* cellular =
- GetWirelessNetworkByPath(cellular_networks_, path);
- WifiNetwork* wifi =
- GetWirelessNetworkByPath(wifi_networks_, path);
- if (cellular == NULL && wifi == NULL)
- return;
-
- WirelessNetwork* wireless;
- if (wifi != NULL)
- wireless = static_cast<WirelessNetwork*>(wifi);
- else
- wireless = static_cast<WirelessNetwork*>(cellular);
-
- if (strcmp(key, kSignalStrengthProperty) == 0) {
- if (value->GetAsInteger(&intval))
- wireless->set_strength(intval);
- } else if (cellular != NULL) {
- if (strcmp(key, kRestrictedPoolProperty) == 0) {
- if (value->GetAsBoolean(&boolval))
- cellular->set_restricted_pool(boolval);
- } else if (strcmp(key, kActivationStateProperty) == 0) {
- if (value->GetAsString(&stringval))
- cellular->set_activation_state(ParseActivationState(stringval));
- } else if (strcmp(key, kPaymentURLProperty) == 0) {
- if (value->GetAsString(&stringval))
- cellular->set_payment_url(stringval);
- } else if (strcmp(key, kNetworkTechnologyProperty) == 0) {
- if (value->GetAsString(&stringval))
- cellular->set_network_technology(
- ParseNetworkTechnology(stringval));
- } else if (strcmp(key, kRoamingStateProperty) == 0) {
- if (value->GetAsString(&stringval))
- cellular->set_roaming_state(ParseRoamingState(stringval));
- }
- }
- network = wireless;
- }
- if (strcmp(key, kIsActiveProperty) == 0) {
- if (value->GetAsBoolean(&boolval))
- network->set_active(boolval);
- } else if (strcmp(key, kStateProperty) == 0) {
- if (value->GetAsString(&stringval))
- network->set_state(ParseState(stringval));
- }
- NotifyNetworkChanged(network);
- }
-
void UpdateCellularDataPlan(const CellularDataPlanList& data_plans) {
DCHECK(cellular_);
cellular_->SetDataPlans(data_plans);
NotifyCellularDataPlanChanged();
}
- void ClearNetworks() {
- if (ethernet_)
- delete ethernet_;
- ethernet_ = NULL;
- wifi_ = NULL;
- cellular_ = NULL;
- STLDeleteElements(&wifi_networks_);
- wifi_networks_.clear();
- STLDeleteElements(&cellular_networks_);
- cellular_networks_.clear();
- STLDeleteElements(&remembered_wifi_networks_);
- remembered_wifi_networks_.clear();
- }
-
- // Network manager observer list
- ObserverList<NetworkManagerObserver> network_manager_observers_;
+ ObserverList<Observer> observers_;
- // Cellular data plan observer list
- ObserverList<CellularDataPlanObserver> data_plan_observers_;
+ // Property change observer map
+ PropertyChangeObserverMap property_observers_;
- // Network observer map
- NetworkObserverMap network_observers_;
-
- // For monitoring network manager status changes.
- PropertyChangeMonitor network_manager_monitor_;
+ // The network status connection for monitoring network status changes.
+ MonitorNetworkConnection network_status_connection_;
// For monitoring data plan changes to the connected cellular network.
DataPlanUpdateMonitor data_plan_monitor_;
+ // The property change connection for monitoring service property changes.
+ std::map<std::string, PropertyChangeMonitor> property_change_monitors_;
+
// The ethernet network.
EthernetNetwork* ethernet_;
@@ -1583,17 +1353,11 @@ class NetworkLibraryStubImpl : public NetworkLibrary {
cellular_(NULL) {
}
~NetworkLibraryStubImpl() { if (ethernet_) delete ethernet_; }
- virtual void AddNetworkManagerObserver(NetworkManagerObserver* observer) {}
- virtual void RemoveNetworkManagerObserver(NetworkManagerObserver* observer) {}
- virtual void AddNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) {}
- virtual void RemoveNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) {}
- virtual void RemoveObserverForAllNetworks(NetworkObserver* observer) {}
- virtual void AddCellularDataPlanObserver(
- CellularDataPlanObserver* observer) {}
- virtual void RemoveCellularDataPlanObserver(
- CellularDataPlanObserver* observer) {}
+ virtual void AddObserver(Observer* observer) {}
+ virtual void RemoveObserver(Observer* observer) {}
+ virtual void AddProperyObserver(const char* service_path,
+ PropertyObserver* observer) {}
+ virtual void RemoveProperyObserver(PropertyObserver* observer) {}
virtual EthernetNetwork* ethernet_network() {
return ethernet_;
}
@@ -1658,7 +1422,6 @@ class NetworkLibraryStubImpl : public NetworkLibrary {
virtual bool ethernet_enabled() const { return true; }
virtual bool wifi_enabled() const { return false; }
virtual bool cellular_enabled() const { return false; }
- virtual const Network* active_network() const { return NULL; }
virtual bool offline_mode() const { return false; }
virtual void EnableEthernetNetworkDevice(bool enable) {}
virtual void EnableWifiNetworkDevice(bool enable) {}
diff --git a/chrome/browser/chromeos/cros/network_library.h b/chrome/browser/chromeos/cros/network_library.h
index 1e48fc7..65574ed 100644
--- a/chrome/browser/chromeos/cros/network_library.h
+++ b/chrome/browser/chromeos/cros/network_library.h
@@ -48,10 +48,13 @@ class Network {
state_ == STATE_IDLE; }
ConnectionError error() const { return error_; }
ConnectionState state() const { return state_; }
- // Is this the active network, i.e, the one through which
- // network traffic is being routed? A network can be connected,
- // but not be carrying traffic.
- bool is_active() const { return is_active_; }
+
+ void set_service_path(const std::string& service_path) {
+ service_path_ = service_path; }
+ void set_connecting(bool connecting) { state_ = (connecting ?
+ STATE_ASSOCIATION : STATE_IDLE); }
+ void set_connected(bool connected) { state_ = (connected ?
+ STATE_READY : STATE_IDLE); }
// Clear the fields.
virtual void Clear();
@@ -66,8 +69,7 @@ class Network {
Network()
: type_(TYPE_UNKNOWN),
state_(STATE_UNKNOWN),
- error_(ERROR_UNKNOWN),
- is_active_(false) {}
+ error_(ERROR_UNKNOWN) {}
explicit Network(const Network& network);
explicit Network(const ServiceInfo* service);
virtual ~Network() {}
@@ -78,19 +80,6 @@ class Network {
ConnectionType type_;
ConnectionState state_;
ConnectionError error_;
- bool is_active_;
-
- private:
- void set_service_path(const std::string& service_path) {
- service_path_ = service_path; }
- void set_connecting(bool connecting) { state_ = (connecting ?
- STATE_ASSOCIATION : STATE_IDLE); }
- void set_connected(bool connected) { state_ = (connected ?
- STATE_READY : STATE_IDLE); }
- void set_state(ConnectionState state) { state_ = state; }
- void set_active(bool is_active) { is_active_ = is_active; }
-
- friend class NetworkLibraryImpl;
};
class EthernetNetwork : public Network {
@@ -130,6 +119,8 @@ class WirelessNetwork : public Network {
bool auto_connect() const { return auto_connect_; }
bool favorite() const { return favorite_; }
+ void set_name(const std::string& name) { name_ = name; }
+ void set_strength(int strength) { strength_ = strength; }
void set_auto_connect(bool auto_connect) { auto_connect_ = auto_connect; }
void set_favorite(bool favorite) { favorite_ = favorite; }
@@ -149,12 +140,6 @@ class WirelessNetwork : public Network {
int strength_;
bool auto_connect_;
bool favorite_;
-
- private:
- void set_name(const std::string& name) { name_ = name; }
- void set_strength(int strength) { strength_ = strength; }
-
- friend class NetworkLibraryImpl;
};
class CellularNetwork : public WirelessNetwork {
@@ -173,6 +158,9 @@ class CellularNetwork : public WirelessNetwork {
// Starts device activation process. Returns false if the device state does
// not permit activation.
bool StartActivation() const;
+ void set_activation_state(ActivationState state) {
+ activation_state_ = state;
+ }
const ActivationState activation_state() const { return activation_state_; }
const NetworkTechnology network_technology() const {
return network_technology_;
@@ -183,6 +171,9 @@ class CellularNetwork : public WirelessNetwork {
const std::string& operator_name() const { return operator_name_; }
const std::string& operator_code() const { return operator_code_; }
const std::string& payment_url() const { return payment_url_; }
+ void set_payment_url(const std::string& url) {
+ payment_url_ = url;
+ }
const std::string& meid() const { return meid_; }
const std::string& imei() const { return imei_; }
const std::string& imsi() const { return imsi_; }
@@ -243,25 +234,6 @@ class CellularNetwork : public WirelessNetwork {
std::string last_update_;
unsigned int prl_version_;
CellularDataPlanList data_plans_;
-
- private:
- void set_activation_state(ActivationState state) {
- activation_state_ = state;
- }
- void set_payment_url(const std::string& url) {
- payment_url_ = url;
- }
- void set_network_technology(NetworkTechnology technology) {
- network_technology_ = technology;
- }
- void set_roaming_state(NetworkRoamingState state) {
- roaming_state_ = state;
- }
- void set_restricted_pool(bool restricted_pool) {
- restricted_pool_ = restricted_pool;
- }
-
- friend class NetworkLibraryImpl;
};
class WifiNetwork : public WirelessNetwork {
@@ -367,47 +339,27 @@ typedef std::vector<NetworkIPConfig> NetworkIPConfigVector;
// library like this: chromeos::CrosLibrary::Get()->GetNetworkLibrary()
class NetworkLibrary {
public:
- class NetworkManagerObserver {
+ class Observer {
public:
- // Called when the state of the network manager has changed,
- // for example, networks have appeared or disappeared.
- virtual void OnNetworkManagerChanged(NetworkLibrary* obj) = 0;
- };
-
- class NetworkObserver {
- public:
- // Called when the state of a single network has changed,
- // for example signal strength or connection state.
- virtual void OnNetworkChanged(NetworkLibrary* cros,
- const Network* network) = 0;
+ // Called when the network has changed. (wifi networks, and ethernet)
+ virtual void NetworkChanged(NetworkLibrary* obj) = 0;
+ // Called when the cellular data plan has changed.
+ virtual void CellularDataPlanChanged(NetworkLibrary* obj) {}
};
- class CellularDataPlanObserver {
+ class PropertyObserver {
public:
- // Called when the cellular data plan has changed.
- virtual void OnCellularDataPlanChanged(NetworkLibrary* obj) = 0;
+ virtual void PropertyChanged(const char* service_path,
+ const char* key,
+ const Value* value) = 0;
};
virtual ~NetworkLibrary() {}
-
- virtual void AddNetworkManagerObserver(NetworkManagerObserver* observer) = 0;
- virtual void RemoveNetworkManagerObserver(
- NetworkManagerObserver* observer) = 0;
-
- // An attempt to add an observer that has already been added for a
- // give service path will be ignored.
- virtual void AddNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) = 0;
- // Remove an observer of a single network
- virtual void RemoveNetworkObserver(const std::string& service_path,
- NetworkObserver* observer) = 0;
- // Stop |observer| from observing any networks
- virtual void RemoveObserverForAllNetworks(NetworkObserver* observer) = 0;
-
- virtual void AddCellularDataPlanObserver(
- CellularDataPlanObserver* observer) = 0;
- virtual void RemoveCellularDataPlanObserver(
- CellularDataPlanObserver* observer) = 0;
+ virtual void AddObserver(Observer* observer) = 0;
+ virtual void RemoveObserver(Observer* observer) = 0;
+ virtual void AddProperyObserver(const char* service_path,
+ PropertyObserver* observer) = 0;
+ virtual void RemoveProperyObserver(PropertyObserver* observer) = 0;
// Return the active Ethernet network (or a default structure if inactive).
virtual EthernetNetwork* ethernet_network() = 0;
@@ -505,8 +457,6 @@ class NetworkLibrary {
virtual bool wifi_enabled() const = 0;
virtual bool cellular_enabled() const = 0;
- virtual const Network* active_network() const = 0;
-
virtual bool offline_mode() const = 0;
// Enables/disables the ethernet network device.
diff --git a/chrome/browser/chromeos/dom_ui/internet_options_handler.cc b/chrome/browser/chromeos/dom_ui/internet_options_handler.cc
index a4ab56f..47541a3 100644
--- a/chrome/browser/chromeos/dom_ui/internet_options_handler.cc
+++ b/chrome/browser/chromeos/dom_ui/internet_options_handler.cc
@@ -56,19 +56,11 @@ std::string FormatHardwareAddress(const std::string& address) {
} // namespace
InternetOptionsHandler::InternetOptionsHandler() {
- chromeos::NetworkLibrary* netlib =
- chromeos::CrosLibrary::Get()->GetNetworkLibrary();
- netlib->AddNetworkManagerObserver(this);
- netlib->AddCellularDataPlanObserver(this);
- MonitorActiveNetwork(netlib);
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this);
}
InternetOptionsHandler::~InternetOptionsHandler() {
- chromeos::NetworkLibrary *netlib =
- chromeos::CrosLibrary::Get()->GetNetworkLibrary();
- netlib->RemoveNetworkManagerObserver(this);
- netlib->RemoveCellularDataPlanObserver(this);
- netlib->RemoveObserverForAllNetworks(this);
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
}
void InternetOptionsHandler::GetLocalizedValues(
@@ -365,8 +357,10 @@ void InternetOptionsHandler::BuyDataPlanCallback(const ListValue* args) {
browser->OpenMobilePlanTabAndActivate();
}
-void InternetOptionsHandler::RefreshNetworkData(
- chromeos::NetworkLibrary* cros) {
+void InternetOptionsHandler::NetworkChanged(chromeos::NetworkLibrary* cros) {
+ if (!dom_ui_)
+ return;
+
DictionaryValue dictionary;
dictionary.Set("wiredList", GetWiredList());
dictionary.Set("wirelessList", GetWirelessList());
@@ -379,45 +373,7 @@ void InternetOptionsHandler::RefreshNetworkData(
L"options.InternetOptions.refreshNetworkData", dictionary);
}
-void InternetOptionsHandler::OnNetworkManagerChanged(
- chromeos::NetworkLibrary* cros) {
- if (!dom_ui_)
- return;
- MonitorActiveNetwork(cros);
- RefreshNetworkData(cros);
-}
-
-void InternetOptionsHandler::OnNetworkChanged(
- chromeos::NetworkLibrary* cros,
- const chromeos::Network* network) {
- if (dom_ui_)
- RefreshNetworkData(cros);
-}
-
-// Add an observer for the active network, if any, so
-// that we can dynamically display the correct icon for
-// that network's signal strength.
-// TODO(ers) Ideally, on this page we'd monitor all networks for
-// signal strength changes, not just the active network.
-void InternetOptionsHandler::MonitorActiveNetwork(
- chromeos::NetworkLibrary* cros) {
- const chromeos::Network* network = cros->active_network();
- if (active_network_.empty() || network == NULL ||
- active_network_ != network->service_path()) {
- if (!active_network_.empty()) {
- cros->RemoveNetworkObserver(active_network_, this);
- }
- if (network != NULL) {
- cros->AddNetworkObserver(network->service_path(), this);
- }
- }
- if (network != NULL)
- active_network_ = network->service_path();
- else
- active_network_ = "";
-}
-
-void InternetOptionsHandler::OnCellularDataPlanChanged(
+void InternetOptionsHandler::CellularDataPlanChanged(
chromeos::NetworkLibrary* obj) {
if (!dom_ui_)
return;
@@ -994,7 +950,7 @@ ListValue* InternetOptionsHandler::GetWirelessList() {
cellular_networks.begin(); it != cellular_networks.end(); ++it) {
SkBitmap icon = chromeos::NetworkMenu::IconForNetworkStrength(
(*it)->strength(), true);
- SkBitmap badge = chromeos::NetworkMenu::BadgeForNetworkTechnology(*it);
+ SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
icon = chromeos::NetworkMenu::IconForDisplay(icon, badge);
list->Append(GetNetwork(
(*it)->service_path(),
diff --git a/chrome/browser/chromeos/dom_ui/internet_options_handler.h b/chrome/browser/chromeos/dom_ui/internet_options_handler.h
index fcecd82..99dd522 100644
--- a/chrome/browser/chromeos/dom_ui/internet_options_handler.h
+++ b/chrome/browser/chromeos/dom_ui/internet_options_handler.h
@@ -16,12 +16,8 @@ class WindowDelegate;
}
// ChromeOS internet options page UI handler.
-class InternetOptionsHandler
- : public OptionsPageUIHandler,
- public chromeos::NetworkLibrary::NetworkManagerObserver,
- public chromeos::NetworkLibrary::NetworkObserver,
- public chromeos::NetworkLibrary::CellularDataPlanObserver {
-
+class InternetOptionsHandler : public OptionsPageUIHandler,
+ public chromeos::NetworkLibrary::Observer {
public:
InternetOptionsHandler();
virtual ~InternetOptionsHandler();
@@ -32,13 +28,9 @@ class InternetOptionsHandler
// DOMMessageHandler implementation.
virtual void RegisterMessages();
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(chromeos::NetworkLibrary* network_lib);
- // NetworkLibrary::NetworkObserver implementation.
- virtual void OnNetworkChanged(chromeos::NetworkLibrary* network_lib,
- const chromeos::Network* network);
- // NetworkLibrary::CellularDataPlanObserver implementation.
- virtual void OnCellularDataPlanChanged(chromeos::NetworkLibrary* network_lib);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(chromeos::NetworkLibrary* obj);
+ virtual void CellularDataPlanChanged(chromeos::NetworkLibrary* obj);
private:
// Passes data needed to show details overlay for network.
@@ -89,13 +81,6 @@ class InternetOptionsHandler
ListValue* GetWirelessList();
// Creates the map of remembered networks
ListValue* GetRememberedList();
- // Refresh the display of network information
- void RefreshNetworkData(chromeos::NetworkLibrary* cros);
- // Monitor the active network, if any
- void MonitorActiveNetwork(chromeos::NetworkLibrary* cros);
-
- // If any network is currently active, this is its service path
- std::string active_network_;
DISALLOW_COPY_AND_ASSIGN(InternetOptionsHandler);
};
diff --git a/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc b/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc
index 048f053..0e2d734 100644
--- a/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc
+++ b/chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc
@@ -124,12 +124,10 @@ class MobileSetupUIHTMLSource : public ChromeURLDataManager::DataSource {
};
// The handler for Javascript messages related to the "register" view.
-class MobileSetupHandler
- : public DOMMessageHandler,
- public chromeos::NetworkLibrary::NetworkManagerObserver,
- public chromeos::NetworkLibrary::NetworkObserver,
- public base::SupportsWeakPtr<MobileSetupHandler> {
-
+class MobileSetupHandler : public DOMMessageHandler,
+ public chromeos::NetworkLibrary::Observer,
+ public chromeos::NetworkLibrary::PropertyObserver,
+ public base::SupportsWeakPtr<MobileSetupHandler> {
public:
explicit MobileSetupHandler(const std::string& service_path);
virtual ~MobileSetupHandler();
@@ -141,11 +139,12 @@ class MobileSetupHandler
virtual DOMMessageHandler* Attach(DOMUI* dom_ui);
virtual void RegisterMessages();
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(chromeos::NetworkLibrary* obj);
- // NetworkLibrary::NetworkObserver implementation.
- virtual void OnNetworkChanged(chromeos::NetworkLibrary* obj,
- const chromeos::Network* network);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(chromeos::NetworkLibrary* obj);
+ // NetworkLibrary::PropertyObserver implementation.
+ virtual void PropertyChanged(const char* service_path,
+ const char* key,
+ const Value* value);
private:
typedef enum PlanActivationState {
@@ -329,8 +328,8 @@ MobileSetupHandler::MobileSetupHandler(const std::string& service_path)
MobileSetupHandler::~MobileSetupHandler() {
chromeos::NetworkLibrary* lib =
chromeos::CrosLibrary::Get()->GetNetworkLibrary();
- lib->RemoveNetworkManagerObserver(this);
- lib->RemoveObserverForAllNetworks(this);
+ lib->RemoveObserver(this);
+ lib->RemoveProperyObserver(this);
ReEnableOtherConnections();
}
@@ -353,25 +352,34 @@ void MobileSetupHandler::RegisterMessages() {
NewCallback(this, &MobileSetupHandler::HandleSetTransactionStatus));
}
-void MobileSetupHandler::OnNetworkManagerChanged(
- chromeos::NetworkLibrary* cros) {
+void MobileSetupHandler::NetworkChanged(chromeos::NetworkLibrary* lib) {
if (state_ == PLAN_ACTIVATION_PAGE_LOADING)
return;
- // Note that even though we get here when the service has
- // reappeared after disappearing earlier in the activation
- // process, there's no need to re-establish the NetworkObserver,
- // because the service path remains the same.
EvaluateCellularNetwork(GetCellularNetwork(service_path_));
}
-void MobileSetupHandler::OnNetworkChanged(chromeos::NetworkLibrary* cros,
- const chromeos::Network* network) {
+void MobileSetupHandler::PropertyChanged(const char* service_path,
+ const char* key,
+ const Value* value) {
+
if (state_ == PLAN_ACTIVATION_PAGE_LOADING)
return;
- DCHECK(network && network->type() == chromeos::TYPE_CELLULAR);
- EvaluateCellularNetwork(
- static_cast<chromeos::CellularNetwork*>(
- const_cast<chromeos::Network*>(network)));
+ chromeos::CellularNetwork* network = GetCellularNetwork(service_path_);
+ if (!network) {
+ EvaluateCellularNetwork(NULL);
+ return;
+ }
+ if (network->service_path() != service_path) {
+ NOTREACHED();
+ return;
+ }
+ std::string value_string;
+ LOG(INFO) << "Cellular property change: " << key << " = " <<
+ value_string.c_str();
+
+ // TODO(zelidrag, ers): Remove this once we flip the notification machanism.
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->UpdateSystemInfo();
+ EvaluateCellularNetwork(network);
}
void MobileSetupHandler::HandleCloseTab(const ListValue* args) {
@@ -389,12 +397,14 @@ void MobileSetupHandler::HandleStartActivation(const ListValue* args) {
ChangeState(NULL, PLAN_ACTIVATION_ERROR, std::string());
return;
}
- // Start monitoring network property changes.
- chromeos::NetworkLibrary* lib =
- chromeos::CrosLibrary::Get()->GetNetworkLibrary();
- lib->AddNetworkManagerObserver(this);
- lib->RemoveObserverForAllNetworks(this);
- lib->AddNetworkObserver(network->service_path(), this);
+ chromeos::NetworkLibrary* lib = chromeos::CrosLibrary::Get()->
+ GetNetworkLibrary();
+ lib->RemoveObserver(this);
+ lib->RemoveProperyObserver(this);
+ // Start monitoring network and service property changes.
+ lib->AddObserver(this);
+ lib->AddProperyObserver(network->service_path().c_str(),
+ this);
ChangeState(network, PLAN_ACTIVATION_START, std::string());
EvaluateCellularNetwork(network);
}
@@ -571,8 +581,8 @@ void MobileSetupHandler::CompleteActivation(
network->set_auto_connect(true);
lib->SaveCellularNetwork(network);
}
- lib->RemoveNetworkManagerObserver(this);
- lib->RemoveObserverForAllNetworks(this);
+ lib->RemoveObserver(this);
+ lib->RemoveProperyObserver(this);
// Reactivate other types of connections if we have
// shut them down previously.
ReEnableOtherConnections();
diff --git a/chrome/browser/chromeos/login/login_utils.cc b/chrome/browser/chromeos/login/login_utils.cc
index 724ef85..8136645 100644
--- a/chrome/browser/chromeos/login/login_utils.cc
+++ b/chrome/browser/chromeos/login/login_utils.cc
@@ -296,20 +296,20 @@ bool LoginUtilsImpl::IsBrowserLaunchEnabled() const {
// We use a special class for this so that it can be safely leaked if we
// never connect. At shutdown the order is not well defined, and it's possible
// for the infrastructure needed to unregister might be unstable and crash.
-class WarmingObserver : public NetworkLibrary::NetworkManagerObserver {
+class WarmingObserver : public NetworkLibrary::Observer {
public:
WarmingObserver() {
- NetworkLibrary *netlib = CrosLibrary::Get()->GetNetworkLibrary();
- netlib->AddNetworkManagerObserver(this);
+ NetworkLibrary *network = CrosLibrary::Get()->GetNetworkLibrary();
+ network->AddObserver(this);
}
// If we're now connected, prewarm the auth url.
- void OnNetworkManagerChanged(NetworkLibrary* netlib) {
- if (netlib->Connected()) {
+ void NetworkChanged(NetworkLibrary* network) {
+ if (network->Connected()) {
chrome_browser_net::Preconnect::PreconnectOnUIThread(
GURL(GaiaAuthenticator2::kClientLoginUrl),
chrome_browser_net::UrlInfo::EARLY_LOAD_MOTIVATED);
- netlib->RemoveNetworkManagerObserver(this);
+ network->RemoveObserver(this);
delete this;
}
}
diff --git a/chrome/browser/chromeos/login/network_screen.cc b/chrome/browser/chromeos/login/network_screen.cc
index d760447..76ed69d 100644
--- a/chrome/browser/chromeos/login/network_screen.cc
+++ b/chrome/browser/chromeos/login/network_screen.cc
@@ -77,9 +77,9 @@ void NetworkScreen::ButtonPressed(views::Button* sender,
}
////////////////////////////////////////////////////////////////////////////////
-// NetworkLibrary::NetworkManagerObserver implementation:
+// NetworkLibrary::Observer implementation:
-void NetworkScreen::OnNetworkManagerChanged(NetworkLibrary* network_lib) {
+void NetworkScreen::NetworkChanged(NetworkLibrary* network_lib) {
UpdateStatus(network_lib);
}
@@ -110,7 +110,7 @@ void NetworkScreen::OnHelpLinkActivated() {
void NetworkScreen::Refresh() {
if (CrosLibrary::Get()->EnsureLoaded()) {
SubscribeNetworkNotification();
- OnNetworkManagerChanged(chromeos::CrosLibrary::Get()->GetNetworkLibrary());
+ NetworkChanged(chromeos::CrosLibrary::Get()->GetNetworkLibrary());
}
}
@@ -120,16 +120,14 @@ void NetworkScreen::Refresh() {
void NetworkScreen::SubscribeNetworkNotification() {
if (!is_network_subscribed_) {
is_network_subscribed_ = true;
- chromeos::CrosLibrary::Get()->GetNetworkLibrary()
- ->AddNetworkManagerObserver(this);
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this);
}
}
void NetworkScreen::UnsubscribeNetworkNotification() {
if (is_network_subscribed_) {
is_network_subscribed_ = false;
- chromeos::CrosLibrary::Get()->GetNetworkLibrary()
- ->RemoveNetworkManagerObserver(this);
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
}
}
diff --git a/chrome/browser/chromeos/login/network_screen.h b/chrome/browser/chromeos/login/network_screen.h
index b3aa531..284ebb0 100644
--- a/chrome/browser/chromeos/login/network_screen.h
+++ b/chrome/browser/chromeos/login/network_screen.h
@@ -47,8 +47,8 @@ class NetworkScreen : public ViewScreen<NetworkSelectionView>,
// views::ButtonListener implementation:
virtual void ButtonPressed(views::Button* sender, const views::Event& event);
- // NetworkLibrary::NetworkManagerObserver implementation:
- virtual void OnNetworkManagerChanged(NetworkLibrary* network_lib);
+ // NetworkLibrary::Observer implementation:
+ virtual void NetworkChanged(NetworkLibrary* network_lib);
protected:
// Subscribes NetworkScreen to the network change notification,
diff --git a/chrome/browser/chromeos/login/network_screen_browsertest.cc b/chrome/browser/chromeos/login/network_screen_browsertest.cc
index 39f3f81..ee9ce21 100644
--- a/chrome/browser/chromeos/login/network_screen_browsertest.cc
+++ b/chrome/browser/chromeos/login/network_screen_browsertest.cc
@@ -88,13 +88,10 @@ class NetworkScreenTest : public WizardInProcessBrowserTest {
EXPECT_CALL(*mock_network_library_, Connecting())
.Times(2)
.WillRepeatedly(Return(false));
+ // Add an AddObserver for prewarming auth url check.
EXPECT_CALL(*mock_network_library_, AddObserver(_))
.Times(3);
EXPECT_CALL(*mock_network_library_, RemoveObserver(_))
- // Add an Observer for prewarming auth url check.
- EXPECT_CALL(*mock_network_library_, AddNetworkManagerObserver(_))
- .Times(3);
- EXPECT_CALL(*mock_network_library_, RemoveNetworkManagerObserver(_))
.Times(2);
cros_mock_->SetStatusAreaMocksExpectations();
@@ -150,7 +147,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Ethernet) {
EXPECT_CALL(*mock_network_library_, ethernet_connecting())
.WillOnce((Return(true)));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_FALSE(network_view->IsContinueEnabled());
EXPECT_FALSE(network_view->IsConnecting());
@@ -159,7 +156,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Ethernet) {
EXPECT_CALL(*mock_network_library_, Connected())
.WillOnce(Return(true));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_TRUE(network_view->IsContinueEnabled());
EmulateContinueButtonExit(network_screen);
@@ -189,7 +186,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Wifi) {
EXPECT_CALL(*mock_network_library_, wifi_network())
.WillOnce(Return(wifi.get()));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_FALSE(network_view->IsContinueEnabled());
EXPECT_FALSE(network_view->IsConnecting());
@@ -198,7 +195,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Wifi) {
EXPECT_CALL(*mock_network_library_, Connected())
.WillOnce(Return(true));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_TRUE(network_view->IsContinueEnabled());
EmulateContinueButtonExit(network_screen);
@@ -230,7 +227,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Cellular) {
EXPECT_CALL(*mock_network_library_, cellular_network())
.WillOnce(Return(cellular.get()));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_FALSE(network_view->IsContinueEnabled());
EXPECT_FALSE(network_view->IsConnecting());
@@ -239,7 +236,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Cellular) {
EXPECT_CALL(*mock_network_library_, Connected())
.WillOnce(Return(true));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_TRUE(network_view->IsContinueEnabled());
EmulateContinueButtonExit(network_screen);
@@ -271,7 +268,7 @@ IN_PROC_BROWSER_TEST_F(NetworkScreenTest, Timeout) {
EXPECT_CALL(*mock_network_library_, Connected())
.WillOnce(Return(false));
- network_screen->OnNetworkManagerChanged(mock_network_library_);
+ network_screen->NetworkChanged(mock_network_library_);
EXPECT_FALSE(network_view->IsContinueEnabled());
EXPECT_FALSE(network_view->IsConnecting());
diff --git a/chrome/browser/chromeos/login/network_screen_delegate.h b/chrome/browser/chromeos/login/network_screen_delegate.h
index e64e380..3a5978a 100644
--- a/chrome/browser/chromeos/login/network_screen_delegate.h
+++ b/chrome/browser/chromeos/login/network_screen_delegate.h
@@ -22,7 +22,7 @@ class LanguageSwitchMenu;
// Interface that NetworkScreen exposes to the NetworkSelectionView.
class NetworkScreenDelegate : public views::ButtonListener,
- public NetworkLibrary::NetworkManagerObserver {
+ public NetworkLibrary::Observer {
public:
// Cleares all error notifications.
virtual void ClearErrors() = 0;
diff --git a/chrome/browser/chromeos/network_list.cc b/chrome/browser/chromeos/network_list.cc
index c22795b..26df2de 100644
--- a/chrome/browser/chromeos/network_list.cc
+++ b/chrome/browser/chromeos/network_list.cc
@@ -49,8 +49,7 @@ bool NetworkList::IsNetworkConnecting(NetworkType type,
return IsInNetworkList(connecting_networks_, type, id);
}
-void NetworkList::OnNetworkManagerChanged(
- chromeos::NetworkLibrary* network_lib) {
+void NetworkList::NetworkChanged(chromeos::NetworkLibrary* network_lib) {
networks_.clear();
connected_networks_.clear();
connecting_networks_.clear();
diff --git a/chrome/browser/chromeos/network_list.h b/chrome/browser/chromeos/network_list.h
index 47c7426..21f0e63 100644
--- a/chrome/browser/chromeos/network_list.h
+++ b/chrome/browser/chromeos/network_list.h
@@ -83,7 +83,7 @@ class NetworkList {
NetworkList::NetworkItem* GetNetworkAt(int index);
// Callback from NetworkLibrary.
- void OnNetworkManagerChanged(chromeos::NetworkLibrary* network_lib);
+ void NetworkChanged(chromeos::NetworkLibrary* network_lib);
private:
typedef std::vector<NetworkItem> NetworkItemVector;
diff --git a/chrome/browser/chromeos/network_message_observer.cc b/chrome/browser/chromeos/network_message_observer.cc
index 32545bd..92bc85a 100644
--- a/chrome/browser/chromeos/network_message_observer.cc
+++ b/chrome/browser/chromeos/network_message_observer.cc
@@ -35,19 +35,11 @@ NetworkMessageObserver::NetworkMessageObserver(Profile* profile)
notification_no_data_(profile, "network_no_data.chromeos",
IDR_NOTIFICATION_BARS_EMPTY,
l10n_util::GetStringUTF16(IDS_NETWORK_OUT_OF_DATA_TITLE)) {
- NetworkLibrary* netlib = CrosLibrary::Get()->GetNetworkLibrary();
- OnNetworkManagerChanged(netlib);
- // Note that this gets added as a NetworkManagerObserver and a
- // CellularDataPlanObserver in browser_init.cc
- netlib->AddNetworkManagerObserver(this);
- netlib->AddCellularDataPlanObserver(this);
+ NetworkChanged(CrosLibrary::Get()->GetNetworkLibrary());
initialized_ = true;
}
NetworkMessageObserver::~NetworkMessageObserver() {
- NetworkLibrary* netlib = CrosLibrary::Get()->GetNetworkLibrary();
- netlib->RemoveNetworkManagerObserver(this);
- netlib->RemoveCellularDataPlanObserver(this);
notification_connection_error_.Hide();
notification_low_data_.Hide();
notification_no_data_.Hide();
@@ -73,7 +65,7 @@ void NetworkMessageObserver::MobileSetup(const ListValue* args) {
BrowserList::GetLastActive()->OpenMobilePlanTabAndActivate();
}
-void NetworkMessageObserver::OnNetworkManagerChanged(NetworkLibrary* obj) {
+void NetworkMessageObserver::NetworkChanged(NetworkLibrary* obj) {
const WifiNetworkVector& wifi_networks = obj->wifi_networks();
const CellularNetworkVector& cellular_networks = obj->cellular_networks();
@@ -158,7 +150,7 @@ void NetworkMessageObserver::OnNetworkManagerChanged(NetworkLibrary* obj) {
CreateModalPopup(view);
}
-void NetworkMessageObserver::OnCellularDataPlanChanged(NetworkLibrary* obj) {
+void NetworkMessageObserver::CellularDataPlanChanged(NetworkLibrary* obj) {
const CellularNetwork* cellular = obj->cellular_network();
if (!cellular)
return;
diff --git a/chrome/browser/chromeos/network_message_observer.h b/chrome/browser/chromeos/network_message_observer.h
index db1ba1b..cdb0a81 100644
--- a/chrome/browser/chromeos/network_message_observer.h
+++ b/chrome/browser/chromeos/network_message_observer.h
@@ -23,8 +23,7 @@ namespace chromeos {
// The network message observer displays a system notification for network
// messages.
-class NetworkMessageObserver : public NetworkLibrary::NetworkManagerObserver,
- public NetworkLibrary::CellularDataPlanObserver {
+class NetworkMessageObserver : public NetworkLibrary::Observer {
public:
explicit NetworkMessageObserver(Profile* profile);
virtual ~NetworkMessageObserver();
@@ -35,10 +34,9 @@ class NetworkMessageObserver : public NetworkLibrary::NetworkManagerObserver,
virtual void CreateModalPopup(views::WindowDelegate* view);
virtual void MobileSetup(const ListValue* args);
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(NetworkLibrary* obj);
- // NetworkLibrary::CellularDataPlanObserver implementation.
- virtual void OnCellularDataPlanChanged(NetworkLibrary* obj);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(NetworkLibrary* obj);
+ virtual void CellularDataPlanChanged(NetworkLibrary* obj);
bool initialized_;
// Wifi networks by service path.
@@ -64,3 +62,4 @@ class NetworkMessageObserver : public NetworkLibrary::NetworkManagerObserver,
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_NETWORK_MESSAGE_OBSERVER_H_
+
diff --git a/chrome/browser/chromeos/network_state_notifier.cc b/chrome/browser/chromeos/network_state_notifier.cc
index d0552f9..aaaf763 100644
--- a/chrome/browser/chromeos/network_state_notifier.cc
+++ b/chrome/browser/chromeos/network_state_notifier.cc
@@ -34,17 +34,9 @@ NetworkStateNotifier::NetworkStateNotifier()
: ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)),
state_(RetrieveState()),
offline_start_time_(Time::Now()) {
- DCHECK(CrosLibrary::Get()->EnsureLoaded());
- // Note that this gets added as a NetworkManagerObserver
- // in browser_init.cc
-}
-
-NetworkStateNotifier::~NetworkStateNotifier() {
- DCHECK(CrosLibrary::Get()->EnsureLoaded());
- CrosLibrary::Get()->GetNetworkLibrary()->RemoveNetworkManagerObserver(this);
}
-void NetworkStateNotifier::OnNetworkManagerChanged(NetworkLibrary* cros) {
+void NetworkStateNotifier::NetworkChanged(NetworkLibrary* cros) {
DCHECK(CrosLibrary::Get()->EnsureLoaded());
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
diff --git a/chrome/browser/chromeos/network_state_notifier.h b/chrome/browser/chromeos/network_state_notifier.h
index 94e57f4..9d49d94 100644
--- a/chrome/browser/chromeos/network_state_notifier.h
+++ b/chrome/browser/chromeos/network_state_notifier.h
@@ -42,10 +42,10 @@ class NetworkStateDetails {
};
// NetworkStateNotifier sends notification when network state has
-// chagned. Notification is sent in UI thread.
+// chagned. Notificatio is sent in UI thread.
// TODO(oshima): port this to other platform. merge with
// NetworkChangeNotifier if possible.
-class NetworkStateNotifier : public NetworkLibrary::NetworkManagerObserver {
+class NetworkStateNotifier : public NetworkLibrary::Observer {
public:
// Returns the singleton instance of the network state notifier;
static NetworkStateNotifier* Get();
@@ -59,8 +59,8 @@ class NetworkStateNotifier : public NetworkLibrary::NetworkManagerObserver {
return Get()->state_ == NetworkStateDetails::CONNECTED;
}
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(NetworkLibrary* cros);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(NetworkLibrary* cros);
private:
friend struct DefaultSingletonTraits<NetworkStateNotifier>;
@@ -69,7 +69,7 @@ class NetworkStateNotifier : public NetworkLibrary::NetworkManagerObserver {
static NetworkStateDetails::State RetrieveState();
NetworkStateNotifier();
- virtual ~NetworkStateNotifier();
+ virtual ~NetworkStateNotifier() {}
// Update the current state and sends notification to observers.
// This should be invoked in UI thread.
diff --git a/chrome/browser/chromeos/network_state_notifier_browsertest.cc b/chrome/browser/chromeos/network_state_notifier_browsertest.cc
index 47ea0de..126ff13b 100644
--- a/chrome/browser/chromeos/network_state_notifier_browsertest.cc
+++ b/chrome/browser/chromeos/network_state_notifier_browsertest.cc
@@ -70,7 +70,7 @@ IN_PROC_BROWSER_TEST_F(NetworkStateNotifierTest, TestConnected) {
.WillRepeatedly((Return(true)))
.RetiresOnSaturation();
NetworkStateNotifier* notifier = NetworkStateNotifier::Get();
- notifier->OnNetworkManagerChanged(mock_network_library_);
+ notifier->NetworkChanged(mock_network_library_);
WaitForNotification();
EXPECT_EQ(chromeos::NetworkStateDetails::CONNECTED, state_);
}
@@ -88,7 +88,7 @@ IN_PROC_BROWSER_TEST_F(NetworkStateNotifierTest, TestConnecting) {
.WillOnce((Return(true)))
.RetiresOnSaturation();
NetworkStateNotifier* notifier = NetworkStateNotifier::Get();
- notifier->OnNetworkManagerChanged(mock_network_library_);
+ notifier->NetworkChanged(mock_network_library_);
WaitForNotification();
EXPECT_EQ(chromeos::NetworkStateDetails::CONNECTING, state_);
}
@@ -106,7 +106,7 @@ IN_PROC_BROWSER_TEST_F(NetworkStateNotifierTest, TestDisconnected) {
.WillOnce((Return(false)))
.RetiresOnSaturation();
NetworkStateNotifier* notifier = NetworkStateNotifier::Get();
- notifier->OnNetworkManagerChanged(mock_network_library_);
+ notifier->NetworkChanged(mock_network_library_);
WaitForNotification();
EXPECT_EQ(chromeos::NetworkStateDetails::DISCONNECTED, state_);
}
diff --git a/chrome/browser/chromeos/options/internet_page_view.cc b/chrome/browser/chromeos/options/internet_page_view.cc
index 794814a..a9f099f 100644
--- a/chrome/browser/chromeos/options/internet_page_view.cc
+++ b/chrome/browser/chromeos/options/internet_page_view.cc
@@ -301,7 +301,7 @@ class WirelessSection : public NetworkSection {
bool connected, int connection_type);
WifiNetworkVector wifi_networks_;
- CellularNetworkVector cellular_networks_;
+ CellularNetworkVector celluar_networks_;
DISALLOW_COPY_AND_ASSIGN(WirelessSection);
};
@@ -334,34 +334,36 @@ void WirelessSection::InitSection() {
}
// Cellular
- cellular_networks_ = cros->cellular_networks();
- for (size_t i = 0; i < cellular_networks_.size(); ++i) {
- std::wstring name = ASCIIToWide(cellular_networks_[i]->name());
+ celluar_networks_ = cros->cellular_networks();
+ // Cellular networks ssids.
+ for (size_t i = 0; i < celluar_networks_.size(); ++i) {
+ std::wstring name = ASCIIToWide(celluar_networks_[i]->name());
SkBitmap icon = NetworkMenu::IconForNetworkStrength(
- cellular_networks_[i]->strength(), true);
- SkBitmap badge =
- NetworkMenu::BadgeForNetworkTechnology(cellular_networks_[i]);
+ celluar_networks_[i]->strength(), true);
+ // TODO(chocobo): Check cellular network 3g/edge.
+ SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
+// SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
icon = NetworkMenu::IconForDisplay(icon, badge);
- bool connecting = cellular_networks_[i]->connecting();
- bool connected = cellular_networks_[i]->connected();
+ bool connecting = celluar_networks_[i]->connecting();
+ bool connected = celluar_networks_[i]->connected();
AddWirelessNetwork(i, icon, name, connecting, connected, TYPE_CELLULAR);
}
}
void WirelessSection::ButtonClicked(int button, int connection_type, int id) {
if (connection_type == TYPE_CELLULAR) {
- if (static_cast<int>(cellular_networks_.size()) > id) {
+ if (static_cast<int>(celluar_networks_.size()) > id) {
if (button == CONNECT_BUTTON) {
// Connect to cellular network.
CrosLibrary::Get()->GetNetworkLibrary()->ConnectToCellularNetwork(
- cellular_networks_[id]);
+ celluar_networks_[id]);
} else if (button == DISCONNECT_BUTTON) {
CrosLibrary::Get()->GetNetworkLibrary()->DisconnectFromWirelessNetwork(
- cellular_networks_[id]);
+ celluar_networks_[id]);
} else {
- CreateModalPopup(new NetworkConfigView(cellular_networks_[id]));
+ CreateModalPopup(new NetworkConfigView(celluar_networks_[id]));
}
}
} else if (connection_type == TYPE_WIFI) {
@@ -426,6 +428,7 @@ class RememberedSection : public NetworkSection {
private:
WifiNetworkVector wifi_networks_;
+ CellularNetworkVector celluar_networks_;
DISALLOW_COPY_AND_ASSIGN(RememberedSection);
};
@@ -567,14 +570,14 @@ InternetPageView::InternetPageView(Profile* profile)
scroll_view_(new views::ScrollView) {
NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
cros->UpdateSystemInfo();
- cros->AddNetworkManagerObserver(this);
+ cros->AddObserver(this);
}
InternetPageView::~InternetPageView() {
- CrosLibrary::Get()->GetNetworkLibrary()->RemoveNetworkManagerObserver(this);
+ CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
}
-void InternetPageView::OnNetworkManagerChanged(NetworkLibrary* obj) {
+void InternetPageView::NetworkChanged(NetworkLibrary* obj) {
// Refresh wired, wireless, and remembered networks.
// Remember the current scroll region, and try to scroll back afterwards.
gfx::Rect rect = scroll_view_->GetVisibleRect();
diff --git a/chrome/browser/chromeos/options/internet_page_view.h b/chrome/browser/chromeos/options/internet_page_view.h
index c5048df..71b7399 100644
--- a/chrome/browser/chromeos/options/internet_page_view.h
+++ b/chrome/browser/chromeos/options/internet_page_view.h
@@ -19,13 +19,13 @@ class InternetPageContentView;
// Internet settings page for Chrome OS
class InternetPageView : public SettingsPageView,
- public NetworkLibrary::NetworkManagerObserver {
+ public NetworkLibrary::Observer {
public:
explicit InternetPageView(Profile* profile);
virtual ~InternetPageView();
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(NetworkLibrary* obj);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(NetworkLibrary* obj);
// views::View overrides:
virtual void Layout();
diff --git a/chrome/browser/chromeos/status/network_dropdown_button.cc b/chrome/browser/chromeos/status/network_dropdown_button.cc
index 8deb193..cade402 100644
--- a/chrome/browser/chromeos/status/network_dropdown_button.cc
+++ b/chrome/browser/chromeos/status/network_dropdown_button.cc
@@ -34,12 +34,12 @@ NetworkDropdownButton::NetworkDropdownButton(bool browser_mode,
parent_window_(parent_window) {
animation_connecting_.SetThrobDuration(kThrobDuration);
animation_connecting_.SetTweenType(Tween::LINEAR);
- OnNetworkManagerChanged(CrosLibrary::Get()->GetNetworkLibrary());
- CrosLibrary::Get()->GetNetworkLibrary()->AddNetworkManagerObserver(this);
+ NetworkChanged(CrosLibrary::Get()->GetNetworkLibrary());
+ CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this);
}
NetworkDropdownButton::~NetworkDropdownButton() {
- CrosLibrary::Get()->GetNetworkLibrary()->RemoveNetworkManagerObserver(this);
+ CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
}
////////////////////////////////////////////////////////////////////////////////
@@ -62,13 +62,13 @@ void NetworkDropdownButton::AnimationProgressed(const Animation* animation) {
}
void NetworkDropdownButton::Refresh() {
- OnNetworkManagerChanged(CrosLibrary::Get()->GetNetworkLibrary());
+ NetworkChanged(CrosLibrary::Get()->GetNetworkLibrary());
}
////////////////////////////////////////////////////////////////////////////////
-// NetworkDropdownButton, NetworkLibrary::NetworkManagerObserver implementation:
+// NetworkDropdownButton, NetworkLibrary::Observer implementation:
-void NetworkDropdownButton::OnNetworkManagerChanged(NetworkLibrary* cros) {
+void NetworkDropdownButton::NetworkChanged(NetworkLibrary* cros) {
// Show network that we will actually use. It could be another network than
// user selected. For example user selected WiFi network but we have Ethernet
// connection and Chrome OS device will actually use Ethernet.
@@ -78,27 +78,28 @@ void NetworkDropdownButton::OnNetworkManagerChanged(NetworkLibrary* cros) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
if (CrosLibrary::Get()->EnsureLoaded()) {
- // Always show the active network, if any
- const Network* active_network = cros->active_network();
- const WirelessNetwork* wireless;
- if (active_network != NULL) {
+ // Always show the higher priority connection first. Ethernet then wifi.
+ if (cros->ethernet_connected()) {
animation_connecting_.Stop();
- if (active_network->type() == TYPE_ETHERNET) {
- SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED));
- SetText(l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET));
- } else {
- DCHECK(active_network->type() == TYPE_WIFI ||
- active_network->type() == TYPE_CELLULAR);
- wireless = static_cast<const WirelessNetwork*>(active_network);
- SetIcon(IconForNetworkStrength(wireless->strength(), false));
- SetText(ASCIIToWide(wireless->name()));
- }
+ SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED));
+ SetText(l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET));
+ } else if (cros->wifi_connected()) {
+ animation_connecting_.Stop();
+ SetIcon(IconForNetworkStrength(
+ cros->wifi_network()->strength(), true));
+ SetText(ASCIIToWide(cros->wifi_network()->name()));
+ } else if (cros->cellular_connected()) {
+ animation_connecting_.Stop();
+ SetIcon(IconForNetworkStrength(
+ cros->cellular_network()->strength(), false));
+ SetText(ASCIIToWide(cros->cellular_network()->name()));
} else if (cros->wifi_connecting() || cros->cellular_connecting()) {
if (!animation_connecting_.is_animating()) {
animation_connecting_.Reset();
animation_connecting_.StartThrobbing(-1);
SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS1_BLACK));
}
+
if (cros->wifi_connecting())
SetText(ASCIIToWide(cros->wifi_network()->name()));
else if (cros->cellular_connecting())
diff --git a/chrome/browser/chromeos/status/network_dropdown_button.h b/chrome/browser/chromeos/status/network_dropdown_button.h
index 2968e42..47500f6 100644
--- a/chrome/browser/chromeos/status/network_dropdown_button.h
+++ b/chrome/browser/chromeos/status/network_dropdown_button.h
@@ -19,7 +19,7 @@ namespace chromeos {
// See NetworkMenu for more details.
class NetworkDropdownButton : public views::MenuButton,
public NetworkMenu,
- public NetworkLibrary::NetworkManagerObserver {
+ public NetworkLibrary::Observer {
public:
NetworkDropdownButton(bool browser_mode, gfx::NativeWindow parent_window);
virtual ~NetworkDropdownButton();
@@ -27,8 +27,8 @@ class NetworkDropdownButton : public views::MenuButton,
// AnimationDelegate implementation.
virtual void AnimationProgressed(const Animation* animation);
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(NetworkLibrary* obj);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(NetworkLibrary* obj);
// Refreshes button state. Used when language has been changed.
void Refresh();
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc
index 159b09c..428865b 100644
--- a/chrome/browser/chromeos/status/network_menu.cc
+++ b/chrome/browser/chromeos/status/network_menu.cc
@@ -389,47 +389,6 @@ SkBitmap NetworkMenu::IconForNetworkStrength(const CellularNetwork* cellular) {
}
// static
-// TODO(ers) update for GSM when we have the necessary images
-SkBitmap NetworkMenu::BadgeForNetworkTechnology(
- const CellularNetwork* cellular) {
-
- int id;
- if (cellular->network_technology() == NETWORK_TECHNOLOGY_EVDO) {
- switch (cellular->data_left()) {
- case CellularNetwork::DATA_NONE:
- case CellularNetwork::DATA_VERY_LOW:
- id = IDR_STATUSBAR_NETWORK_3G_ERROR;
- break;
- case CellularNetwork::DATA_LOW:
- id = IDR_STATUSBAR_NETWORK_3G_WARN;
- break;
- case CellularNetwork::DATA_NORMAL:
- id = IDR_STATUSBAR_NETWORK_3G;
- break;
- }
- } else if (cellular->network_technology() == NETWORK_TECHNOLOGY_1XRTT) {
- switch (cellular->data_left()) {
- case CellularNetwork::DATA_NONE:
- case CellularNetwork::DATA_VERY_LOW:
- id = IDR_STATUSBAR_NETWORK_1X_ERROR;
- break;
- case CellularNetwork::DATA_LOW:
- id = IDR_STATUSBAR_NETWORK_1X_WARN;
- break;
- case CellularNetwork::DATA_NORMAL:
- id = IDR_STATUSBAR_NETWORK_1X;
- break;
- }
- } else {
- id = -1;
- }
- if (id == -1)
- return SkBitmap();
- else
- return *ResourceBundle::GetSharedInstance().GetBitmapNamed(id);
-}
-
-// static
SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) {
// Draw badge at (14,14).
static const int kBadgeX = 14;
@@ -570,7 +529,9 @@ void NetworkMenu::InitMenuItems() {
}
SkBitmap icon = IconForNetworkStrength(cell_networks[i]->strength(),
true);
- SkBitmap badge = BadgeForNetworkTechnology(cell_networks[i]);
+ // TODO(chocobo): Check cellular network 3g/edge.
+ SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
+ // SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE);
int flag = FLAG_CELLULAR;
if (active_cellular &&
cell_networks[i]->service_path() ==
diff --git a/chrome/browser/chromeos/status/network_menu.h b/chrome/browser/chromeos/status/network_menu.h
index a68e928..8f57c61 100644
--- a/chrome/browser/chromeos/status/network_menu.h
+++ b/chrome/browser/chromeos/status/network_menu.h
@@ -115,12 +115,11 @@ class NetworkMenu : public views::ViewMenuDelegate,
// |black| is used to specify whether to return a black icon for display
// on a light background or a white icon for display on a dark background.
static SkBitmap IconForNetworkStrength(int strength, bool black);
+
// Returns the Icon for a network strength for CellularNetwork |cellular|.
// This returns different colored bars depending on cellular data left.
static SkBitmap IconForNetworkStrength(const CellularNetwork* cellular);
- // Returns the Badge for a given network technology.
- // This returns different colored symbols depending on cellular data left.
- static SkBitmap BadgeForNetworkTechnology(const CellularNetwork* cellular);
+
// This method will convert the |icon| bitmap to the correct size for display.
// If the |badge| icon is not empty, it will draw that on top of the icon.
static SkBitmap IconForDisplay(SkBitmap icon, SkBitmap badge);
diff --git a/chrome/browser/chromeos/status/network_menu_button.cc b/chrome/browser/chromeos/status/network_menu_button.cc
index b8cbe00..48b5187 100644
--- a/chrome/browser/chromeos/status/network_menu_button.cc
+++ b/chrome/browser/chromeos/status/network_menu_button.cc
@@ -35,16 +35,12 @@ NetworkMenuButton::NetworkMenuButton(StatusAreaHost* host)
ALLOW_THIS_IN_INITIALIZER_LIST(animation_connecting_(this)) {
animation_connecting_.SetThrobDuration(kThrobDuration);
animation_connecting_.SetTweenType(Tween::EASE_IN_OUT);
- OnNetworkManagerChanged(CrosLibrary::Get()->GetNetworkLibrary());
- CrosLibrary::Get()->GetNetworkLibrary()->AddNetworkManagerObserver(this);
- CrosLibrary::Get()->GetNetworkLibrary()->AddCellularDataPlanObserver(this);
+ NetworkChanged(CrosLibrary::Get()->GetNetworkLibrary());
+ CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this);
}
NetworkMenuButton::~NetworkMenuButton() {
- NetworkLibrary* netlib = CrosLibrary::Get()->GetNetworkLibrary();
- netlib->RemoveNetworkManagerObserver(this);
- netlib->RemoveObserverForAllNetworks(this);
- netlib->RemoveCellularDataPlanObserver(this);
+ CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
}
////////////////////////////////////////////////////////////////////////////////
@@ -77,27 +73,11 @@ void NetworkMenuButton::DrawIcon(gfx::Canvas* canvas) {
}
////////////////////////////////////////////////////////////////////////////////
-// NetworkMenuButton, NetworkLibrary::NetworkManagerObserver implementation:
+// NetworkMenuButton, NetworkLibrary::Observer implementation:
-void NetworkMenuButton::OnNetworkManagerChanged(NetworkLibrary* cros) {
+void NetworkMenuButton::NetworkChanged(NetworkLibrary* cros) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
if (CrosLibrary::Get()->EnsureLoaded()) {
- // Add an observer for the active network, if any
- const Network* network = cros->active_network();
- if (active_network_.empty() || network == NULL ||
- active_network_ != network->service_path()) {
- if (!active_network_.empty()) {
- cros->RemoveNetworkObserver(active_network_, this);
- }
- if (network != NULL) {
- cros->AddNetworkObserver(network->service_path(), this);
- }
- }
- if (network)
- active_network_ = network->service_path();
- else
- active_network_ = "";
-
if (cros->wifi_connecting() || cros->cellular_connecting()) {
// Start the connecting animation if not running.
if (!animation_connecting_.is_animating()) {
@@ -118,35 +98,68 @@ void NetworkMenuButton::OnNetworkManagerChanged(NetworkLibrary* cros) {
} else {
// Stop connecting animation since we are not connecting.
animation_connecting_.Stop();
- if (!cros->Connected()) {
+
+ // Always show the higher priority connection first. Ethernet then wifi.
+ if (cros->ethernet_connected()) {
+ SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED));
+ SetTooltipText(
+ l10n_util::GetStringF(
+ IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
+ l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)));
+ } else if (cros->wifi_connected()) {
+ SetIcon(IconForNetworkStrength(
+ cros->wifi_network()->strength(), false));
+ SetTooltipText(l10n_util::GetStringF(
+ IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
+ UTF8ToWide(cros->wifi_network()->name())));
+ } else if (cros->cellular_connected()) {
+ const CellularNetwork* cellular = cros->cellular_network();
+ if (cellular->data_left() == CellularNetwork::DATA_NONE) {
+ // If no data, then we show 0 bars.
+ SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0));
+ } else {
+ SetIcon(IconForNetworkStrength(cellular));
+ }
+ SetTooltipText(l10n_util::GetStringF(
+ IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
+ UTF8ToWide(cellular->name())));
+ } else {
SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0));
SetTooltipText(l10n_util::GetString(
IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP));
- } else {
- SetNetworkIcon(network);
}
}
- SetNetworkBadge(cros, network);
- } else {
- SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0));
- SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING));
- SetTooltipText(l10n_util::GetString(
- IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP));
- }
-
- SchedulePaint();
- UpdateMenu();
-}
-////////////////////////////////////////////////////////////////////////////////
-// NetworkMenuButton, NetworkLibrary::NetworkObserver implementation:
-void NetworkMenuButton::OnNetworkChanged(NetworkLibrary* cros,
- const Network* network) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- if (CrosLibrary::Get()->EnsureLoaded()) {
- // Always show the active network connection, if any.
- SetNetworkIcon(network);
- SetNetworkBadge(cros, network);
+ // Figure out whether or not to show a badge.
+ int id = -1;
+ if (cros->Connecting()) {
+ if (cros->cellular_connecting()) {
+ id = IDR_STATUSBAR_NETWORK_3G;
+ }
+ } else if (cros->Connected()) {
+ if (!cros->ethernet_connected() && !cros->wifi_connected() &&
+ cros->cellular_connected()) {
+ switch (cros->cellular_network()->data_left()) {
+ case CellularNetwork::DATA_NONE:
+ case CellularNetwork::DATA_VERY_LOW:
+ id = IDR_STATUSBAR_NETWORK_3G_ERROR;
+ break;
+ case CellularNetwork::DATA_LOW:
+ id = IDR_STATUSBAR_NETWORK_3G_WARN;
+ break;
+ case CellularNetwork::DATA_NORMAL:
+ id = IDR_STATUSBAR_NETWORK_3G;
+ break;
+ }
+ }
+ } else {
+ id = IDR_STATUSBAR_NETWORK_DISCONNECTED;
+ }
+ if (id != -1) {
+ SetBadge(*rb.GetBitmapNamed(id));
+ } else {
+ SetBadge(SkBitmap());
+ }
} else {
SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0));
SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING));
@@ -158,9 +171,9 @@ void NetworkMenuButton::OnNetworkChanged(NetworkLibrary* cros,
UpdateMenu();
}
-void NetworkMenuButton::OnCellularDataPlanChanged(NetworkLibrary* cros) {
- // Call OnNetworkManagerChanged which will update the icon.
- OnNetworkManagerChanged(cros);
+void NetworkMenuButton::CellularDataPlanChanged(NetworkLibrary* cros) {
+ // Call NetworkChanged which will update the icon.
+ NetworkChanged(cros);
}
////////////////////////////////////////////////////////////////////////////////
@@ -182,54 +195,4 @@ bool NetworkMenuButton::ShouldOpenButtonOptions() const {
return host_->ShouldOpenButtonOptions(this);
}
-////////////////////////////////////////////////////////////////////////////////
-// NetworkMenuButton, private methods
-
-void NetworkMenuButton::SetNetworkIcon(const Network* network) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- if (network && network->is_active()) {
- if (network->type() == TYPE_ETHERNET) {
- SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED));
- SetTooltipText(
- l10n_util::GetStringF(
- IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
- l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)));
- } else if (network->type() == TYPE_WIFI) {
- const WifiNetwork* wifi = static_cast<const WifiNetwork*>(network);
- SetIcon(IconForNetworkStrength(wifi->strength(), false));
- SetTooltipText(l10n_util::GetStringF(
- IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
- UTF8ToWide(wifi->name())));
- } else if (network->type() == TYPE_CELLULAR) {
- const CellularNetwork* cellular =
- static_cast<const CellularNetwork*>(network);
- if (cellular->data_left() == CellularNetwork::DATA_NONE) {
- // If no data, then we show 0 bars.
- SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0));
- } else {
- SetIcon(IconForNetworkStrength(cellular));
- }
- SetTooltipText(l10n_util::GetStringF(
- IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP,
- UTF8ToWide(cellular->name())));
- }
- }
-}
-
-void NetworkMenuButton::SetNetworkBadge(NetworkLibrary* cros,
- const Network* network) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- // Figure out whether or not to show a badge.
- if (network && network->type() == TYPE_CELLULAR &&
- (network->is_active() || network->connecting())) {
- const CellularNetwork* cellular
- = static_cast<const CellularNetwork*>(network);
- SetBadge(BadgeForNetworkTechnology(cellular));
- } else if (!cros->Connected() && !cros->Connecting()) {
- SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED));
- } else {
- SetBadge(SkBitmap());
- }
-}
-
} // namespace chromeos
diff --git a/chrome/browser/chromeos/status/network_menu_button.h b/chrome/browser/chromeos/status/network_menu_button.h
index c2b2e71..f8b27db 100644
--- a/chrome/browser/chromeos/status/network_menu_button.h
+++ b/chrome/browser/chromeos/status/network_menu_button.h
@@ -46,9 +46,7 @@ class StatusAreaHost;
// The label will be BOLD if the network is currently connected.
class NetworkMenuButton : public StatusAreaButton,
public NetworkMenu,
- public NetworkLibrary::NetworkManagerObserver,
- public NetworkLibrary::NetworkObserver,
- public NetworkLibrary::CellularDataPlanObserver {
+ public NetworkLibrary::Observer {
public:
explicit NetworkMenuButton(StatusAreaHost* host);
virtual ~NetworkMenuButton();
@@ -56,12 +54,9 @@ class NetworkMenuButton : public StatusAreaButton,
// AnimationDelegate implementation.
virtual void AnimationProgressed(const Animation* animation);
- // NetworkLibrary::NetworkManagerObserver implementation.
- virtual void OnNetworkManagerChanged(NetworkLibrary* cros);
- // NetworkLibrary::NetworkObserver implementation.
- virtual void OnNetworkChanged(NetworkLibrary* cros, const Network* network);
- // NetworkLibrary::CellularDataPlanObserver implementation.
- virtual void OnCellularDataPlanChanged(NetworkLibrary* cros);
+ // NetworkLibrary::Observer implementation.
+ virtual void NetworkChanged(NetworkLibrary* obj);
+ virtual void CellularDataPlanChanged(NetworkLibrary* obj);
// Sets the badge icon.
void SetBadge(const SkBitmap& badge) { badge_ = badge; }
@@ -78,9 +73,6 @@ class NetworkMenuButton : public StatusAreaButton,
virtual bool ShouldOpenButtonOptions() const;
private:
- void SetNetworkIcon(const Network* network);
- void SetNetworkBadge(NetworkLibrary* cros, const Network* network);
-
// The status area host,
StatusAreaHost* host_;
@@ -93,10 +85,6 @@ class NetworkMenuButton : public StatusAreaButton,
// The duration of the icon throbbing in milliseconds.
static const int kThrobDuration;
- // If any network is currently active, this is the service path of the one
- // whose status is displayed in the network menu button.
- std::string active_network_;
-
DISALLOW_COPY_AND_ASSIGN(NetworkMenuButton);
};