1 // Copyright 2013 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 "chrome/browser/sync/sync_policy_handler.h" 6 7 #include "base/prefs/pref_value_map.h" 8 #include "base/values.h" 9 #include "components/policy/core/common/policy_map.h" 10 #include "components/sync_driver/pref_names.h" 11 #include "policy/policy_constants.h" 12 13 namespace browser_sync { 14 15 SyncPolicyHandler::SyncPolicyHandler() 16 : policy::TypeCheckingPolicyHandler(policy::key::kSyncDisabled, 17 base::Value::TYPE_BOOLEAN) {} 18 19 SyncPolicyHandler::~SyncPolicyHandler() { 20 } 21 22 void SyncPolicyHandler::ApplyPolicySettings(const policy::PolicyMap& policies, 23 PrefValueMap* prefs) { 24 const base::Value* value = policies.GetValue(policy_name()); 25 bool disable_sync; 26 if (value && value->GetAsBoolean(&disable_sync) && disable_sync) 27 prefs->SetValue(sync_driver::prefs::kSyncManaged, value->DeepCopy()); 28 } 29 30 } // namespace browser_sync 31