Commit df7614ec authored by Owen Min's avatar Owen Min Committed by Commit Bot

Do not disable guest mode when BrowserSignin override ForceBrowesrSignin without a forced value

Bug: 894212
Change-Id: Icd4c7d9f8a79a9b57900366d4677b0e7023b8ca3
Reviewed-on: https://chromium-review.googlesource.com/c/1274196
Commit-Queue: Owen Min <zmin@chromium.org>
Reviewed-by: default avatarMihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599247}
parent 2c3ea353
...@@ -32,8 +32,10 @@ void GuestModePolicyHandler::ApplyPolicySettings(const PolicyMap& policies, ...@@ -32,8 +32,10 @@ void GuestModePolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
const base::Value* browser_signin_value = const base::Value* browser_signin_value =
policies.GetValue(key::kBrowserSignin); policies.GetValue(key::kBrowserSignin);
int int_browser_signin_value; int int_browser_signin_value;
if (browser_signin_value && bool is_browser_signin_policy_set =
browser_signin_value->GetAsInteger(&int_browser_signin_value) && (browser_signin_value &&
browser_signin_value->GetAsInteger(&int_browser_signin_value));
if (is_browser_signin_policy_set &&
static_cast<BrowserSigninMode>(int_browser_signin_value) == static_cast<BrowserSigninMode>(int_browser_signin_value) ==
BrowserSigninMode::kForced) { BrowserSigninMode::kForced) {
prefs->SetBoolean(prefs::kBrowserGuestModeEnabled, false); prefs->SetBoolean(prefs::kBrowserGuestModeEnabled, false);
...@@ -43,7 +45,7 @@ void GuestModePolicyHandler::ApplyPolicySettings(const PolicyMap& policies, ...@@ -43,7 +45,7 @@ void GuestModePolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
const base::Value* force_signin_value = const base::Value* force_signin_value =
policies.GetValue(key::kForceBrowserSignin); policies.GetValue(key::kForceBrowserSignin);
bool is_force_signin_enabled; bool is_force_signin_enabled;
if (force_signin_value && if (!is_browser_signin_policy_set && force_signin_value &&
force_signin_value->GetAsBoolean(&is_force_signin_enabled) && force_signin_value->GetAsBoolean(&is_force_signin_enabled) &&
is_force_signin_enabled) { is_force_signin_enabled) {
prefs->SetBoolean(prefs::kBrowserGuestModeEnabled, false); prefs->SetBoolean(prefs::kBrowserGuestModeEnabled, false);
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/profiles/guest_mode_policy_handler.h" #include "chrome/browser/profiles/guest_mode_policy_handler.h"
#include "base/values.h" #include "base/values.h"
#include "chrome/browser/policy/browser_signin_policy_handler.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "components/policy/core/common/policy_map.h" #include "components/policy/core/common/policy_map.h"
#include "components/policy/policy_constants.h" #include "components/policy/policy_constants.h"
...@@ -85,4 +86,39 @@ TEST_F(GuestModePolicyHandlerTest, GuestModeSet) { ...@@ -85,4 +86,39 @@ TEST_F(GuestModePolicyHandlerTest, GuestModeSet) {
EXPECT_FALSE(value); EXPECT_FALSE(value);
} }
TEST_F(GuestModePolicyHandlerTest, GuestModeDisabledWhenBrowserSigninIsForced) {
SetUpPolicy(key::kBrowserSignin,
static_cast<int>(BrowserSigninMode::kForced));
handler_.ApplyPolicySettings(policies_, &prefs_);
bool value = true;
EXPECT_TRUE(prefs_.GetBoolean(prefs::kBrowserGuestModeEnabled, &value));
EXPECT_FALSE(value);
}
TEST_F(GuestModePolicyHandlerTest,
GuestModeIsNotSetWhenBrowserSigninIsNotForced) {
bool value = false;
SetUpPolicy(key::kBrowserSignin,
static_cast<int>(BrowserSigninMode::kEnabled));
handler_.ApplyPolicySettings(policies_, &prefs_);
EXPECT_FALSE(prefs_.GetBoolean(prefs::kBrowserGuestModeEnabled, &value));
SetUpPolicy(key::kBrowserSignin,
static_cast<int>(BrowserSigninMode::kDisabled));
handler_.ApplyPolicySettings(policies_, &prefs_);
EXPECT_FALSE(prefs_.GetBoolean(prefs::kBrowserGuestModeEnabled, &value));
// Invalid format
SetUpPolicy(key::kBrowserSignin, false);
handler_.ApplyPolicySettings(policies_, &prefs_);
EXPECT_FALSE(prefs_.GetBoolean(prefs::kBrowserGuestModeEnabled, &value));
// Even with forceBrowserSignin enable.
SetUpPolicy(key::kBrowserSignin,
static_cast<int>(BrowserSigninMode::kEnabled));
SetUpPolicy(key::kForceBrowserSignin, true);
handler_.ApplyPolicySettings(policies_, &prefs_);
EXPECT_FALSE(prefs_.GetBoolean(prefs::kBrowserGuestModeEnabled, &value));
}
} // namespace policy } // namespace policy
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