// Copyright 2017 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_OMNIBOX_BROWSER_REMOTE_SUGGESTIONS_SERVICE_H_ #define COMPONENTS_OMNIBOX_BROWSER_REMOTE_SUGGESTIONS_SERVICE_H_ #include <memory> #include <string> #include "base/functional/callback_forward.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "base/observer_list_types.h" #include "base/unguessable_token.h" #include "components/keyed_service/core/keyed_service.h" #include "components/omnibox/browser/autocomplete_input.h" #include "components/search_engines/template_url.h" #include "net/traffic_annotation/network_traffic_annotation.h" #include "url/gurl.h" class DocumentSuggestionsService; namespace network { class SharedURLLoaderFactory; class SimpleURLLoader; struct ResourceRequest; } // namespace network // The types of requests for remote suggestions. // These values are written to logs. New enum values can be added, but existing // enums must never be renumbered or deleted and reused. enum class RemoteRequestType { … }; // The event types recorded by the providers for remote suggestions. Each event // must be logged at most once from when the provider is started until it is // stopped. // These values are written to logs. New enum values can be added, but existing // enums must never be renumbered or deleted and reused. enum class RemoteRequestEvent { … }; // A service to fetch suggestions from a search provider's suggest endpoint. // Used by ZeroSuggestProvider, SearchProvider, DocumentProvider, and // ImageService. // // This service is always sent the user's authentication state, so the // suggestions always can be personalized. This service is also sometimes sent // the user's current URL, so the suggestions are sometimes also contextual. class RemoteSuggestionsService : public KeyedService { … }; #endif // COMPONENTS_OMNIBOX_BROWSER_REMOTE_SUGGESTIONS_SERVICE_H_