// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_OPTIMIZATION_GUIDE_CORE_HINT_CACHE_H_ #define COMPONENTS_OPTIMIZATION_GUIDE_CORE_HINT_CACHE_H_ #include <string> #include "base/containers/lru_cache.h" #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/time/clock.h" #include "components/optimization_guide/core/memory_hint.h" #include "components/optimization_guide/core/optimization_guide_store.h" #include "components/optimization_guide/proto/hints.pb.h" class GURL; namespace optimization_guide { class StoreUpdateData; HintLoadedCallback; // Contains a set of optimization hints received from the Cacao service. This // may include hints received from the ComponentUpdater and hints fetched from a // Cacao Optimization Guide Service API. The availability of hints is queryable // via host name and full URL. The cache itself consists of a backing store, // which allows for asynchronous loading of any available host-keyed hint, and // an MRU host-keyed cache and a url-keyed cache, which can be used to // synchronously retrieve recently loaded hints keyed by URL or host. class HintCache { … }; } // namespace optimization_guide #endif // COMPONENTS_OPTIMIZATION_GUIDE_CORE_HINT_CACHE_H_