diff options
8 files changed, 45 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc b/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc index 514f2f2..40fa984 100644 --- a/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc +++ b/chrome/browser/chromeos/login/supervised/supervised_user_creation_screen.cc @@ -27,6 +27,8 @@ #include "chrome/browser/supervised_user/supervised_user_sync_service.h" #include "chrome/browser/supervised_user/supervised_user_sync_service_factory.h" #include "chrome/grit/generated_resources.h" +#include "chromeos/dbus/dbus_thread_manager.h" +#include "chromeos/dbus/session_manager_client.h" #include "chromeos/login/auth/key.h" #include "chromeos/login/auth/user_context.h" #include "chromeos/network/network_state.h" @@ -202,10 +204,16 @@ std::string SupervisedUserCreationScreen::GetName() const { } void SupervisedUserCreationScreen::AbortFlow() { + DBusThreadManager::Get() + ->GetSessionManagerClient() + ->NotifySupervisedUserCreationFinished(); controller_->CancelCreation(); } void SupervisedUserCreationScreen::FinishFlow() { + DBusThreadManager::Get() + ->GetSessionManagerClient() + ->NotifySupervisedUserCreationFinished(); controller_->FinishCreation(); } @@ -358,6 +366,9 @@ void SupervisedUserCreationScreen::OnManagerLoginFailure() { void SupervisedUserCreationScreen::OnManagerFullyAuthenticated( Profile* manager_profile) { + DBusThreadManager::Get() + ->GetSessionManagerClient() + ->NotifySupervisedUserCreationStarted(); manager_signin_in_progress_ = false; DCHECK(controller_.get()); // For manager user, move desktop to locked container so that windows created diff --git a/chrome/browser/chromeos/settings/device_settings_test_helper.cc b/chrome/browser/chromeos/settings/device_settings_test_helper.cc index fa16d49..82943b4 100644 --- a/chrome/browser/chromeos/settings/device_settings_test_helper.cc +++ b/chrome/browser/chromeos/settings/device_settings_test_helper.cc @@ -113,6 +113,10 @@ void DeviceSettingsTestHelper::StartSession(const std::string& user_email) {} void DeviceSettingsTestHelper::StopSession() {} +void DeviceSettingsTestHelper::NotifySupervisedUserCreationStarted() {} + +void DeviceSettingsTestHelper::NotifySupervisedUserCreationFinished() {} + void DeviceSettingsTestHelper::StartDeviceWipe() {} void DeviceSettingsTestHelper::RequestLockScreen() {} diff --git a/chrome/browser/chromeos/settings/device_settings_test_helper.h b/chrome/browser/chromeos/settings/device_settings_test_helper.h index 54dcf9b..14147a1 100644 --- a/chrome/browser/chromeos/settings/device_settings_test_helper.h +++ b/chrome/browser/chromeos/settings/device_settings_test_helper.h @@ -92,6 +92,8 @@ class DeviceSettingsTestHelper : public SessionManagerClient { virtual void RestartJob(int pid, const std::string& command_line) override; virtual void StartSession(const std::string& user_email) override; virtual void StopSession() override; + virtual void NotifySupervisedUserCreationStarted() override; + virtual void NotifySupervisedUserCreationFinished() override; virtual void StartDeviceWipe() override; virtual void RequestLockScreen() override; virtual void NotifyLockScreenShown() override; diff --git a/chromeos/dbus/fake_session_manager_client.cc b/chromeos/dbus/fake_session_manager_client.cc index fab7c3c..f16e9c6 100644 --- a/chromeos/dbus/fake_session_manager_client.cc +++ b/chromeos/dbus/fake_session_manager_client.cc @@ -56,6 +56,12 @@ void FakeSessionManagerClient::StartSession(const std::string& user_email) { void FakeSessionManagerClient::StopSession() { } +void FakeSessionManagerClient::NotifySupervisedUserCreationStarted() { +} + +void FakeSessionManagerClient::NotifySupervisedUserCreationFinished() { +} + void FakeSessionManagerClient::StartDeviceWipe() { start_device_wipe_call_count_++; } diff --git a/chromeos/dbus/fake_session_manager_client.h b/chromeos/dbus/fake_session_manager_client.h index 8630e86..c0e53aa 100644 --- a/chromeos/dbus/fake_session_manager_client.h +++ b/chromeos/dbus/fake_session_manager_client.h @@ -33,6 +33,8 @@ class FakeSessionManagerClient : public SessionManagerClient { virtual void RestartJob(int pid, const std::string& command_line) override; virtual void StartSession(const std::string& user_email) override; virtual void StopSession() override; + virtual void NotifySupervisedUserCreationStarted() override; + virtual void NotifySupervisedUserCreationFinished() override; virtual void StartDeviceWipe() override; virtual void RequestLockScreen() override; virtual void NotifyLockScreenShown() override; diff --git a/chromeos/dbus/mock_session_manager_client.h b/chromeos/dbus/mock_session_manager_client.h index 78972ce7..cdc5d6d 100644 --- a/chromeos/dbus/mock_session_manager_client.h +++ b/chromeos/dbus/mock_session_manager_client.h @@ -26,6 +26,8 @@ class MockSessionManagerClient : public SessionManagerClient { MOCK_METHOD2(RestartJob, void(int, const std::string&)); MOCK_METHOD1(StartSession, void(const std::string&)); MOCK_METHOD0(StopSession, void(void)); + MOCK_METHOD0(NotifySupervisedUserCreationStarted, void(void)); + MOCK_METHOD0(NotifySupervisedUserCreationFinished, void(void)); MOCK_METHOD0(StartDeviceWipe, void(void)); MOCK_METHOD0(RequestLockScreen, void(void)); MOCK_METHOD0(NotifyLockScreenShown, void(void)); diff --git a/chromeos/dbus/session_manager_client.cc b/chromeos/dbus/session_manager_client.cc index a3e0ced..6dc2dce 100644 --- a/chromeos/dbus/session_manager_client.cc +++ b/chromeos/dbus/session_manager_client.cc @@ -156,6 +156,16 @@ class SessionManagerClientImpl : public SessionManagerClient { login_manager::kSessionManagerHandleLockScreenDismissed); } + virtual void NotifySupervisedUserCreationStarted() override { + SimpleMethodCallToSessionManager( + login_manager::kSessionManagerHandleSupervisedUserCreationStarting); + } + + virtual void NotifySupervisedUserCreationFinished() override { + SimpleMethodCallToSessionManager( + login_manager::kSessionManagerHandleSupervisedUserCreationFinished); + } + virtual void RetrieveActiveSessions( const ActiveSessionsCallback& callback) override { dbus::MethodCall method_call( @@ -590,6 +600,8 @@ class SessionManagerClientStubImpl : public SessionManagerClient { virtual void RestartJob(int pid, const std::string& command_line) override {} virtual void StartSession(const std::string& user_email) override {} virtual void StopSession() override {} + virtual void NotifySupervisedUserCreationStarted() override {} + virtual void NotifySupervisedUserCreationFinished() override {} virtual void StartDeviceWipe() override {} virtual void RequestLockScreen() override { if (delegate_) diff --git a/chromeos/dbus/session_manager_client.h b/chromeos/dbus/session_manager_client.h index 346b131..758f26e 100644 --- a/chromeos/dbus/session_manager_client.h +++ b/chromeos/dbus/session_manager_client.h @@ -89,6 +89,12 @@ class CHROMEOS_EXPORT SessionManagerClient : public DBusClient { // Notifies that the lock screen is dismissed. virtual void NotifyLockScreenDismissed() = 0; + // Notifies that supervised user creation have started. + virtual void NotifySupervisedUserCreationStarted() = 0; + + // Notifies that supervised user creation have finished. + virtual void NotifySupervisedUserCreationFinished() = 0; + // Map that is used to describe the set of active user sessions where |key| // is user_id and |value| is user_id_hash. typedef std::map<std::string, std::string> ActiveSessionsMap; |