#include "components/contextual_search/search_content_sharing_policy_handler.h"
#include "base/values.h"
#include "components/contextual_search/pref_names.h"
#include "components/policy/core/common/policy_map.h"
#include "components/policy/policy_constants.h"
#include "components/prefs/pref_value_map.h"
namespace contextual_search {
SearchContentSharingPolicyHandler::SearchContentSharingPolicyHandler(
std::string pref_path_to_override,
bool convert_policy_value_to_enabled_boolean)
: TypeCheckingPolicyHandler(policy::key::kSearchContentSharingSettings,
base::Value::Type::INTEGER),
pref_path_to_override_(std::move(pref_path_to_override)),
convert_policy_value_to_enabled_boolean_(
convert_policy_value_to_enabled_boolean) {}
SearchContentSharingPolicyHandler::~SearchContentSharingPolicyHandler() =
default;
void SearchContentSharingPolicyHandler::ApplyPolicySettings(
const policy::PolicyMap& policies,
PrefValueMap* prefs) {
const base::Value* value =
policies.GetValue(policy_name(), base::Value::Type::INTEGER);
if (!value) {
return;
}
int int_value = value->GetInt();
if (convert_policy_value_to_enabled_boolean_) {
prefs->SetBoolean(pref_path_to_override_, int_value == 0);
} else {
prefs->SetInteger(pref_path_to_override_, int_value);
}
prefs->SetInteger(kSearchContentSharingSettings, int_value);
}
}