Commit 19b5cacd authored by Henrique Grandinetti's avatar Henrique Grandinetti Committed by Commit Bot

Execute CheckTimeLimit when clock is updated

Bug: 899980
Change-Id: I4916f6e284a1fd0a99fff2c9d60535a389fb4655
Reviewed-on: https://chromium-review.googlesource.com/c/1329082Reviewed-by: default avatarMichael Giuffrida <michaelpg@chromium.org>
Commit-Queue: Henrique Grandinetti <hgrandinetti@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606933}
parent 8e0d5397
......@@ -47,6 +47,7 @@ ScreenTimeController::ScreenTimeController(content::BrowserContext* context)
time_limit_notifier_(context) {
session_manager::SessionManager::Get()->AddObserver(this);
system::TimezoneSettings::GetInstance()->AddObserver(this);
chromeos::DBusThreadManager::Get()->GetSystemClockClient()->AddObserver(this);
pref_change_registrar_.Init(pref_service_);
pref_change_registrar_.Add(
prefs::kUsageTimeLimit,
......@@ -57,6 +58,8 @@ ScreenTimeController::ScreenTimeController(content::BrowserContext* context)
ScreenTimeController::~ScreenTimeController() {
session_manager::SessionManager::Get()->RemoveObserver(this);
system::TimezoneSettings::GetInstance()->RemoveObserver(this);
chromeos::DBusThreadManager::Get()->GetSystemClockClient()->RemoveObserver(
this);
}
base::TimeDelta ScreenTimeController::GetScreenTimeDuration() {
......@@ -314,4 +317,8 @@ void ScreenTimeController::TimezoneChanged(const icu::TimeZone& timezone) {
CheckTimeLimit("TimezoneChanged");
}
void ScreenTimeController::SystemClockUpdated() {
CheckTimeLimit("SystemClockUpdated");
}
} // namespace chromeos
......@@ -9,6 +9,7 @@
#include "base/timer/timer.h"
#include "chrome/browser/chromeos/child_accounts/time_limit_notifier.h"
#include "chrome/browser/chromeos/child_accounts/usage_time_limit_processor.h"
#include "chromeos/dbus/system_clock_client.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/session_manager/core/session_manager_observer.h"
......@@ -28,7 +29,8 @@ namespace chromeos {
// Schedule notifications and lock/unlock screen based on the processor output.
class ScreenTimeController : public KeyedService,
public session_manager::SessionManagerObserver,
public system::TimezoneSettings::Observer {
public system::TimezoneSettings::Observer,
public chromeos::SystemClockClient::Observer {
public:
// Registers preferences.
static void RegisterProfilePrefs(PrefRegistrySimple* registry);
......@@ -78,6 +80,9 @@ class ScreenTimeController : public KeyedService,
// system::TimezoneSettings::Observer:
void TimezoneChanged(const icu::TimeZone& timezone) override;
// chromeos::SystemClockClient::Observer:
void SystemClockUpdated() override;
content::BrowserContext* context_;
PrefService* pref_service_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment