Commit f51c71fd authored by yilkal's avatar yilkal Committed by Commit Bot

Uninstalling web apps should not resume chrome.

After web time limit is reached, uninstalling a web app
will lead AppService to notify ChildUserService to
resume web activity for the app.

This cl ensures that ChildUserService only pauses or
resumes web time limit if the app is chrome.

Bug: 1072035
Change-Id: Idf8250bf96c8b0717fe78af9b73e1d802e87723a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2154494Reviewed-by: default avatarAga Wronska <agawronska@chromium.org>
Commit-Queue: Yilkal Abe <yilkal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#760578}
parent 0432cf90
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h" #include "chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
#include "extensions/common/constants.h"
#include "url/gurl.h" #include "url/gurl.h"
namespace chromeos { namespace chromeos {
...@@ -43,6 +44,10 @@ ChildUserService::~ChildUserService() = default; ...@@ -43,6 +44,10 @@ ChildUserService::~ChildUserService() = default;
void ChildUserService::PauseWebActivity(const std::string& app_service_id) { void ChildUserService::PauseWebActivity(const std::string& app_service_id) {
DCHECK(app_time_controller_); DCHECK(app_time_controller_);
// Pause web activity only if the app is chrome.
if (app_service_id != extension_misc::kChromeAppId)
return;
app_time::WebTimeLimitEnforcer* web_time_enforcer = app_time::WebTimeLimitEnforcer* web_time_enforcer =
app_time_controller_->web_time_enforcer(); app_time_controller_->web_time_enforcer();
DCHECK(web_time_enforcer); DCHECK(web_time_enforcer);
...@@ -59,6 +64,10 @@ void ChildUserService::PauseWebActivity(const std::string& app_service_id) { ...@@ -59,6 +64,10 @@ void ChildUserService::PauseWebActivity(const std::string& app_service_id) {
void ChildUserService::ResumeWebActivity(const std::string& app_service_id) { void ChildUserService::ResumeWebActivity(const std::string& app_service_id) {
DCHECK(app_time_controller_); DCHECK(app_time_controller_);
// Only unpause web activity if the app is chrome.
if (app_service_id != extension_misc::kChromeAppId)
return;
app_time::WebTimeLimitEnforcer* web_time_enforcer = app_time::WebTimeLimitEnforcer* web_time_enforcer =
app_time_controller_->web_time_enforcer(); app_time_controller_->web_time_enforcer();
DCHECK(web_time_enforcer); DCHECK(web_time_enforcer);
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "content/public/test/browser_task_environment.h" #include "content/public/test/browser_task_environment.h"
#include "extensions/common/constants.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
namespace chromeos { namespace chromeos {
...@@ -98,7 +99,7 @@ TEST_F(PerAppTimeLimitsTest, PauseAndResumeWebActivity) { ...@@ -98,7 +99,7 @@ TEST_F(PerAppTimeLimitsTest, PauseAndResumeWebActivity) {
EnableWebTimeLimits(); EnableWebTimeLimits();
EXPECT_FALSE(service()->WebTimeLimitReached()); EXPECT_FALSE(service()->WebTimeLimitReached());
const std::string app_id = "iniodglblcgmngkgdipeiclkdjjpnlbn"; const std::string app_id = extension_misc::kChromeAppId;
service()->PauseWebActivity(app_id); service()->PauseWebActivity(app_id);
EXPECT_TRUE(service()->WebTimeLimitReached()); EXPECT_TRUE(service()->WebTimeLimitReached());
...@@ -111,7 +112,7 @@ TEST_F(PerAppTimeLimitsTest, PauseWebActivityTwice) { ...@@ -111,7 +112,7 @@ TEST_F(PerAppTimeLimitsTest, PauseWebActivityTwice) {
EnableWebTimeLimits(); EnableWebTimeLimits();
EXPECT_FALSE(service()->WebTimeLimitReached()); EXPECT_FALSE(service()->WebTimeLimitReached());
const std::string app_id = "iniodglblcgmngkgdipeiclkdjjpnlbn"; const std::string app_id = extension_misc::kChromeAppId;
service()->PauseWebActivity(app_id); service()->PauseWebActivity(app_id);
EXPECT_TRUE(service()->WebTimeLimitReached()); EXPECT_TRUE(service()->WebTimeLimitReached());
...@@ -123,7 +124,7 @@ TEST_F(PerAppTimeLimitsTest, ResumeWebActivityTwice) { ...@@ -123,7 +124,7 @@ TEST_F(PerAppTimeLimitsTest, ResumeWebActivityTwice) {
EnableWebTimeLimits(); EnableWebTimeLimits();
EXPECT_FALSE(service()->WebTimeLimitReached()); EXPECT_FALSE(service()->WebTimeLimitReached());
const std::string app_id = "iniodglblcgmngkgdipeiclkdjjpnlbn"; const std::string app_id = extension_misc::kChromeAppId;
service()->ResumeWebActivity(app_id); service()->ResumeWebActivity(app_id);
EXPECT_FALSE(service()->WebTimeLimitReached()); EXPECT_FALSE(service()->WebTimeLimitReached());
...@@ -135,4 +136,18 @@ TEST_F(PerAppTimeLimitsTest, ResumeWebActivityTwice) { ...@@ -135,4 +136,18 @@ TEST_F(PerAppTimeLimitsTest, ResumeWebActivityTwice) {
EXPECT_EQ(base::TimeDelta(), service()->GetWebTimeLimit()); EXPECT_EQ(base::TimeDelta(), service()->GetWebTimeLimit());
} }
TEST_F(PerAppTimeLimitsTest, WebAppsDontTriggerPauseOrResumeWebActivity) {
EnableWebTimeLimits();
EXPECT_FALSE(service()->WebTimeLimitReached());
const std::string chrome_app_id = extension_misc::kChromeAppId;
service()->PauseWebActivity(chrome_app_id);
EXPECT_TRUE(service()->WebTimeLimitReached());
const std::string web_app_id = "iniodglblcgmngkgdipeiclkdjjpnlbn";
service()->ResumeWebActivity(web_app_id);
EXPECT_TRUE(service()->WebTimeLimitReached());
}
} // namespace chromeos } // namespace chromeos
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