summaryrefslogtreecommitdiffstats
path: root/chromeos/dbus/fake_session_manager_client.h
diff options
context:
space:
mode:
authordconnelly@chromium.org <dconnelly@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-15 10:56:47 +0000
committerdconnelly@chromium.org <dconnelly@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-15 10:56:47 +0000
commit60697c653098ef3d4d59fd2e78af154ff3ffef10 (patch)
tree0d7baa3b7040dc5ee634b9115654589ac1c343df /chromeos/dbus/fake_session_manager_client.h
parent55025309681ed6745373252ba9945cc4b923dff0 (diff)
downloadchromium_src-60697c653098ef3d4d59fd2e78af154ff3ffef10.zip
chromium_src-60697c653098ef3d4d59fd2e78af154ff3ffef10.tar.gz
chromium_src-60697c653098ef3d4d59fd2e78af154ff3ffef10.tar.bz2
Implement a policy to autologin a public account.
This introduces a policy to automatically login a public account on Chrome OS after a specified period of time has elapsed at the login screen. There are two new policy settings: "DeviceLocalAccountAutoLoginUsername", which determines which public account will be logged in, and "DeviceLocalAccountAutoLoginTimerMillis", which specifies the amount of time that should elapse before autologin takes place. The autologin timer is started in ExistingUserController when either the sign-in screen UI is finished loading or the aforementioned policy settings are changed. BUG=152933 Review URL: https://chromiumcodereview.appspot.com/12218078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188331 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/dbus/fake_session_manager_client.h')
-rw-r--r--chromeos/dbus/fake_session_manager_client.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/chromeos/dbus/fake_session_manager_client.h b/chromeos/dbus/fake_session_manager_client.h
new file mode 100644
index 0000000..3528c87
--- /dev/null
+++ b/chromeos/dbus/fake_session_manager_client.h
@@ -0,0 +1,81 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_
+#define CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_
+
+#include <map>
+#include <string>
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "base/observer_list.h"
+#include "chromeos/dbus/session_manager_client.h"
+
+namespace chromeos {
+
+// A fake implementation of session_manager. Accepts policy blobs to be set and
+// returns them unmodified.
+class FakeSessionManagerClient : public chromeos::SessionManagerClient {
+ public:
+ FakeSessionManagerClient();
+ virtual ~FakeSessionManagerClient();
+
+ // SessionManagerClient:
+ virtual void AddObserver(Observer* observer) OVERRIDE;
+ virtual void RemoveObserver(Observer* observer) OVERRIDE;
+ virtual bool HasObserver(Observer* observer) OVERRIDE;
+ virtual void EmitLoginPromptReady() OVERRIDE;
+ virtual void EmitLoginPromptVisible() OVERRIDE;
+ virtual void RestartJob(int pid, const std::string& command_line) OVERRIDE;
+ virtual void RestartEntd() OVERRIDE;
+ virtual void StartSession(const std::string& user_email) OVERRIDE;
+ virtual void StopSession() OVERRIDE;
+ virtual void StartDeviceWipe() OVERRIDE;
+ virtual void RequestLockScreen() OVERRIDE;
+ virtual void NotifyLockScreenShown() OVERRIDE;
+ virtual void RequestUnlockScreen() OVERRIDE;
+ virtual void NotifyLockScreenDismissed() OVERRIDE;
+ virtual void RetrieveDevicePolicy(
+ const RetrievePolicyCallback& callback) OVERRIDE;
+ virtual void RetrieveUserPolicy(
+ const RetrievePolicyCallback& callback) OVERRIDE;
+ virtual void RetrieveDeviceLocalAccountPolicy(
+ const std::string& account_id,
+ const RetrievePolicyCallback& callback) OVERRIDE;
+ virtual void StoreDevicePolicy(const std::string& policy_blob,
+ const StorePolicyCallback& callback) OVERRIDE;
+ virtual void StoreUserPolicy(const std::string& policy_blob,
+ const StorePolicyCallback& callback) OVERRIDE;
+ virtual void StoreDeviceLocalAccountPolicy(
+ const std::string& account_id,
+ const std::string& policy_blob,
+ const StorePolicyCallback& callback) OVERRIDE;
+
+ const std::string& device_policy() const;
+ void set_device_policy(const std::string& policy_blob);
+
+ const std::string& user_policy() const;
+ void set_user_policy(const std::string& policy_blob);
+
+ const std::string& device_local_account_policy(
+ const std::string& account_id) const;
+ void set_device_local_account_policy(const std::string& account_id,
+ const std::string& policy_blob);
+
+ // Notify observers about a property change completion.
+ void OnPropertyChangeComplete(bool success);
+
+ private:
+ std::string device_policy_;
+ std::string user_policy_;
+ std::map<std::string, std::string> device_local_account_policy_;
+ ObserverList<Observer> observers_;
+
+ DISALLOW_COPY_AND_ASSIGN(FakeSessionManagerClient);
+};
+
+} // namespace chromeos
+
+#endif // CHROMEOS_DBUS_FAKE_SESSION_MANAGER_CLIENT_H_