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

Unified Diff: chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.cc

Issue 9701084: Integrate Kiosk Mode with enterprise policies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.cc
diff --git a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.cc b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.cc
index 1ae86619d9270dcea434ed1fc455c4fb5b63c18e..039e5a8d95be3a47cc6e4d4dff7419857e964bde 100644
--- a/chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.cc
+++ b/chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.cc
@@ -4,10 +4,14 @@
#include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_helper.h"
+#include <algorithm>
+
#include "base/bind.h"
#include "base/command_line.h"
#include "base/lazy_instance.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/cros_settings.h"
+#include "chrome/browser/chromeos/cros_settings_names.h"
#include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h"
#include "chrome/browser/policy/cloud_policy_constants.h"
#include "chrome/browser/policy/browser_policy_connector.h"
@@ -15,9 +19,11 @@
namespace {
-const int64 kScreensaverIdleTimeout = 60;
-const int64 kLoginIdleTimeout = 100;
-const int64 kLoginIdleCountdownTimeout = 20;
+const int kMaxIdleLogoutTimeout = 100000; // ms = 100s.
+const int kMinIdleLogoutTimeout = 25000; // ms = 25s.
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 Where do this values come from? They seem overly r
rkc 2012/03/19 23:59:48 Done.
+
+const int kMaxIdleLogoutWarningTimeout = 20000; // ms = 20s.
+const int kMinIdleLogoutWarningTimeout = 5000; // ms = 5s.
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 same here
rkc 2012/03/19 23:59:48 Done.
} // namespace
@@ -47,6 +53,41 @@ KioskModeHelper* KioskModeHelper::Get() {
}
void KioskModeHelper::Initialize(const base::Closure& notify_initialized) {
+ chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
+ if (!cros_settings->GetTrusted(
+ kIdleLogoutTimeout,
+ base::Bind(&KioskModeHelper::Initialize,
+ base::Unretained(this),
+ notify_initialized))) {
+ return;
+ }
+
+ // Ignored till we land the code to pull the screensaver path from the app
+ // packs with the screensaver id.
+ cros_settings->GetString(kScreenSaverExtensionId, &screensaver_id_);
+
+ int screensaver_timeout = 0;
+ int idle_logout_timeout = 0, idle_logout_warning_timeout = 0;
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 nit: It's relatively uncommon to have declarations
rkc 2012/03/19 23:59:48 Done.
+ cros_settings->GetInteger(kScreenSaverTimeout, &screensaver_timeout);
+ cros_settings->GetInteger(kIdleLogoutTimeout, &idle_logout_timeout);
+ cros_settings->GetInteger(kIdleLogoutWarningDuration,
+ &idle_logout_warning_timeout);
+
+ screensaver_timeout_ = base::TimeDelta::FromMilliseconds(
+ screensaver_timeout);
+
+ // Restrict idle timeouts to safe values to prevent them from being turned off
+ // or otherwise misused.
+ idle_logout_timeout_ = base::TimeDelta::FromMilliseconds(
+ std::min(idle_logout_timeout, kMaxIdleLogoutTimeout));
+ idle_logout_timeout_ = base::TimeDelta::FromMilliseconds(
+ std::max(idle_logout_timeout, kMinIdleLogoutTimeout));
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 There's a bug here, as you clobber the value assig
rkc 2012/03/19 23:59:48 Done and added unit tests to test this and other s
+
+ idle_logout_warning_timeout_ = base::TimeDelta::FromMilliseconds(
+ std::min(idle_logout_warning_timeout, kMaxIdleLogoutWarningTimeout));
+ idle_logout_warning_timeout_ = base::TimeDelta::FromMilliseconds(
+ std::max(idle_logout_warning_timeout, kMinIdleLogoutWarningTimeout));
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 ditto.
rkc 2012/03/19 23:59:48 Done.
+
is_initialized_ = true;
notify_initialized.Run();
}
@@ -59,24 +100,24 @@ std::string KioskModeHelper::GetScreensaverPath() const {
GetSwitchValueASCII(switches::kKioskModeScreensaverPath);
}
-int64 KioskModeHelper::GetScreensaverTimeout() const {
+base::TimeDelta KioskModeHelper::GetScreensaverTimeout() const {
if (!is_initialized_)
- return -1;
+ return base::TimeDelta::FromSeconds(-1);
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 This seems like a pretty arbitrary value, since it
rkc 2012/03/19 23:59:48 I specifically wanted a negative value so 0 could
- return kScreensaverIdleTimeout;
+ return screensaver_timeout_;
}
-int64 KioskModeHelper::GetIdleLogoutTimeout() const {
+base::TimeDelta KioskModeHelper::GetIdleLogoutTimeout() const {
if (!is_initialized_)
- return -1;
+ return base::TimeDelta::FromSeconds(-1);
- return kLoginIdleTimeout;
+ return idle_logout_timeout_;
}
Mattias Nissler (ping if slow) 2012/03/16 09:56:46 insert blank line.
rkc 2012/03/19 23:59:48 Done.
-int64 KioskModeHelper::GetIdleLogoutWarningTimeout() const {
+base::TimeDelta KioskModeHelper::GetIdleLogoutWarningTimeout() const {
if (!is_initialized_)
- return -1;
+ return base::TimeDelta::FromSeconds(-1);
- return kLoginIdleCountdownTimeout;
+ return idle_logout_warning_timeout_;
}
KioskModeHelper::KioskModeHelper() : is_initialized_(false) {

Powered by Google App Engine
This is Rietveld 408576698