Index: chrome/browser/ui/ash/session_controller_client.cc |
diff --git a/chrome/browser/ui/ash/session_controller_client.cc b/chrome/browser/ui/ash/session_controller_client.cc |
index 6d15a762aa9f7a48b0bfe57ccdcb3f0207930ba6..96b2ab5ed037968162f884f0c96ee81aa8912970 100644 |
--- a/chrome/browser/ui/ash/session_controller_client.cc |
+++ b/chrome/browser/ui/ash/session_controller_client.cc |
@@ -26,6 +26,7 @@ |
#include "chrome/grit/theme_resources.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/session_manager_client.h" |
+#include "components/prefs/pref_change_registrar.h" |
#include "components/prefs/pref_service.h" |
#include "components/session_manager/core/session_manager.h" |
#include "content/public/browser/notification_service.h" |
@@ -377,6 +378,18 @@ void SessionControllerClient::OnLoginUserProfilePrepared(Profile* profile) { |
->AddObserver(this); |
} |
+ base::Closure session_info_changed_closure = |
+ base::Bind(&SessionControllerClient::SendSessionInfoIfChanged, |
+ weak_ptr_factory_.GetWeakPtr()); |
+ std::unique_ptr<PrefChangeRegistrar> pref_change_registrar = |
+ base::MakeUnique<PrefChangeRegistrar>(); |
+ pref_change_registrar->Init(profile->GetPrefs()); |
+ pref_change_registrar->Add(prefs::kAllowScreenLock, |
+ session_info_changed_closure); |
+ pref_change_registrar->Add(prefs::kEnableAutoScreenLock, |
+ session_info_changed_closure); |
+ pref_change_registrars_.push_back(std::move(pref_change_registrar)); |
+ |
// Needed because the user-to-profile mapping isn't available until later, |
// which is needed in UserToUserSession(). |
base::ThreadTaskRunnerHandle::Get()->PostTask( |