diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-15 10:20:33 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-15 10:28:57 +0000 |
commit | d17ea114e5ef69ad5d5d7413280a13e6428098aa (patch) | |
tree | 2c01a75df69f30d27b1432467cfe7c1467a498da /chromium/content/browser/download/download_manager_impl.h | |
parent | 8c5c43c7b138c9b4b0bf56d946e61d3bbc111bec (diff) | |
download | qtwebengine-chromium-d17ea114e5ef69ad5d5d7413280a13e6428098aa.tar.gz |
BASELINE: Update Chromium to 67.0.3396.47
Change-Id: Idcb1341782e417561a2473eeecc82642dafda5b7
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium/content/browser/download/download_manager_impl.h')
-rw-r--r-- | chromium/content/browser/download/download_manager_impl.h | 108 |
1 files changed, 66 insertions, 42 deletions
diff --git a/chromium/content/browser/download/download_manager_impl.h b/chromium/content/browser/download/download_manager_impl.h index f9698955656..13ae60ba113 100644 --- a/chromium/content/browser/download/download_manager_impl.h +++ b/chromium/content/browser/download/download_manager_impl.h @@ -20,9 +20,9 @@ #include "base/observer_list.h" #include "base/sequenced_task_runner_helpers.h" #include "base/synchronization/lock.h" +#include "components/download/public/common/download_item_impl_delegate.h" #include "components/download/public/common/download_url_parameters.h" -#include "content/browser/download/download_item_impl_delegate.h" -#include "content/browser/download/url_download_handler.h" +#include "components/download/public/common/url_download_handler.h" #include "content/browser/loader/navigation_url_loader.h" #include "content/common/content_export.h" #include "content/public/browser/browser_thread.h" @@ -33,22 +33,24 @@ #include "services/network/public/mojom/url_loader.mojom.h" namespace download { +class DownloadFileFactory; +class DownloadItemFactory; +class DownloadItemImpl; class DownloadRequestHandleInterface; } namespace content { -class DownloadFileFactory; -class DownloadItemFactory; -class DownloadItemImpl; class ResourceContext; +class StoragePartitionImpl; +class URLLoaderFactoryGetter; -class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, - public UrlDownloadHandler::Delegate, - private DownloadItemImplDelegate { +class CONTENT_EXPORT DownloadManagerImpl + : public DownloadManager, + public download::UrlDownloadHandler::Delegate, + private download::DownloadItemImplDelegate { public: - using DownloadItemImplCreated = base::Callback<void(DownloadItemImpl*)>; - using UniqueUrlDownloadHandlerPtr = - std::unique_ptr<UrlDownloadHandler, BrowserThread::DeleteOnIOThread>; + using DownloadItemImplCreated = + base::Callback<void(download::DownloadItemImpl*)>; // Caller guarantees that |net_log| will remain valid // for the lifetime of DownloadManagerImpl (until Shutdown() is called). @@ -75,10 +77,12 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, DownloadManagerDelegate* GetDelegate() const override; void Shutdown() override; void GetAllDownloads(DownloadVector* result) override; - void StartDownload(std::unique_ptr<download::DownloadCreateInfo> info, - std::unique_ptr<DownloadManager::InputStream> stream, - const download::DownloadUrlParameters::OnStartedCallback& - on_started) override; + void StartDownload( + std::unique_ptr<download::DownloadCreateInfo> info, + std::unique_ptr<download::InputStream> stream, + scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory, + const download::DownloadUrlParameters::OnStartedCallback& on_started) + override; int RemoveDownloadsByURLAndTime( const base::Callback<bool(const GURL&)>& url_filter, @@ -130,17 +134,21 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, // UrlDownloadHandler::Delegate implementation. void OnUrlDownloadStarted( std::unique_ptr<download::DownloadCreateInfo> download_create_info, - std::unique_ptr<DownloadManager::InputStream> stream, + std::unique_ptr<download::InputStream> stream, + scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory, const download::DownloadUrlParameters::OnStartedCallback& callback) override; - void OnUrlDownloadStopped(UrlDownloadHandler* downloader) override; + void OnUrlDownloadStopped(download::UrlDownloadHandler* downloader) override; + void OnUrlDownloadHandlerCreated( + download::UrlDownloadHandler::UniqueUrlDownloadHandlerPtr downloader) + override; // For testing; specifically, accessed from TestFileErrorInjector. void SetDownloadItemFactoryForTesting( - std::unique_ptr<DownloadItemFactory> item_factory); + std::unique_ptr<download::DownloadItemFactory> item_factory); void SetDownloadFileFactoryForTesting( - std::unique_ptr<DownloadFileFactory> file_factory); - virtual DownloadFileFactory* GetDownloadFileFactoryForTesting(); + std::unique_ptr<download::DownloadFileFactory> file_factory); + virtual download::DownloadFileFactory* GetDownloadFileFactoryForTesting(); // Helper function to initiate a download request. This function initiates // the download using functionality provided by the @@ -165,8 +173,9 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, private: using DownloadSet = std::set<download::DownloadItem*>; - using DownloadGuidMap = std::unordered_map<std::string, DownloadItemImpl*>; - using DownloadItemImplVector = std::vector<DownloadItemImpl*>; + using DownloadGuidMap = + std::unordered_map<std::string, download::DownloadItemImpl*>; + using DownloadItemImplVector = std::vector<download::DownloadItemImpl*>; // For testing. friend class DownloadManagerTest; @@ -174,7 +183,8 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, void StartDownloadWithId( std::unique_ptr<download::DownloadCreateInfo> info, - std::unique_ptr<DownloadManager::InputStream> stream, + std::unique_ptr<download::InputStream> stream, + scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory, const download::DownloadUrlParameters::OnStartedCallback& on_started, bool new_download, uint32_t id); @@ -196,8 +206,9 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, // Create a new active item based on the info. Separate from // StartDownload() for testing. - DownloadItemImpl* CreateActiveItem(uint32_t id, - const download::DownloadCreateInfo& info); + download::DownloadItemImpl* CreateActiveItem( + uint32_t id, + const download::DownloadCreateInfo& info); // Get next download id. |callback| is called on the UI thread and may // be called synchronously. @@ -210,30 +221,36 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, // Overridden from DownloadItemImplDelegate // (Note that |GetBrowserContext| are present in both interfaces.) - void DetermineDownloadTarget(DownloadItemImpl* item, + void DetermineDownloadTarget(download::DownloadItemImpl* item, const DownloadTargetCallback& callback) override; - bool ShouldCompleteDownload(DownloadItemImpl* item, + bool ShouldCompleteDownload(download::DownloadItemImpl* item, const base::Closure& complete_callback) override; bool ShouldOpenFileBasedOnExtension(const base::FilePath& path) override; - bool ShouldOpenDownload(DownloadItemImpl* item, + bool ShouldOpenDownload(download::DownloadItemImpl* item, const ShouldOpenDownloadCallback& callback) override; - void CheckForFileRemoval(DownloadItemImpl* download_item) override; + void CheckForFileRemoval(download::DownloadItemImpl* download_item) override; std::string GetApplicationClientIdForFileScanning() const override; void ResumeInterruptedDownload( std::unique_ptr<download::DownloadUrlParameters> params, - uint32_t id) override; - void OpenDownload(DownloadItemImpl* download) override; - bool IsMostRecentDownloadItemAtFilePath(DownloadItemImpl* download) override; - void ShowDownloadInShell(DownloadItemImpl* download) override; - void DownloadRemoved(DownloadItemImpl* download) override; - - void AddUrlDownloadHandler(UniqueUrlDownloadHandlerPtr downloader); + uint32_t id, + const GURL& site_url) override; + void OpenDownload(download::DownloadItemImpl* download) override; + bool IsMostRecentDownloadItemAtFilePath( + download::DownloadItemImpl* download) override; + void ShowDownloadInShell(download::DownloadItemImpl* download) override; + void DownloadRemoved(download::DownloadItemImpl* download) override; + void DownloadInterrupted(download::DownloadItemImpl* download) override; + base::Optional<download::DownloadEntry> GetInProgressEntry( + download::DownloadItemImpl* download) override; + bool IsOffTheRecord() const override; + void ReportBytesWasted(download::DownloadItemImpl* download) override; // Helper method to start or resume a download. void BeginDownloadInternal( std::unique_ptr<download::DownloadUrlParameters> params, std::unique_ptr<storage::BlobDataHandle> blob_data_handle, - uint32_t id); + uint32_t id, + StoragePartitionImpl* storage_partition); void InterceptNavigationOnChecksComplete( ResourceRequestInfo::WebContentsGetter web_contents_getter, @@ -253,17 +270,22 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, std::unique_ptr<network::ResourceRequest> resource_request, int render_process_id, int render_frame_id, + const GURL& site_url, + const GURL& tab_url, + const GURL& tab_referrer_url, std::vector<GURL> url_chain, const base::Optional<std::string>& suggested_filename, scoped_refptr<network::ResourceResponse> response, net::CertStatus cert_status, - network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints); + network::mojom::URLLoaderClientEndpointsPtr url_loader_client_endpoints, + scoped_refptr<URLLoaderFactoryGetter> url_loader_factory_getter, + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); // Factory for creation of downloads items. - std::unique_ptr<DownloadItemFactory> item_factory_; + std::unique_ptr<download::DownloadItemFactory> item_factory_; // Factory for the creation of download files. - std::unique_ptr<DownloadFileFactory> file_factory_; + std::unique_ptr<download::DownloadFileFactory> file_factory_; // |downloads_| is the owning set for all downloads known to the // DownloadManager. This includes downloads started by the user in @@ -271,7 +293,8 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, // "save page as" downloads. // TODO(asanka): Remove this container in favor of downloads_by_guid_ as a // part of http://crbug.com/593020. - std::unordered_map<uint32_t, std::unique_ptr<DownloadItemImpl>> downloads_; + std::unordered_map<uint32_t, std::unique_ptr<download::DownloadItemImpl>> + downloads_; // Same as the above, but maps from GUID to download item. Note that the // container is case sensitive. Hence the key needs to be normalized to @@ -302,7 +325,8 @@ class CONTENT_EXPORT DownloadManagerImpl : public DownloadManager, // Allows an embedder to control behavior. Guaranteed to outlive this object. DownloadManagerDelegate* delegate_; - std::vector<UniqueUrlDownloadHandlerPtr> url_download_handlers_; + std::vector<download::UrlDownloadHandler::UniqueUrlDownloadHandlerPtr> + url_download_handlers_; base::WeakPtrFactory<DownloadManagerImpl> weak_factory_; |