| Index: chrome/browser/chromeos/dom_ui/internet_options_handler.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/dom_ui/internet_options_handler.cc (revision 64886)
|
| +++ chrome/browser/chromeos/dom_ui/internet_options_handler.cc (working copy)
|
| @@ -56,11 +56,19 @@
|
| } // namespace
|
|
|
| InternetOptionsHandler::InternetOptionsHandler() {
|
| - chromeos::CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this);
|
| + chromeos::NetworkLibrary* netlib =
|
| + chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| + netlib->AddNetworkManagerObserver(this);
|
| + netlib->AddCellularDataPlanObserver(this);
|
| + MonitorActiveNetwork(netlib);
|
| }
|
|
|
| InternetOptionsHandler::~InternetOptionsHandler() {
|
| - chromeos::CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
|
| + chromeos::NetworkLibrary *netlib =
|
| + chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| + netlib->RemoveNetworkManagerObserver(this);
|
| + netlib->RemoveCellularDataPlanObserver(this);
|
| + netlib->RemoveObserverForAllNetworks(this);
|
| }
|
|
|
| void InternetOptionsHandler::GetLocalizedValues(
|
| @@ -357,10 +365,8 @@
|
| browser->OpenMobilePlanTabAndActivate();
|
| }
|
|
|
| -void InternetOptionsHandler::NetworkChanged(chromeos::NetworkLibrary* cros) {
|
| - if (!dom_ui_)
|
| - return;
|
| -
|
| +void InternetOptionsHandler::RefreshNetworkData(
|
| + chromeos::NetworkLibrary* cros) {
|
| DictionaryValue dictionary;
|
| dictionary.Set("wiredList", GetWiredList());
|
| dictionary.Set("wirelessList", GetWirelessList());
|
| @@ -373,7 +379,45 @@
|
| L"options.InternetOptions.refreshNetworkData", dictionary);
|
| }
|
|
|
| -void InternetOptionsHandler::CellularDataPlanChanged(
|
| +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(
|
| chromeos::NetworkLibrary* obj) {
|
| if (!dom_ui_)
|
| return;
|
| @@ -950,7 +994,7 @@
|
| cellular_networks.begin(); it != cellular_networks.end(); ++it) {
|
| SkBitmap icon = chromeos::NetworkMenu::IconForNetworkStrength(
|
| (*it)->strength(), true);
|
| - SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
|
| + SkBitmap badge = chromeos::NetworkMenu::BadgeForNetworkTechnology(*it);
|
| icon = chromeos::NetworkMenu::IconForDisplay(icon, badge);
|
| list->Append(GetNetwork(
|
| (*it)->service_path(),
|
|
|