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

Unified Diff: chrome/browser/download/download_item.h

Issue 3127008: Preliminary work on resuming downloads whose connections have expired.
Patch Set: Waiting to send download automation error message until after other downloads are canceled. Created 10 years, 3 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
Index: chrome/browser/download/download_item.h
diff --git a/chrome/browser/download/download_item.h b/chrome/browser/download/download_item.h
index 3431bc7976fc57c74e1fc26620a57b3dbd26f758..d3660ed58caddfcb9be9f844439407af0b41752d 100644
--- a/chrome/browser/download/download_item.h
+++ b/chrome/browser/download/download_item.h
@@ -39,7 +39,8 @@ class DownloadItem {
IN_PROGRESS,
COMPLETE,
CANCELLED,
- REMOVING
+ REMOVING,
+ INTERRUPTED
};
enum SafetyState {
@@ -60,6 +61,9 @@ class DownloadItem {
// Called when a downloaded file has been opened.
virtual void OnDownloadOpened(DownloadItem* download) = 0;
+ // Called when a downloaded file has been interrupted (had an error).
+ virtual void OnDownloadInterrupted(DownloadItem* download) = 0;
+
protected:
virtual ~Observer() {}
};
@@ -132,6 +136,15 @@ class DownloadItem {
// is finished.
void Finished();
+ // Download operation had an error.
+ // |size| is the amount of data received so far, and |os_error| is the error
+ // code that the operation received.
+ void Interrupted(int64 size, int os_error);
+
+ // User has resumed a download after an interruption.
+ // |new_request_id| is the new request ID associated with the download.
+ void Resumed(int new_request_id);
+
// The user wants to remove the download from the views and history. If
// |delete_file| is true, the file is deleted on the disk.
void Remove(bool delete_file);
@@ -162,6 +175,9 @@ class DownloadItem {
// Returns true if this item matches |query|. |query| must be lower-cased.
bool MatchesQuery(const string16& query) const;
+ bool IsPartialDownload() const;
+ bool IsInterruptedDownload() const;
+
// Accessors
DownloadState state() const { return state_; }
FilePath full_path() const { return full_path_; }
@@ -173,6 +189,7 @@ class DownloadItem {
int64 total_bytes() const { return total_bytes_; }
void set_total_bytes(int64 total_bytes) { total_bytes_ = total_bytes; }
int64 received_bytes() const { return received_bytes_; }
+ int last_os_error() const { return last_os_error_; }
int32 id() const { return id_; }
base::Time start_time() const { return start_time_; }
void set_db_handle(int64 handle) { db_handle_ = handle; }
@@ -247,6 +264,9 @@ class DownloadItem {
// Current received bytes
int64 received_bytes_;
+ // Last error.
+ int last_os_error_;
+
// Start time for calculating remaining time
base::TimeTicks start_tick_;

Powered by Google App Engine
This is Rietveld 408576698