| Index: chrome/browser/chromeos/network_login_observer.cc
|
| diff --git a/chrome/browser/chromeos/network_login_observer.cc b/chrome/browser/chromeos/network_login_observer.cc
|
| index a82bd247aadba75ed8208bd51a16db57932d2229..b6a08f0792215aeb9506ea7fc36fa1e3c25492e3 100644
|
| --- a/chrome/browser/chromeos/network_login_observer.cc
|
| +++ b/chrome/browser/chromeos/network_login_observer.cc
|
| @@ -4,17 +4,35 @@
|
|
|
| #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/dbus/dbus_thread_manager.h"
|
| +#include "chromeos/dbus/shill_manager_client.h"
|
| #include "ui/views/widget/widget.h"
|
| #include "ui/views/widget/widget_delegate.h"
|
|
|
| namespace chromeos {
|
|
|
| +namespace {
|
| +
|
| +void ShillErrorCallback(const std::string& error_name,
|
| + const std::string& error_message) {
|
| + LOG(ERROR) << "Shill Error calling ConnectToBestServices: "
|
| + << error_name << " : " << error_message;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| NetworkLoginObserver::NetworkLoginObserver() {
|
| + if (CrosLibrary::Get()->GetCertLibrary()->CertificatesLoaded())
|
| + OnCertificatesLoaded(true);
|
| + else
|
| + CrosLibrary::Get()->GetCertLibrary()->AddObserver(this);
|
| }
|
|
|
| NetworkLoginObserver::~NetworkLoginObserver() {
|
| + CrosLibrary::Get()->GetCertLibrary()->RemoveObserver(this);
|
| }
|
|
|
| void NetworkLoginObserver::OnNetworkManagerChanged(NetworkLibrary* cros) {
|
| @@ -80,4 +98,11 @@ void NetworkLoginObserver::OnNetworkManagerChanged(NetworkLibrary* cros) {
|
| }
|
| }
|
|
|
| +void NetworkLoginObserver::OnCertificatesLoaded(bool initial_load) {
|
| + // Once certificates have loaded, signal Shill connect to the "best"
|
| + // available network.
|
| + DBusThreadManager::Get()->GetShillManagerClient()->ConnectToBestServices(
|
| + base::Bind(&base::DoNothing), base::Bind(&ShillErrorCallback));
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|