1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/content_settings/core/browser/cookie_settings_policy_handler.h"
6 
7 #include "components/content_settings/core/browser/cookie_settings.h"
8 #include "components/content_settings/core/common/pref_names.h"
9 #include "components/policy/core/common/policy_map.h"
10 #include "components/policy/policy_constants.h"
11 #include "components/prefs/pref_value_map.h"
12 
13 namespace content_settings {
14 
CookieSettingsPolicyHandler()15 CookieSettingsPolicyHandler::CookieSettingsPolicyHandler() {}
16 
~CookieSettingsPolicyHandler()17 CookieSettingsPolicyHandler::~CookieSettingsPolicyHandler() {}
18 
CheckPolicySettings(const policy::PolicyMap & policies,policy::PolicyErrorMap * errors)19 bool CookieSettingsPolicyHandler::CheckPolicySettings(
20     const policy::PolicyMap& policies,
21     policy::PolicyErrorMap* errors) {
22   return true;
23 }
24 
ApplyPolicySettings(const policy::PolicyMap & policies,PrefValueMap * prefs)25 void CookieSettingsPolicyHandler::ApplyPolicySettings(
26     const policy::PolicyMap& policies,
27     PrefValueMap* prefs) {
28   // When third party cookie blocking is set by policy, the cookie controls UI
29   // can't be enabled.
30   const base::Value* third_party_cookie_blocking =
31       policies.GetValue(policy::key::kBlockThirdPartyCookies);
32   if (third_party_cookie_blocking) {
33     prefs->SetInteger(prefs::kCookieControlsMode,
34                       static_cast<int>(third_party_cookie_blocking->GetBool()
35                                            ? CookieControlsMode::kOn
36                                            : CookieControlsMode::kOff));
37   }
38 }
39 
40 }  // namespace content_settings
41