diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-19 04:57:45 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-19 04:57:45 +0000 |
commit | 2ad7f1b00baeb0805aa5d87692e11230edbeaf74 (patch) | |
tree | 3a0bd653d1b5522111f3787cb17404d0e755ab38 /chrome | |
parent | cb9b22f495de76e94eb4a0dd0d0094e020617c03 (diff) | |
download | chromium_src-2ad7f1b00baeb0805aa5d87692e11230edbeaf74.zip chromium_src-2ad7f1b00baeb0805aa5d87692e11230edbeaf74.tar.gz chromium_src-2ad7f1b00baeb0805aa5d87692e11230edbeaf74.tar.bz2 |
Use Device.Scanning for wifi_scanning
This also refactors NetworkListDetailedViewBase::RefreshNetworkList,
shich should help make the code more maintainable, and fixes a subtle bug
where the "scanning" text was not getting removed. It also reduces the
jumpiness of the network list when it updates.
BUG=153004
Review URL: https://chromiumcodereview.appspot.com/12018022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177846 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/cros/network_library_impl_cros.cc | 31 | ||||
-rw-r--r-- | chrome/browser/chromeos/cros/network_library_impl_cros.h | 2 |
2 files changed, 8 insertions, 25 deletions
diff --git a/chrome/browser/chromeos/cros/network_library_impl_cros.cc b/chrome/browser/chromeos/cros/network_library_impl_cros.cc index f80e0a9..c0b7c55 100644 --- a/chrome/browser/chromeos/cros/network_library_impl_cros.cc +++ b/chrome/browser/chromeos/cros/network_library_impl_cros.cc @@ -155,6 +155,10 @@ void NetworkLibraryImplCros::UpdateNetworkDeviceStatus( VLOG(1) << "UpdateNetworkDeviceStatus: Failed to update: " << path << "." << key; } + if (device->type() == TYPE_WIFI && device->scanning() != wifi_scanning_) { + wifi_scanning_ = device->scanning(); + NotifyNetworkManagerChanged(false); // Not forced. + } // Notify only observers on device property change. NotifyNetworkDeviceChanged(device, index); // If a device's power state changes, new properties may become defined. @@ -446,12 +450,8 @@ bool NetworkLibraryImplCros::IsCellularAlwaysInRoaming() { } void NetworkLibraryImplCros::RequestNetworkScan() { - if (wifi_enabled() && !wifi_scanning_) { - VLOG(1) << "Wifi network scan requested"; - wifi_scanning_ = true; - wifi_scan_request_time_ = base::Time::Now(); + if (wifi_enabled()) CrosRequestNetworkScan(flimflam::kTypeWifi); - } if (wimax_enabled()) CrosRequestNetworkScan(flimflam::kTypeWimax); @@ -844,20 +844,6 @@ void NetworkLibraryImplCros::UpdateNetworkServiceList( } } - if (wifi_enabled()) { - if (wifi_scanning_) { - // If we haven't requested a scan recently, set scanning to false. - const int kMaxScanTimeSeconds = 15; - base::TimeDelta dtime = base::Time::Now() - wifi_scan_request_time_; - if (dtime.InSeconds() > kMaxScanTimeSeconds) { - VLOG(1) << "Wifi scan timeout"; - wifi_scanning_ = false; // Timeout, assume no wifi networks found - } - } - } else { - wifi_scanning_ = false; - } - // Iterate through list of remaining networks that are no longer in the // list and delete them or update their status and re-add them to the list. for (NetworkMap::iterator iter = old_network_map.begin(); @@ -965,10 +951,6 @@ Network* NetworkLibraryImplCros::ParseNetwork( // << service_path; } - if (wifi_scanning_ && network->type() == TYPE_WIFI) { - VLOG(1) << "Wifi scan completed"; - wifi_scanning_ = false; - } VLOG(2) << "ParseNetwork: " << network->name() << " path: " << network->service_path() << " profile: " << network->profile_path_; @@ -1232,6 +1214,9 @@ void NetworkLibraryImplCros::ParseNetworkDevice(const std::string& device_path, if (device && device->type() == TYPE_CELLULAR) UpdateCellularDeviceStatus(device, PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING); + if (device && device->type() == TYPE_WIFI) + wifi_scanning_ = device->scanning(); + NotifyNetworkManagerChanged(false); // Not forced. AddNetworkDeviceObserver(device_path, network_device_observer_.get()); } diff --git a/chrome/browser/chromeos/cros/network_library_impl_cros.h b/chrome/browser/chromeos/cros/network_library_impl_cros.h index d284ad9..a869822 100644 --- a/chrome/browser/chromeos/cros/network_library_impl_cros.h +++ b/chrome/browser/chromeos/cros/network_library_impl_cros.h @@ -209,8 +209,6 @@ class NetworkLibraryImplCros : public NetworkLibraryImplBase { // Map of monitored devices. NetworkWatcherMap monitored_devices_; - base::Time wifi_scan_request_time_; - DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImplCros); }; |