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

Side by Side Diff: chrome/browser/chromeos/login/demo_mode/demo_mode_detector.cc

Issue 2692793007: cros: Move DemoModeDetector out of webui directory. (Closed)
Patch Set: Initial upload Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/login/demo_mode_detector.h" 5 #include "chrome/browser/chromeos/login/demo_mode/demo_mode_detector.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/sys_info.h" 9 #include "base/sys_info.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
11 #include "chrome/browser/chromeos/login/ui/login_display_host.h" 11 #include "chrome/browser/chromeos/login/ui/login_display_host.h"
12 #include "chrome/common/pref_names.h" 12 #include "chrome/common/pref_names.h"
13 #include "chromeos/chromeos_switches.h" 13 #include "chromeos/chromeos_switches.h"
14 #include "components/prefs/pref_registry_simple.h" 14 #include "components/prefs/pref_registry_simple.h"
15 #include "components/prefs/pref_service.h" 15 #include "components/prefs/pref_service.h"
16 16
17 namespace { 17 namespace {
18 const int kDerelectDetectionTimeoutSeconds = 8 * 60 * 60; // 8 hours. 18 const int kDerelectDetectionTimeoutSeconds = 8 * 60 * 60; // 8 hours.
19 const int kDerelectIdleTimeoutSeconds = 5 * 60; // 5 minutes. 19 const int kDerelectIdleTimeoutSeconds = 5 * 60; // 5 minutes.
20 const int kOobeTimerUpdateIntervalSeconds = 5 * 60; // 5 minutes. 20 const int kOobeTimerUpdateIntervalSeconds = 5 * 60; // 5 minutes.
21 } // namespace 21 } // namespace
22 22
23 namespace chromeos { 23 namespace chromeos {
24 24
25 DemoModeDetector::DemoModeDetector() 25 // static
26 : demo_launched_(false), 26 void DemoModeDetector::RegisterPrefs(PrefRegistrySimple* registry) {
27 weak_ptr_factory_(this) { 27 registry->RegisterInt64Pref(prefs::kTimeOnOobe, 0);
28 }
29
30 DemoModeDetector::DemoModeDetector() : weak_ptr_factory_(this) {
28 SetupTimeouts(); 31 SetupTimeouts();
29 } 32 }
30 33
31 DemoModeDetector::~DemoModeDetector() { 34 DemoModeDetector::~DemoModeDetector() {}
32 }
33
34 // Public methods.
35 35
36 void DemoModeDetector::InitDetection() { 36 void DemoModeDetector::InitDetection() {
37 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 37 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
38 switches::kDisableDemoMode)) 38 switches::kDisableDemoMode))
39 return; 39 return;
40 40
41 const bool has_derelict_switch = 41 const bool has_derelict_switch =
42 base::CommandLine::ForCurrentProcess()->HasSwitch( 42 base::CommandLine::ForCurrentProcess()->HasSwitch(
43 switches::kDerelictDetectionTimeout) || 43 switches::kDerelictDetectionTimeout) ||
44 base::CommandLine::ForCurrentProcess()->HasSwitch( 44 base::CommandLine::ForCurrentProcess()->HasSwitch(
(...skipping 12 matching lines...) Expand all
57 StartIdleDetection(); 57 StartIdleDetection();
58 else 58 else
59 StartOobeTimer(); 59 StartOobeTimer();
60 } 60 }
61 61
62 void DemoModeDetector::StopDetection() { 62 void DemoModeDetector::StopDetection() {
63 oobe_timer_.Stop(); 63 oobe_timer_.Stop();
64 idle_detector_.reset(); 64 idle_detector_.reset();
65 } 65 }
66 66
67 // static
68 void DemoModeDetector::RegisterPrefs(PrefRegistrySimple* registry) {
69 registry->RegisterInt64Pref(prefs::kTimeOnOobe, 0);
70 }
71
72 // Private methods.
73
74 void DemoModeDetector::StartIdleDetection() { 67 void DemoModeDetector::StartIdleDetection() {
75 if (!idle_detector_.get()) { 68 if (!idle_detector_) {
76 idle_detector_.reset( 69 idle_detector_.reset(new IdleDetector(
77 new IdleDetector(base::Bind(&DemoModeDetector::OnIdle, 70 base::Bind(&DemoModeDetector::OnIdle, weak_ptr_factory_.GetWeakPtr())));
78 weak_ptr_factory_.GetWeakPtr())));
79 } 71 }
80 idle_detector_->Start(derelict_idle_timeout_); 72 idle_detector_->Start(derelict_idle_timeout_);
81 } 73 }
82 74
83 void DemoModeDetector::StartOobeTimer() { 75 void DemoModeDetector::StartOobeTimer() {
84 if (oobe_timer_.IsRunning()) 76 if (oobe_timer_.IsRunning())
85 return; 77 return;
86 oobe_timer_.Start(FROM_HERE, 78 oobe_timer_.Start(FROM_HERE, oobe_timer_update_interval_, this,
87 oobe_timer_update_interval_,
88 this,
89 &DemoModeDetector::OnOobeTimerUpdate); 79 &DemoModeDetector::OnOobeTimerUpdate);
90 } 80 }
91 81
92 void DemoModeDetector::OnIdle() { 82 void DemoModeDetector::OnIdle() {
93 if (demo_launched_) 83 if (demo_launched_)
94 return; 84 return;
95 demo_launched_ = true; 85 demo_launched_ = true;
96 LoginDisplayHost::default_host()->StartDemoAppLaunch(); 86 LoginDisplayHost::default_host()->StartDemoAppLaunch();
97 } 87 }
98 88
(...skipping 29 matching lines...) Expand all
128 118
129 int derelict_idle_timeout; 119 int derelict_idle_timeout;
130 if (!cmdline->HasSwitch(switches::kDerelictIdleTimeout) || 120 if (!cmdline->HasSwitch(switches::kDerelictIdleTimeout) ||
131 !base::StringToInt( 121 !base::StringToInt(
132 cmdline->GetSwitchValueASCII(switches::kDerelictIdleTimeout), 122 cmdline->GetSwitchValueASCII(switches::kDerelictIdleTimeout),
133 &derelict_idle_timeout)) { 123 &derelict_idle_timeout)) {
134 derelict_idle_timeout = kDerelectIdleTimeoutSeconds; 124 derelict_idle_timeout = kDerelectIdleTimeoutSeconds;
135 } 125 }
136 derelict_idle_timeout_ = base::TimeDelta::FromSeconds(derelict_idle_timeout); 126 derelict_idle_timeout_ = base::TimeDelta::FromSeconds(derelict_idle_timeout);
137 127
138
139 int oobe_timer_update_interval; 128 int oobe_timer_update_interval;
140 if (!cmdline->HasSwitch(switches::kOobeTimerInterval) || 129 if (!cmdline->HasSwitch(switches::kOobeTimerInterval) ||
141 !base::StringToInt( 130 !base::StringToInt(
142 cmdline->GetSwitchValueASCII(switches::kOobeTimerInterval), 131 cmdline->GetSwitchValueASCII(switches::kOobeTimerInterval),
143 &oobe_timer_update_interval)) { 132 &oobe_timer_update_interval)) {
144 oobe_timer_update_interval = kOobeTimerUpdateIntervalSeconds; 133 oobe_timer_update_interval = kOobeTimerUpdateIntervalSeconds;
145 } 134 }
146 oobe_timer_update_interval_ = 135 oobe_timer_update_interval_ =
147 base::TimeDelta::FromSeconds(oobe_timer_update_interval); 136 base::TimeDelta::FromSeconds(oobe_timer_update_interval);
148 137
149 // In case we'd be derelict before our timer is set to trigger, reduce 138 // In case we'd be derelict before our timer is set to trigger, reduce
150 // the interval so we check again when we're scheduled to go derelict. 139 // the interval so we check again when we're scheduled to go derelict.
151 oobe_timer_update_interval_ = 140 oobe_timer_update_interval_ =
152 std::max(std::min(oobe_timer_update_interval_, 141 std::max(std::min(oobe_timer_update_interval_,
153 derelict_detection_timeout_ - time_on_oobe_), 142 derelict_detection_timeout_ - time_on_oobe_),
154 base::TimeDelta::FromSeconds(0)); 143 base::TimeDelta::FromSeconds(0));
155 } 144 }
156 145
157 bool DemoModeDetector::IsDerelict() { 146 bool DemoModeDetector::IsDerelict() {
158 return time_on_oobe_ >= derelict_detection_timeout_; 147 return time_on_oobe_ >= derelict_detection_timeout_;
159 } 148 }
160 149
161 } // namespace chromeos 150 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/demo_mode/demo_mode_detector.h ('k') | chrome/browser/prefs/browser_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698