Chromium Code Reviews| Index: content/browser/download/download_item_impl.h |
| diff --git a/content/browser/download/download_item_impl.h b/content/browser/download/download_item_impl.h |
| index ad8ed4db2fe8bc2d999a1149777831f7503bc0b2..bf7d1bdcbb50ac488114a979a2030589d2bdd133 100644 |
| --- a/content/browser/download/download_item_impl.h |
| +++ b/content/browser/download/download_item_impl.h |
| @@ -207,6 +207,41 @@ class CONTENT_EXPORT DownloadItemImpl : public content::DownloadItem { |
| virtual void SetDbHandle(int64 handle); |
| private: |
| + // Fine grained states of a download. |
| + enum DownloadInternalState { |
| + // Unless otherwise specified, state transitions are linear forward |
| + // in this list. |
| + |
| + // Includes both before and after file name determination. |
| + // TODO(rdsmith): Put in state variable for file name determination. |
|
benjhayden
2012/09/19 15:44:35
Why not go ahead and do this now?
Randy Smith (Not in Mondays)
2012/09/19 20:46:39
Not relevant to the focus of this CL, and after si
|
| + IN_PROGRESS_INTERNAL, |
| + |
| + // Between commit point (dispatch of download file release) and |
| + // completed. Embedder may be opening the file in this state. |
| + COMPLETING_INTERNAL, |
| + |
| + // After embedder has had a chance to auto-open. User may now open |
| + // or auto-open based on extension. |
| + COMPLETE_INTERNAL, |
| + |
| + // User has cancelled the download. |
| + // Only incoming transition IN_PROGRESS-> |
| + CANCELLED_INTERNAL, |
|
benjhayden
2012/09/19 15:44:35
I thought we wanted to merge this with interrupted
Randy Smith (Not in Mondays)
2012/09/19 20:46:39
Shooting from the hip, 2-3 hours of coding and abo
|
| + |
| + // An error has interrupted the download. |
| + // Only incoming transition IN_PROGRESS-> |
| + INTERRUPTED_INTERNAL, |
| + |
| + MAX_DOWNLOAD_INTERNAL_STATE, |
| + }; |
| + |
| + // Map from DownloadInternalState -> DownloadState. |
| + static const DownloadState kInternalStateMap[]; |
| + |
| + // Map from DownloadState -> DownloadInternalState (for external |
| + // initialization). |
| + static const DownloadInternalState kExternalStateMap[]; |
| + |
| // Normal progression of a download ------------------------------------------ |
| // These are listed in approximately chronological order. There are also |
| @@ -249,13 +284,16 @@ class CONTENT_EXPORT DownloadItemImpl : public content::DownloadItem { |
| const std::string& final_hash); |
| // Call to transition state; all state transitions should go through this. |
| - void TransitionTo(DownloadState new_state); |
| + void TransitionTo(DownloadInternalState new_state); |
| // Set the |danger_type_| and invoke obserers if necessary. |
| void SetDangerType(content::DownloadDangerType danger_type); |
| void SetFullPath(const FilePath& new_path); |
| + // Debugging routines -------------------------------------------------------- |
| + static const char* DebugDownloadStateString(DownloadInternalState state); |
| + |
| // The handle to the request information. Used for operations outside the |
| // download system. |
| scoped_ptr<DownloadRequestHandleInterface> request_handle_; |
| @@ -353,7 +391,7 @@ class CONTENT_EXPORT DownloadItemImpl : public content::DownloadItem { |
| base::TimeTicks start_tick_; |
| // The current state of this download. |
| - DownloadState state_; |
| + DownloadInternalState state_; |
| // Current danger type for the download. |
| content::DownloadDangerType danger_type_; |