Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: chrome/browser/chromeos/kiosk_mode/kiosk_mode_settings.h

Issue 608283003: Remove retail mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_CHROMEOS_KIOSK_MODE_KIOSK_MODE_SETTINGS_H_
6 #define CHROME_BROWSER_CHROMEOS_KIOSK_MODE_KIOSK_MODE_SETTINGS_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/callback_forward.h"
12 #include "base/time/time.h"
13 #include "chrome/browser/chromeos/policy/app_pack_updater.h"
14 #include "chrome/browser/chromeos/settings/device_settings_service.h"
15
16 namespace base {
17 template <typename T> struct DefaultLazyInstanceTraits;
18 }
19
20 namespace chromeos {
21
22 // This class centralizes all our code to get KioskMode settings; since
23 // KioskMode interferes with normal operations all over Chrome, having all
24 // data about it pulled from a central location would make future
25 // refactorings easier. This class also handles getting trust for the policies
26 // via its init method.
27 //
28 // Note: If Initialize is not called before the various Getters, we'll return
29 // invalid values.
30 class KioskModeSettings {
31 public:
32 static KioskModeSettings* Get();
33
34 // This method checks if Kiosk Mode is enabled or not.
35 virtual bool IsKioskModeEnabled();
36
37 // Initialize the settings; this will call the callback once trust is
38 // established with the policy settings provider.
39 virtual void Initialize(const base::Closure& notify_initialized);
40 virtual bool is_initialized() const;
41
42 // The path to the screensaver extension. This callback may get called
43 // very late, or even never (depending on the state of the app pack).
44 virtual void GetScreensaverPath(
45 policy::AppPackUpdater::ScreenSaverUpdateCallback callback) const;
46
47 // The timeout before which we'll start showing the screensaver.
48 virtual base::TimeDelta GetScreensaverTimeout() const;
49
50 // NOTE: The idle logout timeout is the time 'till' we show the idle dialog
51 // box. After we show the dialog box, it remains up for an 'additional'
52 // IdleLogoutWarningTimeout seconds, which adds to the total time before the
53 // user is logged out.
54 // The time to logout the user in on idle.
55 virtual base::TimeDelta GetIdleLogoutTimeout() const;
56
57 // The time to show the countdown timer for.
58 virtual base::TimeDelta GetIdleLogoutWarningDuration() const;
59
60 static const int kMaxIdleLogoutTimeout;
61 static const int kMinIdleLogoutTimeout;
62
63 static const int kMaxIdleLogoutWarningDuration;
64 static const int kMinIdleLogoutWarningDuration;
65
66 protected:
67 // Needed here so MockKioskModeSettings can inherit from us.
68 KioskModeSettings();
69 virtual ~KioskModeSettings();
70
71 private:
72 friend struct base::DefaultLazyInstanceTraits<KioskModeSettings>;
73 friend class KioskModeSettingsTest;
74
75 // Makes sure the browser will switch to kiosk mode if cryptohome was not
76 // ready when the browser was starting after a machine reboot.
77 void VerifyModeIsKnown(DeviceSettingsService::OwnershipStatus status);
78
79 bool is_initialized_;
80 bool is_kiosk_mode_;
81
82 // Used for testing.
83 void set_initialized(bool value) { is_initialized_ = value; }
84
85 std::string screensaver_id_;
86 std::string screensaver_path_;
87 base::TimeDelta screensaver_timeout_;
88 base::TimeDelta idle_logout_timeout_;
89 base::TimeDelta idle_logout_warning_duration_;
90
91 DISALLOW_COPY_AND_ASSIGN(KioskModeSettings);
92 };
93
94 } // namespace chromeos
95
96 #endif // CHROME_BROWSER_CHROMEOS_KIOSK_MODE_KIOSK_MODE_SETTINGS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698