Commit 17c0d817 authored by yilkal's avatar yilkal Committed by Commit Bot

Attach WebTimeLimitEnforcer to AppTimeController.

This CL attaches the WebTimeLimitEnforcer to AppTimeController.

Bug: 1015661
Change-Id: Ic9bd0d3ed349a5300fa59fa873c94c45d24128f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1914940
Commit-Queue: Yilkal Abe <yilkal@chromium.org>
Reviewed-by: default avatarAga Wronska <agawronska@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715402}
parent bf1f5892
......@@ -25,6 +25,14 @@ class ChildUserService : public KeyedService {
ChildUserService& operator=(const ChildUserService&) = delete;
~ChildUserService() override;
const AppTimeController* app_time_controller() const {
return app_time_controller_.get();
}
AppTimeController* app_time_controller() {
return app_time_controller_.get();
}
private:
// KeyedService:
void Shutdown() override;
......
......@@ -5,6 +5,7 @@
#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h"
#include "base/feature_list.h"
#include "chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h"
#include "chrome/common/chrome_features.h"
namespace chromeos {
......@@ -14,7 +15,10 @@ bool AppTimeController::ArePerAppTimeLimitsEnabled() {
return base::FeatureList::IsEnabled(features::kPerAppTimeLimits);
}
AppTimeController::AppTimeController() = default;
AppTimeController::AppTimeController() {
if (WebTimeLimitEnforcer::IsEnabled())
web_time_enforcer_ = std::make_unique<WebTimeLimitEnforcer>();
}
AppTimeController::~AppTimeController() = default;
......
......@@ -5,8 +5,12 @@
#ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_CONTROLLER_H_
#define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_CONTROLLER_H_
#include <memory>
namespace chromeos {
class WebTimeLimitEnforcer;
// Coordinates per-app time limit for child user.
class AppTimeController {
public:
......@@ -16,6 +20,15 @@ class AppTimeController {
AppTimeController(const AppTimeController&) = delete;
AppTimeController& operator=(const AppTimeController&) = delete;
~AppTimeController();
const WebTimeLimitEnforcer* web_time_enforcer() const {
return web_time_enforcer_.get();
}
WebTimeLimitEnforcer* web_time_enforcer() { return web_time_enforcer_.get(); }
private:
std::unique_ptr<WebTimeLimitEnforcer> web_time_enforcer_;
};
} // namespace chromeos
......
......@@ -32,6 +32,8 @@ bool IsSchemeFiltered(const GURL& url) {
} // namespace
namespace chromeos {
// static
bool WebTimeLimitEnforcer::IsEnabled() {
return base::FeatureList::IsEnabled(features::kWebTimeLimits);
......@@ -90,3 +92,5 @@ void WebTimeLimitEnforcer::ReloadAllWebContents() {
}
}
}
} // namespace chromeos
......@@ -13,6 +13,8 @@
class GURL;
namespace chromeos {
class WebTimeLimitEnforcer {
public:
static bool IsEnabled();
......@@ -51,4 +53,6 @@ class WebTimeLimitEnforcer {
std::set<GURL> whitelisted_urls_;
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_WEB_TIME_LIMIT_ENFORCER_H_
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