1 // Copyright 2020 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/feed/core/v2/prefs.h" 6 7 #include <utility> 8 9 #include "base/value_conversions.h" 10 #include "base/values.h" 11 #include "components/prefs/pref_registry_simple.h" 12 #include "components/prefs/pref_service.h" 13 14 namespace feed { 15 namespace { 16 const char kThrottlerRequestCountListPrefName[] = 17 "feedv2.request_throttler.request_counts"; 18 const char kThrottlerLastRequestTime[] = 19 "feedv2.request_throttler.last_request_time"; 20 21 } // namespace 22 23 namespace prefs { 24 GetThrottlerRequestCounts(PrefService * pref_service)25std::vector<int> GetThrottlerRequestCounts(PrefService* pref_service) { 26 std::vector<int> result; 27 const auto& value_list = 28 pref_service->GetList(kThrottlerRequestCountListPrefName)->GetList(); 29 for (const base::Value& value : value_list) { 30 result.push_back(value.is_int() ? value.GetInt() : 0); 31 } 32 return result; 33 } 34 SetThrottlerRequestCounts(std::vector<int> request_counts,PrefService * pref_service)35void SetThrottlerRequestCounts(std::vector<int> request_counts, 36 PrefService* pref_service) { 37 std::vector<base::Value> value_list; 38 for (int count : request_counts) { 39 value_list.push_back(base::Value(count)); 40 } 41 42 pref_service->Set(kThrottlerRequestCountListPrefName, 43 base::Value(std::move(value_list))); 44 } 45 GetLastRequestTime(PrefService * pref_service)46base::Time GetLastRequestTime(PrefService* pref_service) { 47 return pref_service->GetTime(kThrottlerLastRequestTime); 48 } 49 SetLastRequestTime(base::Time request_time,PrefService * pref_service)50void SetLastRequestTime(base::Time request_time, PrefService* pref_service) { 51 return pref_service->SetTime(kThrottlerLastRequestTime, request_time); 52 } 53 54 } // namespace prefs 55 56 } // namespace feed 57