| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_H_ | 6 #define CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_H_ |
| 7 | 7 |
| 8 #include <memory> |
| 9 |
| 8 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 9 #include "base/macros.h" | 11 #include "base/macros.h" |
| 10 #include "base/memory/scoped_ptr.h" | |
| 11 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 12 #include "base/observer_list.h" | 13 #include "base/observer_list.h" |
| 13 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 14 #include "base/timer/timer.h" | 15 #include "base/timer/timer.h" |
| 15 #include "chrome/browser/chromeos/system/automatic_reboot_manager_observer.h" | 16 #include "chrome/browser/chromeos/system/automatic_reboot_manager_observer.h" |
| 16 #include "chromeos/dbus/power_manager_client.h" | 17 #include "chromeos/dbus/power_manager_client.h" |
| 17 #include "chromeos/dbus/update_engine_client.h" | 18 #include "chromeos/dbus/update_engine_client.h" |
| 18 #include "components/prefs/pref_change_registrar.h" | 19 #include "components/prefs/pref_change_registrar.h" |
| 19 #include "content/public/browser/notification_observer.h" | 20 #include "content/public/browser/notification_observer.h" |
| 20 #include "content/public/browser/notification_registrar.h" | 21 #include "content/public/browser/notification_registrar.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 SystemEventTimes(const base::TimeDelta& uptime, | 83 SystemEventTimes(const base::TimeDelta& uptime, |
| 83 const base::TimeDelta& update_reboot_needed_uptime); | 84 const base::TimeDelta& update_reboot_needed_uptime); |
| 84 | 85 |
| 85 bool has_boot_time; | 86 bool has_boot_time; |
| 86 base::TimeTicks boot_time; | 87 base::TimeTicks boot_time; |
| 87 | 88 |
| 88 bool has_update_reboot_needed_time; | 89 bool has_update_reboot_needed_time; |
| 89 base::TimeTicks update_reboot_needed_time; | 90 base::TimeTicks update_reboot_needed_time; |
| 90 }; | 91 }; |
| 91 | 92 |
| 92 explicit AutomaticRebootManager(scoped_ptr<base::TickClock> clock); | 93 explicit AutomaticRebootManager(std::unique_ptr<base::TickClock> clock); |
| 93 ~AutomaticRebootManager() override; | 94 ~AutomaticRebootManager() override; |
| 94 | 95 |
| 95 AutomaticRebootManagerObserver::Reason reboot_reason() const { | 96 AutomaticRebootManagerObserver::Reason reboot_reason() const { |
| 96 return reboot_reason_; | 97 return reboot_reason_; |
| 97 } | 98 } |
| 98 bool reboot_requested() const { return reboot_requested_; } | 99 bool reboot_requested() const { return reboot_requested_; } |
| 99 | 100 |
| 100 void AddObserver(AutomaticRebootManagerObserver* observer); | 101 void AddObserver(AutomaticRebootManagerObserver* observer); |
| 101 void RemoveObserver(AutomaticRebootManagerObserver* observer); | 102 void RemoveObserver(AutomaticRebootManagerObserver* observer); |
| 102 | 103 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 133 // Called whenever the status of the criteria inhibiting reboots may have | 134 // Called whenever the status of the criteria inhibiting reboots may have |
| 134 // changed. Reboots immediately if a reboot has actually been requested and | 135 // changed. Reboots immediately if a reboot has actually been requested and |
| 135 // none of the criteria inhibiting it apply anymore. Otherwise, does nothing. | 136 // none of the criteria inhibiting it apply anymore. Otherwise, does nothing. |
| 136 // If |ignore_session|, a session in progress does not inhibit reboots. | 137 // If |ignore_session|, a session in progress does not inhibit reboots. |
| 137 void MaybeReboot(bool ignore_session); | 138 void MaybeReboot(bool ignore_session); |
| 138 | 139 |
| 139 // Reboots immediately. | 140 // Reboots immediately. |
| 140 void Reboot(); | 141 void Reboot(); |
| 141 | 142 |
| 142 // A clock that can be mocked in tests to fast-forward time. | 143 // A clock that can be mocked in tests to fast-forward time. |
| 143 scoped_ptr<base::TickClock> clock_; | 144 std::unique_ptr<base::TickClock> clock_; |
| 144 | 145 |
| 145 PrefChangeRegistrar local_state_registrar_; | 146 PrefChangeRegistrar local_state_registrar_; |
| 146 | 147 |
| 147 content::NotificationRegistrar notification_registrar_; | 148 content::NotificationRegistrar notification_registrar_; |
| 148 | 149 |
| 149 // Fires when the user has been idle on the login screen for a set amount of | 150 // Fires when the user has been idle on the login screen for a set amount of |
| 150 // time. | 151 // time. |
| 151 scoped_ptr<base::OneShotTimer> login_screen_idle_timer_; | 152 std::unique_ptr<base::OneShotTimer> login_screen_idle_timer_; |
| 152 | 153 |
| 153 // The time at which the device was booted, in |clock_| ticks. | 154 // The time at which the device was booted, in |clock_| ticks. |
| 154 bool have_boot_time_; | 155 bool have_boot_time_; |
| 155 base::TimeTicks boot_time_; | 156 base::TimeTicks boot_time_; |
| 156 | 157 |
| 157 // The time at which an update was applied and a reboot became necessary to | 158 // The time at which an update was applied and a reboot became necessary to |
| 158 // complete the update process, in |clock_| ticks. | 159 // complete the update process, in |clock_| ticks. |
| 159 bool have_update_reboot_needed_time_; | 160 bool have_update_reboot_needed_time_; |
| 160 base::TimeTicks update_reboot_needed_time_; | 161 base::TimeTicks update_reboot_needed_time_; |
| 161 | 162 |
| 162 // The reason for the reboot request. Updated whenever a reboot is scheduled. | 163 // The reason for the reboot request. Updated whenever a reboot is scheduled. |
| 163 AutomaticRebootManagerObserver::Reason reboot_reason_; | 164 AutomaticRebootManagerObserver::Reason reboot_reason_; |
| 164 | 165 |
| 165 // Whether a reboot has been requested. | 166 // Whether a reboot has been requested. |
| 166 bool reboot_requested_; | 167 bool reboot_requested_; |
| 167 | 168 |
| 168 // Timers that start and end the grace period. | 169 // Timers that start and end the grace period. |
| 169 scoped_ptr<base::OneShotTimer> grace_start_timer_; | 170 std::unique_ptr<base::OneShotTimer> grace_start_timer_; |
| 170 scoped_ptr<base::OneShotTimer> grace_end_timer_; | 171 std::unique_ptr<base::OneShotTimer> grace_end_timer_; |
| 171 | 172 |
| 172 base::ObserverList<AutomaticRebootManagerObserver, true> observers_; | 173 base::ObserverList<AutomaticRebootManagerObserver, true> observers_; |
| 173 | 174 |
| 174 base::WeakPtrFactory<AutomaticRebootManager> weak_ptr_factory_; | 175 base::WeakPtrFactory<AutomaticRebootManager> weak_ptr_factory_; |
| 175 | 176 |
| 176 DISALLOW_COPY_AND_ASSIGN(AutomaticRebootManager); | 177 DISALLOW_COPY_AND_ASSIGN(AutomaticRebootManager); |
| 177 }; | 178 }; |
| 178 | 179 |
| 179 } // namespace system | 180 } // namespace system |
| 180 } // namespace chromeos | 181 } // namespace chromeos |
| 181 | 182 |
| 182 #endif // CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_H_ | 183 #endif // CHROME_BROWSER_CHROMEOS_SYSTEM_AUTOMATIC_REBOOT_MANAGER_H_ |
| OLD | NEW |