// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // The InMemoryHistoryBackend is a wrapper around the in-memory URL database. // It maintains an in-memory cache of a subset of history that is required for // low-latency operations, such as in-line autocomplete. // // The in-memory cache provides the following guarantees: // (1.) It will always contain URLRows that either have a `typed_count` > 0; or // that have a corresponding search term, in which case information about // the search term is also stored. // (2.) It will be an actual subset, i.e., it will contain verbatim data, and // will never contain more data that can be found in the main database. // // The InMemoryHistoryBackend is created on the history thread and passed to the // main thread where operations can be completed synchronously. It listens for // notifications from the "regular" history backend and keeps itself in sync. #ifndef COMPONENTS_HISTORY_CORE_BROWSER_IN_MEMORY_HISTORY_BACKEND_H_ #define COMPONENTS_HISTORY_CORE_BROWSER_IN_MEMORY_HISTORY_BACKEND_H_ #include <memory> #include <string> #include "base/gtest_prod_util.h" #include "base/scoped_observation.h" #include "components/history/core/browser/history_service.h" #include "components/history/core/browser/history_service_observer.h" #include "components/history/core/browser/keyword_id.h" namespace base { class FilePath; } namespace history { class HistoryBackendTestBase; class InMemoryDatabase; class InMemoryHistoryBackendTest; class URLRow; class InMemoryHistoryBackend : public HistoryServiceObserver { … }; } // namespace history #endif // COMPONENTS_HISTORY_CORE_BROWSER_IN_MEMORY_HISTORY_BACKEND_H_