Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(477)

Side by Side Diff: chrome/browser/chromeos/cros/network_library.cc

Issue 6292008: Added flags to prevent messing with network connections while 3G device is be... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/cros/network_library.h" 5 #include "chrome/browser/chromeos/cros/network_library.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 : network_manager_monitor_(NULL), 835 : network_manager_monitor_(NULL),
836 data_plan_monitor_(NULL), 836 data_plan_monitor_(NULL),
837 ethernet_(NULL), 837 ethernet_(NULL),
838 wifi_(NULL), 838 wifi_(NULL),
839 cellular_(NULL), 839 cellular_(NULL),
840 available_devices_(0), 840 available_devices_(0),
841 enabled_devices_(0), 841 enabled_devices_(0),
842 connected_devices_(0), 842 connected_devices_(0),
843 wifi_scanning_(false), 843 wifi_scanning_(false),
844 offline_mode_(false), 844 offline_mode_(false),
845 is_locked_(false),
845 update_task_(NULL) { 846 update_task_(NULL) {
846 if (EnsureCrosLoaded()) { 847 if (EnsureCrosLoaded()) {
847 Init(); 848 Init();
848 network_manager_monitor_ = 849 network_manager_monitor_ =
849 MonitorNetworkManager(&NetworkManagerStatusChangedHandler, 850 MonitorNetworkManager(&NetworkManagerStatusChangedHandler,
850 this); 851 this);
851 data_plan_monitor_ = MonitorCellularDataPlan(&DataPlanUpdateHandler, 852 data_plan_monitor_ = MonitorCellularDataPlan(&DataPlanUpdateHandler,
852 this); 853 this);
853 network_login_observer_.reset(new NetworkLoginObserver(this)); 854 network_login_observer_.reset(new NetworkLoginObserver(this));
854 } else { 855 } else {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 map_iter->second->RemoveObserver(observer); 934 map_iter->second->RemoveObserver(observer);
934 if (!map_iter->second->size()) { 935 if (!map_iter->second->size()) {
935 delete map_iter->second; 936 delete map_iter->second;
936 network_observers_.erase(map_iter++); 937 network_observers_.erase(map_iter++);
937 } else { 938 } else {
938 ++map_iter; 939 ++map_iter;
939 } 940 }
940 } 941 }
941 } 942 }
942 943
944 virtual void Lock() {
945 if (is_locked_)
946 return;
947 is_locked_ = true;
948 NotifyNetworkManagerChanged();
949 }
950
951 virtual void Unlock() {
952 DCHECK(is_locked_);
953 if (!is_locked_)
954 return;
955 is_locked_ = false;
956 NotifyNetworkManagerChanged();
957 is_locked_ = false;
Charlie Lee 2011/01/20 20:05:43 What's the reason for setting this twice?
zel 2011/01/20 22:06:14 Done.
958 }
959
960 virtual bool IsLocked() {
961 return is_locked_;
962 }
963
943 virtual void AddCellularDataPlanObserver(CellularDataPlanObserver* observer) { 964 virtual void AddCellularDataPlanObserver(CellularDataPlanObserver* observer) {
944 if (!data_plan_observers_.HasObserver(observer)) 965 if (!data_plan_observers_.HasObserver(observer))
945 data_plan_observers_.AddObserver(observer); 966 data_plan_observers_.AddObserver(observer);
946 } 967 }
947 968
948 virtual void RemoveCellularDataPlanObserver( 969 virtual void RemoveCellularDataPlanObserver(
949 CellularDataPlanObserver* observer) { 970 CellularDataPlanObserver* observer) {
950 data_plan_observers_.RemoveObserver(observer); 971 data_plan_observers_.RemoveObserver(observer);
951 } 972 }
952 973
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
1293 } 1314 }
1294 if (cellular_ && cellular_->connected()) { 1315 if (cellular_ && cellular_->connected()) {
1295 cellular_->set_active(true); 1316 cellular_->set_active(true);
1296 return cellular_; 1317 return cellular_;
1297 } 1318 }
1298 // END BUG 9310 WORKAROUND 1319 // END BUG 9310 WORKAROUND
1299 return NULL; 1320 return NULL;
1300 } 1321 }
1301 1322
1302 virtual void EnableEthernetNetworkDevice(bool enable) { 1323 virtual void EnableEthernetNetworkDevice(bool enable) {
1324 if (is_locked_)
1325 return;
1303 EnableNetworkDeviceType(TYPE_ETHERNET, enable); 1326 EnableNetworkDeviceType(TYPE_ETHERNET, enable);
1304 } 1327 }
1305 1328
1306 virtual void EnableWifiNetworkDevice(bool enable) { 1329 virtual void EnableWifiNetworkDevice(bool enable) {
1330 if (is_locked_)
1331 return;
1307 EnableNetworkDeviceType(TYPE_WIFI, enable); 1332 EnableNetworkDeviceType(TYPE_WIFI, enable);
1308 } 1333 }
1309 1334
1310 virtual void EnableCellularNetworkDevice(bool enable) { 1335 virtual void EnableCellularNetworkDevice(bool enable) {
1336 if (is_locked_)
1337 return;
1311 EnableNetworkDeviceType(TYPE_CELLULAR, enable); 1338 EnableNetworkDeviceType(TYPE_CELLULAR, enable);
1312 } 1339 }
1313 1340
1314 virtual void EnableOfflineMode(bool enable) { 1341 virtual void EnableOfflineMode(bool enable) {
1315 if (!EnsureCrosLoaded()) 1342 if (!EnsureCrosLoaded())
1316 return; 1343 return;
1317 1344
1318 // If network device is already enabled/disabled, then don't do anything. 1345 // If network device is already enabled/disabled, then don't do anything.
1319 if (enable && offline_mode_) { 1346 if (enable && offline_mode_) {
1320 VLOG(1) << "Trying to enable offline mode when it's already enabled."; 1347 VLOG(1) << "Trying to enable offline mode when it's already enabled.";
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
1590 } 1617 }
1591 1618
1592 void Init() { 1619 void Init() {
1593 // First, get the currently available networks. This data is cached 1620 // First, get the currently available networks. This data is cached
1594 // on the connman side, so the call should be quick. 1621 // on the connman side, so the call should be quick.
1595 VLOG(1) << "Getting initial CrOS network info."; 1622 VLOG(1) << "Getting initial CrOS network info.";
1596 UpdateSystemInfo(); 1623 UpdateSystemInfo();
1597 } 1624 }
1598 1625
1599 void InitTestData() { 1626 void InitTestData() {
1627 is_locked_ = true;
1600 ethernet_ = new EthernetNetwork(); 1628 ethernet_ = new EthernetNetwork();
1601 ethernet_->set_connected(true); 1629 ethernet_->set_connected(true);
1602 ethernet_->set_service_path("eth1"); 1630 ethernet_->set_service_path("eth1");
1603 1631
1604 STLDeleteElements(&wifi_networks_); 1632 STLDeleteElements(&wifi_networks_);
1605 wifi_networks_.clear(); 1633 wifi_networks_.clear();
1606 WifiNetwork* wifi1 = new WifiNetwork(); 1634 WifiNetwork* wifi1 = new WifiNetwork();
1607 wifi1->set_service_path("fw1"); 1635 wifi1->set_service_path("fw1");
1608 wifi1->set_name("Fake Wifi 1"); 1636 wifi1->set_name("Fake Wifi 1");
1609 wifi1->set_strength(90); 1637 wifi1->set_strength(90);
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
1907 1935
1908 // The current connected network devices. Bitwise flag of ConnectionTypes. 1936 // The current connected network devices. Bitwise flag of ConnectionTypes.
1909 int connected_devices_; 1937 int connected_devices_;
1910 1938
1911 // True if we are currently scanning for wifi networks. 1939 // True if we are currently scanning for wifi networks.
1912 bool wifi_scanning_; 1940 bool wifi_scanning_;
1913 1941
1914 // Currently not implemented. TODO: implement or eliminate. 1942 // Currently not implemented. TODO: implement or eliminate.
1915 bool offline_mode_; 1943 bool offline_mode_;
1916 1944
1945 // True if access network library is locked.
1946 bool is_locked_;
1947
1917 // Delayed task to retrieve the network information. 1948 // Delayed task to retrieve the network information.
1918 CancelableTask* update_task_; 1949 CancelableTask* update_task_;
1919 1950
1920 // Cellular plan payment time. 1951 // Cellular plan payment time.
1921 base::Time cellular_plan_payment_time_; 1952 base::Time cellular_plan_payment_time_;
1922 1953
1923 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImpl); 1954 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImpl);
1924 }; 1955 };
1925 1956
1926 class NetworkLibraryStubImpl : public NetworkLibrary { 1957 class NetworkLibraryStubImpl : public NetworkLibrary {
1927 public: 1958 public:
1928 NetworkLibraryStubImpl() 1959 NetworkLibraryStubImpl()
1929 : ip_address_("1.1.1.1"), 1960 : ip_address_("1.1.1.1"),
1930 ethernet_(new EthernetNetwork()), 1961 ethernet_(new EthernetNetwork()),
1931 wifi_(NULL), 1962 wifi_(NULL),
1932 cellular_(NULL) { 1963 cellular_(NULL) {
1933 } 1964 }
1934 ~NetworkLibraryStubImpl() { if (ethernet_) delete ethernet_; } 1965 ~NetworkLibraryStubImpl() { if (ethernet_) delete ethernet_; }
1935 virtual void AddNetworkManagerObserver(NetworkManagerObserver* observer) {} 1966 virtual void AddNetworkManagerObserver(NetworkManagerObserver* observer) {}
1936 virtual void RemoveNetworkManagerObserver(NetworkManagerObserver* observer) {} 1967 virtual void RemoveNetworkManagerObserver(NetworkManagerObserver* observer) {}
1937 virtual void AddNetworkObserver(const std::string& service_path, 1968 virtual void AddNetworkObserver(const std::string& service_path,
1938 NetworkObserver* observer) {} 1969 NetworkObserver* observer) {}
1939 virtual void RemoveNetworkObserver(const std::string& service_path, 1970 virtual void RemoveNetworkObserver(const std::string& service_path,
1940 NetworkObserver* observer) {} 1971 NetworkObserver* observer) {}
1941 virtual void RemoveObserverForAllNetworks(NetworkObserver* observer) {} 1972 virtual void RemoveObserverForAllNetworks(NetworkObserver* observer) {}
1973 virtual void Lock() {}
1974 virtual void Unlock() {}
1975 virtual bool IsLocked() { return true; }
1942 virtual void AddCellularDataPlanObserver( 1976 virtual void AddCellularDataPlanObserver(
1943 CellularDataPlanObserver* observer) {} 1977 CellularDataPlanObserver* observer) {}
1944 virtual void RemoveCellularDataPlanObserver( 1978 virtual void RemoveCellularDataPlanObserver(
1945 CellularDataPlanObserver* observer) {} 1979 CellularDataPlanObserver* observer) {}
1946 virtual const EthernetNetwork* ethernet_network() const { 1980 virtual const EthernetNetwork* ethernet_network() const {
1947 return ethernet_; 1981 return ethernet_;
1948 } 1982 }
1949 virtual bool ethernet_connecting() const { return false; } 1983 virtual bool ethernet_connecting() const { return false; }
1950 virtual bool ethernet_connected() const { return true; } 1984 virtual bool ethernet_connected() const { return true; }
1951 virtual const WifiNetwork* wifi_network() const { 1985 virtual const WifiNetwork* wifi_network() const {
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
2044 return new NetworkLibraryStubImpl(); 2078 return new NetworkLibraryStubImpl();
2045 else 2079 else
2046 return new NetworkLibraryImpl(); 2080 return new NetworkLibraryImpl();
2047 } 2081 }
2048 2082
2049 } // namespace chromeos 2083 } // namespace chromeos
2050 2084
2051 // Allows InvokeLater without adding refcounting. This class is a Singleton and 2085 // Allows InvokeLater without adding refcounting. This class is a Singleton and
2052 // won't be deleted until it's last InvokeLater is run. 2086 // won't be deleted until it's last InvokeLater is run.
2053 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::NetworkLibraryImpl); 2087 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::NetworkLibraryImpl);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698