// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_PRELOADING_PREFETCH_SEARCH_PREFETCH_SEARCH_PREFETCH_REQUEST_H_ #define CHROME_BROWSER_PRELOADING_PREFETCH_SEARCH_PREFETCH_SEARCH_PREFETCH_REQUEST_H_ #include <memory> #include "base/functional/callback.h" #include "base/state_transitions.h" #include "chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader.h" #include "services/network/public/cpp/resource_request.h" #include "url/gurl.h" class PrerenderManager; class Profile; class StreamingSearchPrefetchURLLoader; namespace content { class PreloadingAttempt; enum class PreloadingTriggeringOutcome; enum class PreloadingFailureReason; } // namespace content namespace net { struct NetworkTrafficAnnotationTag; } // namespace net // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // Any updates to this class need to be propagated to enums.xml. enum class SearchPrefetchStatus { … }; // A class representing a prefetch used by the Search Prefetch Service. // It plays the following roles to support search preloading. // - Preparing a resource request to prefetch a search page. // - Starting prerendering upon the request succeeding to upgrade prefetch to // prerender after the Search Prefetch Service tells it that the prefetched // term is prerenderable. // - A container for a StreamingSearchPrefetchURLLoader, to support // |TakeSearchPrefetchURLLoader()| // more easily. class SearchPrefetchRequest { … }; // Used when DCHECK_STATE_TRANSITION triggers. std::ostream& operator<<(std::ostream& o, const SearchPrefetchStatus& s); #endif // CHROME_BROWSER_PRELOADING_PREFETCH_SEARCH_PREFETCH_SEARCH_PREFETCH_REQUEST_H_