| 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 083a1591ab46961772d844a62fc0e199b27c90fe..2c501a993403df74aef6cba108c67cad843e6211 100644 | 
| --- a/content/browser/download/download_item_impl.h | 
| +++ b/content/browser/download/download_item_impl.h | 
| @@ -210,33 +210,72 @@ class CONTENT_EXPORT DownloadItemImpl | 
| virtual void MarkAsComplete(); | 
|  | 
| private: | 
| -  // Fine grained states of a download. | 
| -  enum DownloadInternalState { | 
| -    // Unless otherwise specified, state transitions are linear forward | 
| -    // in this list. | 
| +  // Fine grained states of a download. Note that active downloads are created | 
| +  // in IN_PROGRESS_INTERNAL state. However, downloads creates via history can | 
| +  // be created in COMPLETE_INTERNAL, CANCELLED_INTERNAL and | 
| +  // INTERRUPTED_INTERNAL. | 
|  | 
| -    // Includes both before and after file name determination. | 
| +  enum DownloadInternalState { | 
| +    // Includes both before and after file name determination, and paused | 
| +    // downloads. | 
| // TODO(rdsmith): Put in state variable for file name determination. | 
| +    // Transitions from: | 
| +    //   <Initial creation>    Active downloads are created in this state. | 
| +    //   RESUMING_INTERNAL | 
| +    // Transitions to: | 
| +    //   COMPLETING_INTERNAL   On final rename completion. | 
| +    //   CANCELLED_INTERNAL    On cancel. | 
| +    //   INTERRUPTED_INTERNAL  On interrupt. | 
| +    //   COMPLETE_INTERNAL     On SavePackage download completion. | 
| IN_PROGRESS_INTERNAL, | 
|  | 
| // Between commit point (dispatch of download file release) and completed. | 
| -    // Embedder may be opening the file in this state.  Note that the | 
| -    // DownloadItem may be deleted (by shutdown) or interrupted (e.g. due to a | 
| -    // failure during AnnotateWithSourceInformation()) in this state. | 
| +    // Embedder may be opening the file in this state. | 
| +    // Transitions from: | 
| +    //   IN_PROGRESS_INTERNAL | 
| +    // Transitions to: | 
| +    //   COMPLETE_INTERNAL     On successful completion. | 
| COMPLETING_INTERNAL, | 
|  | 
| // After embedder has had a chance to auto-open.  User may now open | 
| // or auto-open based on extension. | 
| +    // Transitions from: | 
| +    //   COMPLETING_INTERNAL | 
| +    //   IN_PROGRESS_INTERNAL  SavePackage only. | 
| +    //   <Initial creation>    Completed persisted downloads. | 
| +    // Transitions to: | 
| +    //   <none>                Terminal state. | 
| COMPLETE_INTERNAL, | 
|  | 
| // User has cancelled the download. | 
| -    // Only incoming transition IN_PROGRESS-> | 
| +    // Transitions from: | 
| +    //   IN_PROGRESS_INTERNAL | 
| +    //   INTERRUPTED_INTERNAL | 
| +    //   RESUMING_INTERNAL | 
| +    //   <Initial creation>    Canceleld persisted downloads. | 
| +    // Transitions to: | 
| +    //   <none>                Terminal state. | 
| CANCELLED_INTERNAL, | 
|  | 
| // An error has interrupted the download. | 
| -    // Only incoming transition IN_PROGRESS-> | 
| +    // Transitions from: | 
| +    //   IN_PROGRESS_INTERNAL | 
| +    //   RESUMING_INTERNAL | 
| +    //   <Initial creation>    Interrupted persisted downloads. | 
| +    // Transitions to: | 
| +    //   RESUMING_INTERNAL     On resumption. | 
| INTERRUPTED_INTERNAL, | 
|  | 
| +    // A request to resume this interrupted download is in progress. | 
| +    // Transitions from: | 
| +    //   INTERRUPTED_INTERNAL | 
| +    // Transitions to: | 
| +    //   IN_PROGRESS_INTERNAL  Once a server response is received from a | 
| +    //                         resumption. | 
| +    //   INTERRUPTED_INTERNAL  If the resumption request fails. | 
| +    //   CANCELLED_INTERNAL    On cancel. | 
| +    RESUMING_INTERNAL, | 
| + | 
| MAX_DOWNLOAD_INTERNAL_STATE, | 
| }; | 
|  | 
| @@ -297,6 +336,9 @@ class CONTENT_EXPORT DownloadItemImpl | 
| // is completed. | 
| void Completed(); | 
|  | 
| +  // Callback invoked when the URLRequest for a download resumption has started. | 
| +  void OnResumeRequestStarted(DownloadItem* item, net::Error error); | 
| + | 
| // Helper routines ----------------------------------------------------------- | 
|  | 
| // Indicate that an error has occurred on the download. | 
|  |