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

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

Issue 5861001: Activation process improvements (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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 static const char* kNetworkTechnologyHspa = "HSPA"; 77 static const char* kNetworkTechnologyHspa = "HSPA";
78 static const char* kNetworkTechnologyHspaPlus = "HSPA+"; 78 static const char* kNetworkTechnologyHspaPlus = "HSPA+";
79 static const char* kNetworkTechnologyLte = "LTE"; 79 static const char* kNetworkTechnologyLte = "LTE";
80 static const char* kNetworkTechnologyLteAdvanced = "LTE Advanced"; 80 static const char* kNetworkTechnologyLteAdvanced = "LTE Advanced";
81 81
82 // Connman roaming state options 82 // Connman roaming state options
83 static const char* kRoamingStateHome = "home"; 83 static const char* kRoamingStateHome = "home";
84 static const char* kRoamingStateRoaming = "roaming"; 84 static const char* kRoamingStateRoaming = "roaming";
85 static const char* kRoamingStateUnknown = "unknown"; 85 static const char* kRoamingStateUnknown = "unknown";
86 86
87 // How long we should remember that cellular plan payment was received.
88 const int kRecentPlanPaymentHours = 6;
89
87 static ConnectionState ParseState(const std::string& state) { 90 static ConnectionState ParseState(const std::string& state) {
88 if (state == kStateIdle) 91 if (state == kStateIdle)
89 return STATE_IDLE; 92 return STATE_IDLE;
90 if (state == kStateCarrier) 93 if (state == kStateCarrier)
91 return STATE_CARRIER; 94 return STATE_CARRIER;
92 if (state == kStateAssociation) 95 if (state == kStateAssociation)
93 return STATE_ASSOCIATION; 96 return STATE_ASSOCIATION;
94 if (state == kStateConfiguration) 97 if (state == kStateConfiguration)
95 return STATE_CONFIGURATION; 98 return STATE_CONFIGURATION;
96 if (state == kStateReady) 99 if (state == kStateReady)
(...skipping 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 } 1131 }
1129 } 1132 }
1130 1133
1131 virtual void RefreshCellularDataPlans(const CellularNetwork* network) { 1134 virtual void RefreshCellularDataPlans(const CellularNetwork* network) {
1132 DCHECK(network); 1135 DCHECK(network);
1133 if (!EnsureCrosLoaded() || !network) 1136 if (!EnsureCrosLoaded() || !network)
1134 return; 1137 return;
1135 RequestCellularDataPlanUpdate(network->service_path().c_str()); 1138 RequestCellularDataPlanUpdate(network->service_path().c_str());
1136 } 1139 }
1137 1140
1141 // Records information that cellular play payment had happened.
1142 virtual void SignalCellularPlanPayment() {
1143 DCHECK(!HasRecentCellularPlanPayment());
1144 cellular_plan_payment_time_ = base::Time::Now();
1145 }
1146
1147 // Returns true if cellular plan payment had been recorded recently.
1148 virtual bool HasRecentCellularPlanPayment() {
1149 return (base::Time::Now() -
1150 cellular_plan_payment_time_).InHours() < kRecentPlanPaymentHours;
1151 }
1152
1138 virtual void DisconnectFromWirelessNetwork(const WirelessNetwork* network) { 1153 virtual void DisconnectFromWirelessNetwork(const WirelessNetwork* network) {
1139 DCHECK(network); 1154 DCHECK(network);
1140 if (!EnsureCrosLoaded() || !network) 1155 if (!EnsureCrosLoaded() || !network)
1141 return; 1156 return;
1142 // TODO(ers) restore default service type priority ordering? 1157 // TODO(ers) restore default service type priority ordering?
1143 if (DisconnectFromNetwork(network->service_path().c_str())) { 1158 if (DisconnectFromNetwork(network->service_path().c_str())) {
1144 // Update local cache and notify listeners. 1159 // Update local cache and notify listeners.
1145 if (network->type() == TYPE_WIFI) { 1160 if (network->type() == TYPE_WIFI) {
1146 WifiNetwork* wifi = GetWirelessNetworkByPath( 1161 WifiNetwork* wifi = GetWirelessNetworkByPath(
1147 wifi_networks_, network->service_path()); 1162 wifi_networks_, network->service_path());
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
1614 1629
1615 wifi_ = wifi2; 1630 wifi_ = wifi2;
1616 1631
1617 STLDeleteElements(&cellular_networks_); 1632 STLDeleteElements(&cellular_networks_);
1618 cellular_networks_.clear(); 1633 cellular_networks_.clear();
1619 1634
1620 CellularNetwork* cellular1 = new CellularNetwork(); 1635 CellularNetwork* cellular1 = new CellularNetwork();
1621 cellular1->set_service_path("fc1"); 1636 cellular1->set_service_path("fc1");
1622 cellular1->set_name("Fake Cellular 1"); 1637 cellular1->set_name("Fake Cellular 1");
1623 cellular1->set_strength(70); 1638 cellular1->set_strength(70);
1624 cellular1->set_connected(true); 1639 cellular1->set_connected(false);
1625 cellular1->set_activation_state(ACTIVATION_STATE_ACTIVATED); 1640 cellular1->set_activation_state(ACTIVATION_STATE_ACTIVATED);
1626 cellular1->set_payment_url(std::string("http://www.google.com")); 1641 cellular1->set_payment_url(std::string("http://www.google.com"));
1627 cellular1->set_network_technology(NETWORK_TECHNOLOGY_EVDO); 1642 cellular1->set_network_technology(NETWORK_TECHNOLOGY_EVDO);
1628 1643
1629 CellularDataPlan* base_plan = new CellularDataPlan(); 1644 CellularDataPlan* base_plan = new CellularDataPlan();
1630 base_plan->plan_name = "Base plan"; 1645 base_plan->plan_name = "Base plan";
1631 base_plan->plan_type = CELLULAR_DATA_PLAN_METERED_BASE; 1646 base_plan->plan_type = CELLULAR_DATA_PLAN_METERED_BASE;
1632 base_plan->plan_data_bytes = 100ll * 1024 * 1024; 1647 base_plan->plan_data_bytes = 100ll * 1024 * 1024;
1633 base_plan->data_bytes_used = 75ll * 1024 * 1024; 1648 base_plan->data_bytes_used = 75ll * 1024 * 1024;
1634 cellular1->data_plans_.push_back(base_plan); 1649 cellular1->data_plans_.push_back(base_plan);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1761 BrowserThread::UI, FROM_HERE, 1776 BrowserThread::UI, FROM_HERE,
1762 NewRunnableMethod(this, 1777 NewRunnableMethod(this,
1763 &NetworkLibraryImpl::UpdateNetworkStatus, 1778 &NetworkLibraryImpl::UpdateNetworkStatus,
1764 path, key, value)); 1779 path, key, value));
1765 return; 1780 return;
1766 } 1781 }
1767 1782
1768 bool boolval = false; 1783 bool boolval = false;
1769 int intval = 0; 1784 int intval = 0;
1770 std::string stringval; 1785 std::string stringval;
1771 Network* network; 1786 Network* network = NULL;
1772 if (ethernet_->service_path() == path) { 1787 if (ethernet_->service_path() == path) {
1773 network = ethernet_; 1788 network = ethernet_;
1774 } else { 1789 } else {
1775 CellularNetwork* cellular = 1790 CellularNetwork* cellular =
1776 GetWirelessNetworkByPath(cellular_networks_, path); 1791 GetWirelessNetworkByPath(cellular_networks_, path);
1777 WifiNetwork* wifi = 1792 WifiNetwork* wifi =
1778 GetWirelessNetworkByPath(wifi_networks_, path); 1793 GetWirelessNetworkByPath(wifi_networks_, path);
1779 if (cellular == NULL && wifi == NULL) 1794 if (cellular == NULL && wifi == NULL)
1780 return; 1795 return;
1781 1796
1782 WirelessNetwork* wireless; 1797 WirelessNetwork* wireless = NULL;
1783 if (wifi != NULL) 1798 if (wifi != NULL)
1784 wireless = static_cast<WirelessNetwork*>(wifi); 1799 wireless = static_cast<WirelessNetwork*>(wifi);
1785 else 1800 else
1786 wireless = static_cast<WirelessNetwork*>(cellular); 1801 wireless = static_cast<WirelessNetwork*>(cellular);
1787 1802
1788 if (strcmp(key, kSignalStrengthProperty) == 0) { 1803 if (strcmp(key, kSignalStrengthProperty) == 0) {
1789 if (value->GetAsInteger(&intval)) 1804 if (value->GetAsInteger(&intval))
1790 wireless->set_strength(intval); 1805 wireless->set_strength(intval);
1791 } else if (cellular != NULL) { 1806 } else if (cellular != NULL) {
1792 if (strcmp(key, kConnectivityStateProperty) == 0) { 1807 if (strcmp(key, kConnectivityStateProperty) == 0) {
(...skipping 22 matching lines...) Expand all
1815 } else if (strcmp(key, kIsActiveProperty) == 0) { 1830 } else if (strcmp(key, kIsActiveProperty) == 0) {
1816 if (value->GetAsBoolean(&boolval)) 1831 if (value->GetAsBoolean(&boolval))
1817 network->set_active(boolval); 1832 network->set_active(boolval);
1818 } else if (strcmp(key, kStateProperty) == 0) { 1833 } else if (strcmp(key, kStateProperty) == 0) {
1819 if (value->GetAsString(&stringval)) { 1834 if (value->GetAsString(&stringval)) {
1820 network->set_state(ParseState(stringval)); 1835 network->set_state(ParseState(stringval));
1821 // State changed, so refresh IP address. 1836 // State changed, so refresh IP address.
1822 network->InitIPAddress(); 1837 network->InitIPAddress();
1823 } 1838 }
1824 } 1839 }
1825 NotifyNetworkChanged(network); 1840 if (network)
1841 NotifyNetworkChanged(network);
1826 } 1842 }
1827 1843
1828 void UpdateCellularDataPlan(const CellularDataPlanList* data_plans) { 1844 void UpdateCellularDataPlan(const CellularDataPlanList* data_plans) {
1829 DCHECK(cellular_); 1845 DCHECK(cellular_);
1830 cellular_->SetDataPlans(data_plans); 1846 cellular_->SetDataPlans(data_plans);
1831 NotifyCellularDataPlanChanged(); 1847 NotifyCellularDataPlanChanged();
1832 } 1848 }
1833 1849
1834 void ClearNetworks() { 1850 void ClearNetworks() {
1835 if (ethernet_) 1851 if (ethernet_)
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1889 1905
1890 // True if we are currently scanning for wifi networks. 1906 // True if we are currently scanning for wifi networks.
1891 bool wifi_scanning_; 1907 bool wifi_scanning_;
1892 1908
1893 // Currently not implemented. TODO: implement or eliminate. 1909 // Currently not implemented. TODO: implement or eliminate.
1894 bool offline_mode_; 1910 bool offline_mode_;
1895 1911
1896 // Delayed task to retrieve the network information. 1912 // Delayed task to retrieve the network information.
1897 CancelableTask* update_task_; 1913 CancelableTask* update_task_;
1898 1914
1915 // Cellular plan payment time.
1916 base::Time cellular_plan_payment_time_;
1917
1899 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImpl); 1918 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImpl);
1900 }; 1919 };
1901 1920
1902 class NetworkLibraryStubImpl : public NetworkLibrary { 1921 class NetworkLibraryStubImpl : public NetworkLibrary {
1903 public: 1922 public:
1904 NetworkLibraryStubImpl() 1923 NetworkLibraryStubImpl()
1905 : ip_address_("1.1.1.1"), 1924 : ip_address_("1.1.1.1"),
1906 ethernet_(new EthernetNetwork()), 1925 ethernet_(new EthernetNetwork()),
1907 wifi_(NULL), 1926 wifi_(NULL),
1908 cellular_(NULL) { 1927 cellular_(NULL) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1972 const std::string& password, 1991 const std::string& password,
1973 const std::string& identity, 1992 const std::string& identity,
1974 const std::string& certpath, 1993 const std::string& certpath,
1975 bool auto_connect) { 1994 bool auto_connect) {
1976 return true; 1995 return true;
1977 } 1996 }
1978 virtual bool ConnectToCellularNetwork(const CellularNetwork* network) { 1997 virtual bool ConnectToCellularNetwork(const CellularNetwork* network) {
1979 return true; 1998 return true;
1980 } 1999 }
1981 virtual void RefreshCellularDataPlans(const CellularNetwork* network) {} 2000 virtual void RefreshCellularDataPlans(const CellularNetwork* network) {}
2001 virtual void SignalCellularPlanPayment() {}
2002 virtual bool HasRecentCellularPlanPayment() { return false; }
1982 virtual void DisconnectFromWirelessNetwork(const WirelessNetwork* network) {} 2003 virtual void DisconnectFromWirelessNetwork(const WirelessNetwork* network) {}
1983 virtual void SaveCellularNetwork(const CellularNetwork* network) {} 2004 virtual void SaveCellularNetwork(const CellularNetwork* network) {}
1984 virtual void SaveWifiNetwork(const WifiNetwork* network) {} 2005 virtual void SaveWifiNetwork(const WifiNetwork* network) {}
1985 virtual void ForgetWifiNetwork(const std::string& service_path) {} 2006 virtual void ForgetWifiNetwork(const std::string& service_path) {}
1986 virtual bool ethernet_available() const { return true; } 2007 virtual bool ethernet_available() const { return true; }
1987 virtual bool wifi_available() const { return false; } 2008 virtual bool wifi_available() const { return false; }
1988 virtual bool cellular_available() const { return false; } 2009 virtual bool cellular_available() const { return false; }
1989 virtual bool ethernet_enabled() const { return true; } 2010 virtual bool ethernet_enabled() const { return true; }
1990 virtual bool wifi_enabled() const { return false; } 2011 virtual bool wifi_enabled() const { return false; }
1991 virtual bool cellular_enabled() const { return false; } 2012 virtual bool cellular_enabled() const { return false; }
(...skipping 26 matching lines...) Expand all
2018 return new NetworkLibraryStubImpl(); 2039 return new NetworkLibraryStubImpl();
2019 else 2040 else
2020 return new NetworkLibraryImpl(); 2041 return new NetworkLibraryImpl();
2021 } 2042 }
2022 2043
2023 } // namespace chromeos 2044 } // namespace chromeos
2024 2045
2025 // Allows InvokeLater without adding refcounting. This class is a Singleton and 2046 // Allows InvokeLater without adding refcounting. This class is a Singleton and
2026 // won't be deleted until it's last InvokeLater is run. 2047 // won't be deleted until it's last InvokeLater is run.
2027 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::NetworkLibraryImpl); 2048 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::NetworkLibraryImpl);
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/network_library.h ('k') | chrome/browser/chromeos/dom_ui/mobile_setup_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698