summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/cros/cert_library.cc62
-rw-r--r--chrome/browser/chromeos/network_login_observer.cc11
-rw-r--r--chrome/browser/chromeos/network_login_observer.h11
-rw-r--r--chromeos/dbus/mock_shill_manager_client.h3
-rw-r--r--chromeos/dbus/shill_manager_client.cc27
-rw-r--r--chromeos/dbus/shill_manager_client.h22
-rw-r--r--chromeos/dbus/shill_manager_client_stub.cc4
-rw-r--r--chromeos/dbus/shill_manager_client_stub.h20
-rw-r--r--chromeos/network/network_state_handler.cc54
-rw-r--r--chromeos/network/network_state_handler.h17
-rw-r--r--chromeos/network/shill_property_handler.cc24
-rw-r--r--chromeos/network/shill_property_handler.h9
12 files changed, 213 insertions, 51 deletions
diff --git a/chrome/browser/chromeos/cros/cert_library.cc b/chrome/browser/chromeos/cros/cert_library.cc
index 5c7adda..fa37bad 100644
--- a/chrome/browser/chromeos/cros/cert_library.cc
+++ b/chrome/browser/chromeos/cros/cert_library.cc
@@ -599,14 +599,74 @@ class CertLibraryImpl
//////////////////////////////////////////////////////////////////////////////
+class CertLibraryImplStub : public CertLibrary {
+ public:
+ CertLibraryImplStub()
+ : token_name_("StubToken"),
+ ALLOW_THIS_IN_INITIALIZER_LIST(cert_list_(this)) {
+ }
+ virtual ~CertLibraryImplStub() {}
+
+ virtual void AddObserver(Observer* observer) {}
+ virtual void RemoveObserver(Observer* observer) {}
+ virtual void LoadKeyStore() {}
+ virtual bool CertificatesLoading() const {
+ return false;
+ }
+ virtual bool CertificatesLoaded() const {
+ return true;
+ }
+ virtual bool IsHardwareBacked() const {
+ return false;
+ }
+ virtual const std::string& GetTpmTokenName() const {
+ return token_name_;
+ }
+ virtual const CertList& GetCertificates() const {
+ return cert_list_;
+ }
+ virtual const CertList& GetUserCertificates() const {
+ return cert_list_;
+ }
+ virtual const CertList& GetServerCertificates() const {
+ return cert_list_;
+ }
+ virtual const CertList& GetCACertificates() const {
+ return cert_list_;
+ }
+ virtual std::string EncryptWithSystemSalt(const std::string& token) {
+ return token;
+ }
+ virtual std::string DecryptWithSystemSalt(
+ const std::string& encrypted_token_hex) {
+ return encrypted_token_hex;
+ }
+ virtual std::string EncryptWithUserKey(const std::string& token) {
+ return token;
+ }
+ virtual std::string DecryptWithUserKey(
+ const std::string& encrypted_token_hex) {
+ return encrypted_token_hex;
+ }
+
+ private:
+ std::string token_name_;
+ CertList cert_list_;
+
+ DISALLOW_COPY_AND_ASSIGN(CertLibraryImplStub);
+};
+
+//////////////////////////////////////////////////////////////////////////////
+
CertLibrary::~CertLibrary() {
}
// static
CertLibrary* CertLibrary::GetImpl(bool stub) {
- // |stub| is ignored since we have no stub of CertLibrary.
// TODO(stevenjb): Disassociate CertLibrary from CrosLibrary entirely.
// crbug.com/133752
+ if (stub)
+ return new CertLibraryImplStub();
return new CertLibraryImpl();
}
diff --git a/chrome/browser/chromeos/network_login_observer.cc b/chrome/browser/chromeos/network_login_observer.cc
index a82bd24..3511865 100644
--- a/chrome/browser/chromeos/network_login_observer.cc
+++ b/chrome/browser/chromeos/network_login_observer.cc
@@ -4,17 +4,21 @@
#include "chrome/browser/chromeos/network_login_observer.h"
+#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/cros/network_library.h"
#include "chrome/browser/chromeos/options/network_config_view.h"
+#include "chromeos/network/network_state_handler.h"
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_delegate.h"
namespace chromeos {
NetworkLoginObserver::NetworkLoginObserver() {
+ CrosLibrary::Get()->GetCertLibrary()->AddObserver(this);
}
NetworkLoginObserver::~NetworkLoginObserver() {
+ CrosLibrary::Get()->GetCertLibrary()->RemoveObserver(this);
}
void NetworkLoginObserver::OnNetworkManagerChanged(NetworkLibrary* cros) {
@@ -80,4 +84,11 @@ void NetworkLoginObserver::OnNetworkManagerChanged(NetworkLibrary* cros) {
}
}
+void NetworkLoginObserver::OnCertificatesLoaded(bool initial_load) {
+ if (initial_load) {
+ // Once certificates have loaded, connect to the "best" available network.
+ NetworkStateHandler::Get()->ConnectToBestWifiNetwork();
+ }
+}
+
} // namespace chromeos
diff --git a/chrome/browser/chromeos/network_login_observer.h b/chrome/browser/chromeos/network_login_observer.h
index 1c681e9..c26716a 100644
--- a/chrome/browser/chromeos/network_login_observer.h
+++ b/chrome/browser/chromeos/network_login_observer.h
@@ -10,6 +10,7 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "chrome/browser/chromeos/cros/cert_library.h"
#include "chrome/browser/chromeos/cros/network_library.h"
namespace views {
@@ -19,8 +20,9 @@ class WidgetDelegate;
namespace chromeos {
// The network login observer reshows a login dialog if there was an error.
-
-class NetworkLoginObserver : public NetworkLibrary::NetworkManagerObserver {
+// It is also responsible for signaling Shill to when certificates are loaded.
+class NetworkLoginObserver : public NetworkLibrary::NetworkManagerObserver,
+ public CertLibrary::Observer {
public:
NetworkLoginObserver();
virtual ~NetworkLoginObserver();
@@ -29,9 +31,12 @@ class NetworkLoginObserver : public NetworkLibrary::NetworkManagerObserver {
private:
void CreateModalPopup(views::WidgetDelegate* view);
- // NetworkLibrary::NetworkManagerObserver implementation.
+ // NetworkLibrary::NetworkManagerObserver
virtual void OnNetworkManagerChanged(NetworkLibrary* obj) OVERRIDE;
+ // CertLibrary::Observer
+ virtual void OnCertificatesLoaded(bool initial_load) OVERRIDE;
+
DISALLOW_COPY_AND_ASSIGN(NetworkLoginObserver);
};
diff --git a/chromeos/dbus/mock_shill_manager_client.h b/chromeos/dbus/mock_shill_manager_client.h
index 6179168..57f2449 100644
--- a/chromeos/dbus/mock_shill_manager_client.h
+++ b/chromeos/dbus/mock_shill_manager_client.h
@@ -68,6 +68,9 @@ class MockShillManagerClient : public ShillManagerClient {
const std::string& data,
const StringCallback& callback,
const ErrorCallback& error_callback));
+ MOCK_METHOD2(ConnectToBestServices,
+ void(const base::Closure& callback,
+ const ErrorCallback& error_callback));
MOCK_METHOD0(GetTestInterface, TestInterface*());
};
diff --git a/chromeos/dbus/shill_manager_client.cc b/chromeos/dbus/shill_manager_client.cc
index 04d7bcf..e99a940 100644
--- a/chromeos/dbus/shill_manager_client.cc
+++ b/chromeos/dbus/shill_manager_client.cc
@@ -212,14 +212,15 @@ class ShillManagerClientImpl : public ShillManagerClient {
error_callback);
}
- virtual void VerifyAndEncryptData(const std::string& certificate,
- const std::string& public_key,
- const std::string& nonce,
- const std::string& signed_data,
- const std::string& device_serial,
- const std::string& data,
- const StringCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE {
+ virtual void VerifyAndEncryptData(
+ const std::string& certificate,
+ const std::string& public_key,
+ const std::string& nonce,
+ const std::string& signed_data,
+ const std::string& device_serial,
+ const std::string& data,
+ const StringCallback& callback,
+ const ErrorCallback& error_callback) OVERRIDE {
dbus::MethodCall method_call(flimflam::kFlimflamManagerInterface,
shill::kVerifyAndEncryptDataFunction);
dbus::MessageWriter writer(&method_call);
@@ -234,6 +235,16 @@ class ShillManagerClientImpl : public ShillManagerClient {
error_callback);
}
+ virtual void ConnectToBestServices(
+ const base::Closure& callback,
+ const ErrorCallback& error_callback) OVERRIDE {
+ dbus::MethodCall method_call(flimflam::kFlimflamManagerInterface,
+ shill::kConnectToBestServicesFunction);
+ helper_.CallVoidMethodWithErrorCallback(&method_call,
+ callback,
+ error_callback);
+ }
+
virtual TestInterface* GetTestInterface() OVERRIDE {
return NULL;
}
diff --git a/chromeos/dbus/shill_manager_client.h b/chromeos/dbus/shill_manager_client.h
index 352614b..bd05253 100644
--- a/chromeos/dbus/shill_manager_client.h
+++ b/chromeos/dbus/shill_manager_client.h
@@ -156,14 +156,20 @@ class CHROMEOS_EXPORT ShillManagerClient {
// Verify that the given data corresponds to a trusted device, and return the
// |data| encrypted using the |public_key| for the trusted device. If the
// device is not trusted, return the empty string.
- virtual void VerifyAndEncryptData(const std::string& certificate,
- const std::string& public_key,
- const std::string& nonce,
- const std::string& signed_data,
- const std::string& device_serial,
- const std::string& data,
- const StringCallback& callback,
- const ErrorCallback& error_callback) = 0;
+ virtual void VerifyAndEncryptData(
+ const std::string& certificate,
+ const std::string& public_key,
+ const std::string& nonce,
+ const std::string& signed_data,
+ const std::string& device_serial,
+ const std::string& data,
+ const StringCallback& callback,
+ const ErrorCallback& error_callback) = 0;
+
+ // For each technology present, connect to the "best" service available.
+ // Called once the user is logged in and certificates are loaded.
+ virtual void ConnectToBestServices(const base::Closure& callback,
+ const ErrorCallback& error_callback) = 0;
// Returns an interface for testing (stub only), or returns NULL.
virtual TestInterface* GetTestInterface() = 0;
diff --git a/chromeos/dbus/shill_manager_client_stub.cc b/chromeos/dbus/shill_manager_client_stub.cc
index 8681baf..468c727b 100644
--- a/chromeos/dbus/shill_manager_client_stub.cc
+++ b/chromeos/dbus/shill_manager_client_stub.cc
@@ -254,6 +254,10 @@ void ShillManagerClientStub::VerifyAndEncryptData(
FROM_HERE, base::Bind(callback, "encrypted_data"));
}
+void ShillManagerClientStub::ConnectToBestServices(
+ const base::Closure& callback,
+ const ErrorCallback& error_callback) {
+}
ShillManagerClient::TestInterface* ShillManagerClientStub::GetTestInterface() {
return this;
diff --git a/chromeos/dbus/shill_manager_client_stub.h b/chromeos/dbus/shill_manager_client_stub.h
index 44491be..1eb666d 100644
--- a/chromeos/dbus/shill_manager_client_stub.h
+++ b/chromeos/dbus/shill_manager_client_stub.h
@@ -70,14 +70,18 @@ class ShillManagerClientStub : public ShillManagerClient,
const std::string& service_path,
const StringCallback& callback,
const ErrorCallback& error_callback) OVERRIDE;
- virtual void VerifyAndEncryptData(const std::string& certificate,
- const std::string& public_key,
- const std::string& nonce,
- const std::string& signed_data,
- const std::string& device_serial,
- const std::string& data,
- const StringCallback& callback,
- const ErrorCallback& error_callback) OVERRIDE;
+ virtual void VerifyAndEncryptData(
+ const std::string& certificate,
+ const std::string& public_key,
+ const std::string& nonce,
+ const std::string& signed_data,
+ const std::string& device_serial,
+ const std::string& data,
+ const StringCallback& callback,
+ const ErrorCallback& error_callback) OVERRIDE;
+ virtual void ConnectToBestServices(
+ const base::Closure& callback,
+ const ErrorCallback& error_callback) OVERRIDE;
virtual ShillManagerClient::TestInterface* GetTestInterface() OVERRIDE;
// ShillManagerClient::TestInterface overrides.
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc
index cdcec42..be8696e 100644
--- a/chromeos/network/network_state_handler.cc
+++ b/chromeos/network/network_state_handler.cc
@@ -4,6 +4,7 @@
#include "chromeos/network/network_state_handler.h"
+#include "base/bind.h"
#include "base/format_macros.h"
#include "base/stl_util.h"
#include "base/string_util.h"
@@ -297,9 +298,24 @@ void NetworkStateHandler::GetNetworkList(NetworkStateList* list) const {
}
void NetworkStateHandler::RequestScan() const {
+ network_event_log::AddEntry(kLogModule, "RequestScan", "");
shill_property_handler_->RequestScan();
}
+void NetworkStateHandler::WaitForScan(const std::string& type,
+ const base::Closure& callback) {
+ scan_complete_callbacks_[type].push_back(callback);
+ if (!GetScanningByType(type))
+ RequestScan();
+}
+
+void NetworkStateHandler::ConnectToBestWifiNetwork() {
+ network_event_log::AddEntry(kLogModule, "ConnectToBestWifiNetwork", "");
+ WaitForScan(flimflam::kTypeWifi,
+ base::Bind(&internal::ShillPropertyHandler::ConnectToBestServices,
+ shill_property_handler_->AsWeakPtr()));
+}
+
void NetworkStateHandler::SetConnectingNetwork(
const std::string& service_path) {
connecting_network_ = service_path;
@@ -386,6 +402,9 @@ void NetworkStateHandler::UpdateManagedStateProperties(
managed->PropertyChanged(iter.key(), iter.value());
}
}
+ network_event_log::AddEntry(
+ kLogModule, "PropertiesReceived",
+ base::StringPrintf("%s (%s)", path.c_str(), managed->name().c_str()));
// Notify observers.
if (network_property_updated) {
NetworkState* network = managed->AsNetworkState();
@@ -395,9 +414,6 @@ void NetworkStateHandler::UpdateManagedStateProperties(
OnNetworkConnectionStateChanged(network);
NetworkPropertiesUpdated(network);
}
- network_event_log::AddEntry(
- kLogModule, "PropertiesReceived",
- base::StringPrintf("%s (%s)", path.c_str(), managed->name().c_str()));
}
void NetworkStateHandler::UpdateNetworkServiceProperty(
@@ -410,16 +426,16 @@ void NetworkStateHandler::UpdateNetworkServiceProperty(
std::string prev_connection_state = network->connection_state();
if (!network->PropertyChanged(key, value))
return;
- if (network->connection_state() != prev_connection_state)
- OnNetworkConnectionStateChanged(network);
-
- NetworkPropertiesUpdated(network);
std::string detail = network->name() + "." + key;
std::string vstr = ValueAsString(value);
if (!vstr.empty())
detail += " = " + vstr;
network_event_log::AddEntry(kLogModule, "NetworkPropertyUpdated", detail);
+
+ if (network->connection_state() != prev_connection_state)
+ OnNetworkConnectionStateChanged(network);
+ NetworkPropertiesUpdated(network);
}
void NetworkStateHandler::UpdateNetworkServiceIPAddress(
@@ -443,14 +459,17 @@ void NetworkStateHandler::UpdateDeviceProperty(const std::string& device_path,
if (!device->PropertyChanged(key, value))
return;
- FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
- DeviceListChanged());
-
std::string detail = device->name() + "." + key;
std::string vstr = ValueAsString(value);
if (!vstr.empty())
detail += " = " + vstr;
network_event_log::AddEntry(kLogModule, "DevicePropertyUpdated", detail);
+
+ FOR_EACH_OBSERVER(NetworkStateHandlerObserver, observers_,
+ DeviceListChanged());
+
+ if (key == flimflam::kScanningProperty && device->scanning() == false)
+ ScanCompleted(device->type());
}
void NetworkStateHandler::ManagerPropertyChanged() {
@@ -575,4 +594,19 @@ void NetworkStateHandler::NetworkPropertiesUpdated(
}
}
+void NetworkStateHandler::ScanCompleted(const std::string& type) {
+ size_t num_callbacks = scan_complete_callbacks_.count(type);
+ network_event_log::AddEntry(
+ kLogModule, "ScanCompleted",
+ base::StringPrintf("%s: %"PRIuS, type.c_str(), num_callbacks));
+ if (num_callbacks == 0)
+ return;
+ ScanCallbackList& callback_list = scan_complete_callbacks_[type];
+ for (ScanCallbackList::iterator iter = callback_list.begin();
+ iter != callback_list.end(); ++iter) {
+ (*iter).Run();
+ }
+ scan_complete_callbacks_.erase(type);
+}
+
} // namespace chromeos
diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h
index 31d1de6..ce65e0d 100644
--- a/chromeos/network/network_state_handler.h
+++ b/chromeos/network/network_state_handler.h
@@ -10,6 +10,7 @@
#include <string>
#include <vector>
+#include "base/callback_forward.h"
#include "base/gtest_prod_util.h"
#include "base/memory/scoped_ptr.h"
#include "base/observer_list.h"
@@ -139,6 +140,14 @@ class CHROMEOS_EXPORT NetworkStateHandler
// list, which will trigger the appropriate observer calls.
void RequestScan() const;
+ // Request a scan if not scanning and run |callback| when the Scanning state
+ // for any Device matching |type| completes.
+ void WaitForScan(const std::string& type, const base::Closure& callback);
+
+ // Request a network scan then signal Shill to connect to the best available
+ // networks when completed.
+ void ConnectToBestWifiNetwork();
+
// Set the user initiated connecting network.
void SetConnectingNetwork(const std::string& service_path);
@@ -203,6 +212,8 @@ class CHROMEOS_EXPORT NetworkStateHandler
void InitShillPropertyHandler();
private:
+ typedef std::list<base::Closure> ScanCallbackList;
+ typedef std::map<std::string, ScanCallbackList> ScanCompleteCallbackMap;
friend class NetworkStateHandlerTest;
FRIEND_TEST_ALL_PREFIXES(NetworkStateHandlerTest, NetworkStateHandlerStub);
@@ -231,6 +242,9 @@ class CHROMEOS_EXPORT NetworkStateHandler
// Notifies observers and updates connecting_network_.
void NetworkPropertiesUpdated(const NetworkState* network);
+ // Called whenever Device.Scanning state transitions to false.
+ void ScanCompleted(const std::string& type);
+
// Shill property handler instance, owned by this class.
scoped_ptr<internal::ShillPropertyHandler> shill_property_handler_;
@@ -250,6 +264,9 @@ class CHROMEOS_EXPORT NetworkStateHandler
// TODO(stevenjb): Move this to NetworkConfigurationHandler.
std::string connecting_network_;
+ // Callbacks to run when a scan for the technology type completes.
+ ScanCompleteCallbackMap scan_complete_callbacks_;
+
DISALLOW_COPY_AND_ASSIGN(NetworkStateHandler);
};
diff --git a/chromeos/network/shill_property_handler.cc b/chromeos/network/shill_property_handler.cc
index e3083cd..2041139 100644
--- a/chromeos/network/shill_property_handler.cc
+++ b/chromeos/network/shill_property_handler.cc
@@ -100,8 +100,7 @@ class ShillPropertyObserver : public ShillPropertyChangedObserver {
ShillPropertyHandler::ShillPropertyHandler(Listener* listener)
: listener_(listener),
- shill_manager_(DBusThreadManager::Get()->GetShillManagerClient()),
- weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
+ shill_manager_(DBusThreadManager::Get()->GetShillManagerClient()) {
}
ShillPropertyHandler::~ShillPropertyHandler() {
@@ -117,7 +116,7 @@ ShillPropertyHandler::~ShillPropertyHandler() {
void ShillPropertyHandler::Init() {
shill_manager_->GetProperties(
base::Bind(&ShillPropertyHandler::ManagerPropertiesCallback,
- weak_ptr_factory_.GetWeakPtr()));
+ AsWeakPtr()));
shill_manager_->AddPropertyChangedObserver(this);
}
@@ -163,6 +162,14 @@ void ShillPropertyHandler::RequestScan() const {
kLogModule, "", network_handler::ErrorCallback()));
}
+void ShillPropertyHandler::ConnectToBestServices() const {
+ network_event_log::AddEntry(kLogModule, "ConnectToBestServices", "");
+ shill_manager_->ConnectToBestServices(
+ base::Bind(&base::DoNothing),
+ base::Bind(&network_handler::ShillErrorCallbackFunction,
+ kLogModule, "", network_handler::ErrorCallback()));
+}
+
void ShillPropertyHandler::RequestProperties(ManagedState::ManagedType type,
const std::string& path) {
if (pending_updates_[type].find(path) != pending_updates_[type].end())
@@ -173,12 +180,12 @@ void ShillPropertyHandler::RequestProperties(ManagedState::ManagedType type,
DBusThreadManager::Get()->GetShillServiceClient()->GetProperties(
dbus::ObjectPath(path),
base::Bind(&ShillPropertyHandler::GetPropertiesCallback,
- weak_ptr_factory_.GetWeakPtr(), type, path));
+ AsWeakPtr(), type, path));
} else if (type == ManagedState::MANAGED_TYPE_DEVICE) {
DBusThreadManager::Get()->GetShillDeviceClient()->GetProperties(
dbus::ObjectPath(path),
base::Bind(&ShillPropertyHandler::GetPropertiesCallback,
- weak_ptr_factory_.GetWeakPtr(), type, path));
+ AsWeakPtr(), type, path));
} else {
NOTREACHED();
}
@@ -297,8 +304,7 @@ void ShillPropertyHandler::UpdateObserved(ManagedState::ManagedType type,
// Create an observer for future updates.
new_observed[path] = new ShillPropertyObserver(
type, path, base::Bind(
- &ShillPropertyHandler::PropertyChangedCallback,
- weak_ptr_factory_.GetWeakPtr()));
+ &ShillPropertyHandler::PropertyChangedCallback, AsWeakPtr()));
network_event_log::AddEntry(kLogModule, "StartObserving", path);
}
observer_map.erase(path);
@@ -382,7 +388,7 @@ void ShillPropertyHandler::GetPropertiesCallback(
DBusThreadManager::Get()->GetShillIPConfigClient()->GetProperties(
dbus::ObjectPath(ip_config_path),
base::Bind(&ShillPropertyHandler::GetIPConfigCallback,
- weak_ptr_factory_.GetWeakPtr(), path));
+ AsWeakPtr(), path));
}
}
@@ -417,7 +423,7 @@ void ShillPropertyHandler::NetworkServicePropertyChangedCallback(
DBusThreadManager::Get()->GetShillIPConfigClient()->GetProperties(
dbus::ObjectPath(ip_config_path),
base::Bind(&ShillPropertyHandler::GetIPConfigCallback,
- weak_ptr_factory_.GetWeakPtr(), path));
+ AsWeakPtr(), path));
} else {
listener_->UpdateNetworkServiceProperty(path, key, value);
}
diff --git a/chromeos/network/shill_property_handler.h b/chromeos/network/shill_property_handler.h
index 66678ac..154a656 100644
--- a/chromeos/network/shill_property_handler.h
+++ b/chromeos/network/shill_property_handler.h
@@ -38,7 +38,8 @@ class ShillPropertyObserver;
// It also observes Shill.Service for all services in Manager.ServiceWatchList.
// This class must not outlive the ShillManagerClient instance.
class CHROMEOS_EXPORT ShillPropertyHandler
- : public ShillPropertyChangedObserver {
+ : public ShillPropertyChangedObserver,
+ public base::SupportsWeakPtr<ShillPropertyHandler> {
public:
typedef std::map<std::string, ShillPropertyObserver*>
ShillPropertyObserverMap;
@@ -107,6 +108,9 @@ class CHROMEOS_EXPORT ShillPropertyHandler
// Requests an immediate network scan.
void RequestScan() const;
+ // Calls Manager.ConnectToBestServices().
+ void ConnectToBestServices() const;
+
// Requests all properties for the service or device (called for new items).
void RequestProperties(ManagedState::ManagedType type,
const std::string& path);
@@ -184,9 +188,6 @@ class CHROMEOS_EXPORT ShillPropertyHandler
std::set<std::string> enabled_technologies_;
std::set<std::string> uninitialized_technologies_;
- // For Shill client callbacks
- base::WeakPtrFactory<ShillPropertyHandler> weak_ptr_factory_;
-
DISALLOW_COPY_AND_ASSIGN(ShillPropertyHandler);
};