// 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_DOWNLOAD_PUBLIC_BACKGROUND_SERVICE_BACKGROUND_DOWNLOAD_SERVICE_H_ #define COMPONENTS_DOWNLOAD_PUBLIC_BACKGROUND_SERVICE_BACKGROUND_DOWNLOAD_SERVICE_H_ #include <memory> #include <string> #include "base/task/sequenced_task_runner.h" #include "components/download/public/background_service/clients.h" #include "components/download/public/task/download_task_types.h" #include "components/keyed_service/core/keyed_service.h" namespace download { class Client; class Logger; class ServiceConfig; struct DownloadParams; struct SchedulingParams; TaskFinishedCallback; #if BUILDFLAG(IS_IOS) // Identifier for background download service. extern const char kBackgroundDownloadIdentifierPrefix[]; #endif // BUILDFLAG(IS_IOS) // A service responsible for helping facilitate the scheduling and downloading // of file content from the web. See |DownloadParams| for more details on the // types of scheduling that can be achieved and the required input parameters // for starting a download. Note that BackgroundDownloadService with a valid // storage directory will persist the requests across restarts. This means that // any feature requesting a download will have to implement a download::Client // interface so this class knows who to contact when a download completes after // a process restart. // See the embedder specific factories for creation options. class BackgroundDownloadService : public KeyedService { … }; } // namespace download #endif // COMPONENTS_DOWNLOAD_PUBLIC_BACKGROUND_SERVICE_BACKGROUND_DOWNLOAD_SERVICE_H_