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

Unified Diff: chrome/browser/chromeos/cros/network_library.h

Issue 4169001: Rewritten parts of NetworkLibrary to work around memory corruption that prev... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/cros/network_library.h
===================================================================
--- chrome/browser/chromeos/cros/network_library.h (revision 64441)
+++ chrome/browser/chromeos/cros/network_library.h (working copy)
@@ -59,9 +59,6 @@
// Clear the fields.
virtual void Clear();
- // Configure the Network from a ServiceInfo object.
- virtual void ConfigureFromService(const ServiceInfo& service);
-
// Return a string representation of the state code.
std::string GetStateString() const;
@@ -73,6 +70,8 @@
: type_(TYPE_UNKNOWN),
state_(STATE_UNKNOWN),
error_(ERROR_UNKNOWN) {}
+ explicit Network(const Network& network);
+ explicit Network(const ServiceInfo* service);
virtual ~Network() {}
std::string service_path_;
@@ -88,6 +87,15 @@
EthernetNetwork() : Network() {
type_ = TYPE_ETHERNET;
}
+
+ explicit EthernetNetwork(const EthernetNetwork& network)
+ : Network(network) {
+ type_ = TYPE_ETHERNET;
+ }
+
+ explicit EthernetNetwork(const ServiceInfo* service) : Network(service) {
+ type_ = TYPE_ETHERNET;
+ }
};
class WirelessNetwork : public Network {
@@ -100,8 +108,8 @@
// We frequently want to compare networks by service path.
struct ServicePathEq {
explicit ServicePathEq(const std::string& path_in) : path(path_in) {}
- bool operator()(const WirelessNetwork& a) {
- return a.service_path().compare(path) == 0;
+ bool operator()(const WirelessNetwork* a) {
+ return a->service_path().compare(path) == 0;
}
const std::string& path;
};
@@ -118,7 +126,6 @@
// Network overrides.
virtual void Clear();
- virtual void ConfigureFromService(const ServiceInfo& service);
protected:
WirelessNetwork()
@@ -126,6 +133,8 @@
strength_(0),
auto_connect_(false),
favorite_(false) {}
+ explicit WirelessNetwork(const WirelessNetwork& network);
+ explicit WirelessNetwork(const ServiceInfo* service);
std::string name_;
int strength_;
@@ -143,10 +152,8 @@
};
CellularNetwork();
- explicit CellularNetwork(const ServiceInfo& service)
- : WirelessNetwork() {
- ConfigureFromService(service);
- }
+ explicit CellularNetwork(const CellularNetwork& network);
+ explicit CellularNetwork(const ServiceInfo* service);
// Starts device activation process. Returns false if the device state does
// not permit activation.
@@ -184,7 +191,6 @@
// WirelessNetwork overrides.
virtual void Clear();
- virtual void ConfigureFromService(const ServiceInfo& service);
const CellularDataPlanList& GetDataPlans() const {
return data_plans_;
@@ -204,6 +210,7 @@
static std::string ActivationStateToString(ActivationState activation_state);
protected:
+
ActivationState activation_state_;
NetworkTechnology network_technology_;
NetworkRoamingState roaming_state_;
@@ -232,7 +239,8 @@
class WifiNetwork : public WirelessNetwork {
public:
WifiNetwork();
- explicit WifiNetwork(const ServiceInfo& service);
+ explicit WifiNetwork(const WifiNetwork& network);
+ explicit WifiNetwork(const ServiceInfo* service);
bool encrypted() const { return encryption_ != SECURITY_NONE; }
ConnectionSecurity encryption() const { return encryption_; }
@@ -255,7 +263,6 @@
// WirelessNetwork overrides.
virtual void Clear();
- virtual void ConfigureFromService(const ServiceInfo& service);
// Return a string representation of the encryption code.
// This not translated and should be only used for debugging purposes.
@@ -271,8 +278,8 @@
std::string cert_path_;
};
-typedef std::vector<WifiNetwork> WifiNetworkVector;
-typedef std::vector<CellularNetwork> CellularNetworkVector;
+typedef std::vector<chromeos::WifiNetwork*> WifiNetworkVector;
+typedef std::vector<chromeos::CellularNetwork*> CellularNetworkVector;
struct CellTower {
enum RadioType {
@@ -355,17 +362,17 @@
virtual void RemoveProperyObserver(PropertyObserver* observer) = 0;
// Return the active Ethernet network (or a default structure if inactive).
- virtual const EthernetNetwork& ethernet_network() const = 0;
+ virtual EthernetNetwork* ethernet_network() = 0;
virtual bool ethernet_connecting() const = 0;
virtual bool ethernet_connected() const = 0;
// Return the active Wifi network (or a default structure if none active).
- virtual const WifiNetwork& wifi_network() const = 0;
+ virtual WifiNetwork* wifi_network() = 0;
virtual bool wifi_connecting() const = 0;
virtual bool wifi_connected() const = 0;
// Return the active Cellular network (or a default structure if none active).
- virtual const CellularNetwork& cellular_network() const = 0;
+ virtual CellularNetwork* cellular_network() = 0;
virtual bool cellular_connecting() const = 0;
virtual bool cellular_connected() const = 0;
@@ -376,7 +383,7 @@
virtual bool Connecting() const = 0;
// Returns the current IP address if connected. If not, returns empty string.
- virtual const std::string& IPAddress() const = 0;
+ // virtual const std::string& IPAddress() const = 0;
// Returns the current list of wifi networks.
virtual const WifiNetworkVector& wifi_networks() const = 0;
@@ -387,16 +394,13 @@
// Returns the current list of cellular networks.
virtual const CellularNetworkVector& cellular_networks() const = 0;
- // Returns the list of remembered cellular networks.
- virtual const CellularNetworkVector& remembered_cellular_networks() const = 0;
-
// Search the current list of networks by path and if the network
// is available, copy the result and return true.
- virtual bool FindWifiNetworkByPath(const std::string& path,
- WifiNetwork* result) const = 0;
- virtual bool FindCellularNetworkByPath(const std::string& path,
- CellularNetwork* result) const = 0;
+ virtual WifiNetwork* FindWifiNetworkByPath(const std::string& path) = 0;
+ virtual CellularNetwork* FindCellularNetworkByPath(
+ const std::string& path) = 0;
+
// Request a scan for new wifi networks.
virtual void RequestWifiScan() = 0;
@@ -414,7 +418,7 @@
virtual void UpdateSystemInfo() = 0;
// Connect to the specified wireless network with password.
- virtual void ConnectToWifiNetwork(WifiNetwork network,
+ virtual void ConnectToWifiNetwork(const WifiNetwork* network,
const std::string& password,
const std::string& identity,
const std::string& certpath) = 0;
@@ -427,22 +431,22 @@
bool auto_connect) = 0;
// Connect to the specified cellular network.
- virtual void ConnectToCellularNetwork(CellularNetwork network) = 0;
+ virtual void ConnectToCellularNetwork(const CellularNetwork* network) = 0;
// Initiates cellular data plan refresh. Plan data will be passed through
// Network::Observer::CellularDataPlanChanged callback.
- virtual void RefreshCellularDataPlans(const CellularNetwork& network) = 0;
+ virtual void RefreshCellularDataPlans(const CellularNetwork* network) = 0;
// Disconnect from the specified wireless (either cellular or wifi) network.
virtual void DisconnectFromWirelessNetwork(
- const WirelessNetwork& network) = 0;
+ const WirelessNetwork* network) = 0;
// Save network information including passwords (wifi) and auto-connect.
- virtual void SaveCellularNetwork(const CellularNetwork& network) = 0;
- virtual void SaveWifiNetwork(const WifiNetwork& network) = 0;
+ virtual void SaveCellularNetwork(const CellularNetwork* network) = 0;
+ virtual void SaveWifiNetwork(const WifiNetwork* network) = 0;
- // Forget the passed in wireless (either cellular or wifi) network.
- virtual void ForgetWirelessNetwork(const std::string& service_path) = 0;
+ // Forget the wifi network corresponding to service_path.
+ virtual void ForgetWifiNetwork(const std::string& service_path) = 0;
virtual bool ethernet_available() const = 0;
virtual bool wifi_available() const = 0;
« no previous file with comments | « chrome/browser/chromeos/cros/mock_network_library.h ('k') | chrome/browser/chromeos/cros/network_library.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698