// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/ntp_snippets/pref_util.h" #include #include "base/values.h" #include "components/prefs/pref_service.h" namespace ntp_snippets { namespace prefs { std::set ReadDismissedIDsFromPrefs(const PrefService& pref_service, const std::string& pref_name) { std::set dismissed_ids; const base::ListValue* list = pref_service.GetList(pref_name); for (const base::Value& value : list->GetList()) { DCHECK(value.is_string()) << "Failed to parse dismissed id from prefs param " << pref_name << " into string."; dismissed_ids.insert(value.GetString()); } return dismissed_ids; } void StoreDismissedIDsToPrefs(PrefService* pref_service, const std::string& pref_name, const std::set& dismissed_ids) { base::ListValue list; for (const std::string& dismissed_id : dismissed_ids) { list.AppendString(dismissed_id); } pref_service->Set(pref_name, list); } } // namespace prefs } // namespace ntp_snippets