Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1247)

Unified Diff: content/browser/download/download_file_impl.h

Issue 10861002: Revert 152213 - Replace the DownloadFileManager with direct ownership of DownloadFile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/download/download_file_factory.cc ('k') | content/browser/download/download_file_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/download/download_file_impl.h
===================================================================
--- content/browser/download/download_file_impl.h (revision 152281)
+++ content/browser/download/download_file_impl.h (working copy)
@@ -14,14 +14,13 @@
#include "base/timer.h"
#include "content/browser/download/base_file.h"
#include "content/browser/download/byte_stream.h"
-#include "content/public/browser/download_save_info.h"
+#include "content/browser/download/download_request_handle.h"
#include "net/base/net_log.h"
struct DownloadCreateInfo;
namespace content {
class ByteStreamReader;
-class DownloadDestinationObserver;
class DownloadManager;
class PowerSaveBlocker;
}
@@ -30,27 +29,17 @@
public:
// Takes ownership of the object pointed to by |request_handle|.
// |bound_net_log| will be used for logging the download file's events.
- // May be constructed on any thread. All methods besides the constructor
- // (including destruction) must occur on the FILE thread.
- //
- // Note that the DownloadFileImpl automatically reads from the passed in
- // stream, and sends updates and status of those reads to the
- // DownloadDestinationObserver.
- DownloadFileImpl(
- const content::DownloadSaveInfo& save_info,
- const GURL& url,
- const GURL& referrer_url,
- int64 received_bytes,
- bool calculate_hash,
- scoped_ptr<content::ByteStreamReader> stream,
- const net::BoundNetLog& bound_net_log,
- scoped_ptr<content::PowerSaveBlocker> power_save_blocker,
- base::WeakPtr<content::DownloadDestinationObserver> observer);
-
+ DownloadFileImpl(const DownloadCreateInfo* info,
+ scoped_ptr<content::ByteStreamReader> stream,
+ DownloadRequestHandleInterface* request_handle,
+ scoped_refptr<content::DownloadManager> download_manager,
+ bool calculate_hash,
+ scoped_ptr<content::PowerSaveBlocker> power_save_blocker,
+ const net::BoundNetLog& bound_net_log);
virtual ~DownloadFileImpl();
// DownloadFile functions.
- virtual void Initialize(const InitializeCallback& callback) OVERRIDE;
+ virtual content::DownloadInterruptReason Initialize() OVERRIDE;
virtual void Rename(const FilePath& full_path,
bool overwrite_existing_file,
const RenameCompletionCallback& callback) OVERRIDE;
@@ -63,6 +52,11 @@
virtual int64 CurrentSpeed() const OVERRIDE;
virtual bool GetHash(std::string* hash) OVERRIDE;
virtual std::string GetHashState() OVERRIDE;
+ virtual void CancelDownloadRequest() OVERRIDE;
+ virtual int Id() const OVERRIDE;
+ virtual content::DownloadManager* GetDownloadManager() OVERRIDE;
+ virtual const content::DownloadId& GlobalId() const OVERRIDE;
+ virtual std::string DebugString() const OVERRIDE;
protected:
// For test class overrides.
@@ -86,9 +80,20 @@
// with DownloadFile and get rid of BaseFile.
scoped_ptr<content::ByteStreamReader> stream_reader_;
+ // The unique identifier for this download, assigned at creation by
+ // the DownloadFileManager for its internal record keeping.
+ content::DownloadId id_;
+
// Used to trigger progress updates.
scoped_ptr<base::RepeatingTimer<DownloadFileImpl> > update_timer_;
+ // The handle to the request information. Used for operations outside the
+ // download system, specifically canceling a download.
+ scoped_ptr<DownloadRequestHandleInterface> request_handle_;
+
+ // DownloadManager this download belongs to.
+ scoped_refptr<content::DownloadManager> download_manager_;
+
// Statistics
size_t bytes_seen_;
base::TimeDelta disk_writes_time_;
@@ -96,8 +101,6 @@
net::BoundNetLog bound_net_log_;
- base::WeakPtr<content::DownloadDestinationObserver> observer_;
-
base::WeakPtrFactory<DownloadFileImpl> weak_factory_;
// RAII handle to keep the system from sleeping while we're downloading.
« no previous file with comments | « content/browser/download/download_file_factory.cc ('k') | content/browser/download/download_file_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698