| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Each download is represented by a DownloadItem, and all DownloadItems | 5 // Each download is represented by a DownloadItem, and all DownloadItems |
| 6 // are owned by the DownloadManager which maintains a global list of all | 6 // are owned by the DownloadManager which maintains a global list of all |
| 7 // downloads. DownloadItems are created when a user initiates a download, | 7 // downloads. DownloadItems are created when a user initiates a download, |
| 8 // and exist for the duration of the browser life time. | 8 // and exist for the duration of the browser life time. |
| 9 // | 9 // |
| 10 // Download observers: | 10 // Download observers: |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 class Time; | 35 class Time; |
| 36 class TimeDelta; | 36 class TimeDelta; |
| 37 } | 37 } |
| 38 | 38 |
| 39 namespace content { | 39 namespace content { |
| 40 | 40 |
| 41 class BrowserContext; | 41 class BrowserContext; |
| 42 class DownloadId; | 42 class DownloadId; |
| 43 class DownloadManager; | 43 class DownloadManager; |
| 44 class WebContents; | 44 class WebContents; |
| 45 struct DownloadCreateInfo; | |
| 46 struct DownloadPersistentStoreInfo; | |
| 47 | 45 |
| 48 // One DownloadItem per download. This is the model class that stores all the | 46 // One DownloadItem per download. This is the model class that stores all the |
| 49 // state for a download. Multiple views, such as a tab's download shelf and the | 47 // state for a download. Multiple views, such as a tab's download shelf and the |
| 50 // Destination tab's download view, may refer to a given DownloadItem. | 48 // Destination tab's download view, may refer to a given DownloadItem. |
| 51 // | 49 // |
| 52 // This is intended to be used only on the UI thread. | 50 // This is intended to be used only on the UI thread. |
| 53 class CONTENT_EXPORT DownloadItem : public base::SupportsUserData { | 51 class CONTENT_EXPORT DownloadItem : public base::SupportsUserData { |
| 54 public: | 52 public: |
| 55 enum DownloadState { | 53 enum DownloadState { |
| 56 // Download is actively progressing. | 54 // Download is actively progressing. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 82 }; | 80 }; |
| 83 | 81 |
| 84 // How the final target path should be used. | 82 // How the final target path should be used. |
| 85 enum TargetDisposition { | 83 enum TargetDisposition { |
| 86 TARGET_DISPOSITION_OVERWRITE, // Overwrite if the target already exists. | 84 TARGET_DISPOSITION_OVERWRITE, // Overwrite if the target already exists. |
| 87 TARGET_DISPOSITION_PROMPT // Prompt the user for the actual | 85 TARGET_DISPOSITION_PROMPT // Prompt the user for the actual |
| 88 // target. Implies | 86 // target. Implies |
| 89 // TARGET_DISPOSITION_OVERWRITE. | 87 // TARGET_DISPOSITION_OVERWRITE. |
| 90 }; | 88 }; |
| 91 | 89 |
| 92 // A fake download table ID which represents a download that has started, | |
| 93 // but is not yet in the table. | |
| 94 static const int kUninitializedHandle; | |
| 95 | |
| 96 static const char kEmptyFileHash[]; | 90 static const char kEmptyFileHash[]; |
| 97 | 91 |
| 98 // Interface that observers of a particular download must implement in order | 92 // Interface that observers of a particular download must implement in order |
| 99 // to receive updates to the download's status. | 93 // to receive updates to the download's status. |
| 100 class CONTENT_EXPORT Observer { | 94 class CONTENT_EXPORT Observer { |
| 101 public: | 95 public: |
| 102 virtual void OnDownloadUpdated(DownloadItem* download) {} | 96 virtual void OnDownloadUpdated(DownloadItem* download) {} |
| 103 virtual void OnDownloadOpened(DownloadItem* download) {} | 97 virtual void OnDownloadOpened(DownloadItem* download) {} |
| 104 virtual void OnDownloadRemoved(DownloadItem* download) {} | 98 virtual void OnDownloadRemoved(DownloadItem* download) {} |
| 105 | 99 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 // still in progress, marks the download to be opened when it is complete. | 144 // still in progress, marks the download to be opened when it is complete. |
| 151 virtual void OpenDownload() = 0; | 145 virtual void OpenDownload() = 0; |
| 152 | 146 |
| 153 // Show the download via the OS shell. | 147 // Show the download via the OS shell. |
| 154 virtual void ShowDownloadInShell() = 0; | 148 virtual void ShowDownloadInShell() = 0; |
| 155 | 149 |
| 156 // State accessors ----------------------------------------------------------- | 150 // State accessors ----------------------------------------------------------- |
| 157 | 151 |
| 158 virtual int32 GetId() const = 0; | 152 virtual int32 GetId() const = 0; |
| 159 virtual DownloadId GetGlobalId() const = 0; | 153 virtual DownloadId GetGlobalId() const = 0; |
| 160 virtual int64 GetDbHandle() const = 0; | |
| 161 virtual DownloadState GetState() const = 0; | 154 virtual DownloadState GetState() const = 0; |
| 162 | 155 |
| 163 // Only valid if |GetState() == DownloadItem::INTERRUPTED|. | 156 // Only valid if |GetState() == DownloadItem::INTERRUPTED|. |
| 164 virtual DownloadInterruptReason GetLastReason() const = 0; | 157 virtual DownloadInterruptReason GetLastReason() const = 0; |
| 165 | 158 |
| 166 virtual bool IsPaused() const = 0; | 159 virtual bool IsPaused() const = 0; |
| 167 virtual bool IsTemporary() const = 0; | 160 virtual bool IsTemporary() const = 0; |
| 168 virtual bool IsPersisted() const = 0; | |
| 169 | 161 |
| 170 // Convenience routines for accessing GetState() results conceptually ----- | 162 // Convenience routines for accessing GetState() results conceptually ----- |
| 171 | 163 |
| 172 // Returns true if the download needs more data. | 164 // Returns true if the download needs more data. |
| 173 virtual bool IsPartialDownload() const = 0; | 165 virtual bool IsPartialDownload() const = 0; |
| 174 | 166 |
| 175 // Returns true if the download is still receiving data. | 167 // Returns true if the download is still receiving data. |
| 176 virtual bool IsInProgress() const = 0; | 168 virtual bool IsInProgress() const = 0; |
| 177 | 169 |
| 178 // Returns true if the download has been cancelled or was interrupted. | 170 // Returns true if the download has been cancelled or was interrupted. |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 virtual bool GetOpenWhenComplete() const = 0; | 284 virtual bool GetOpenWhenComplete() const = 0; |
| 293 | 285 |
| 294 // Returns true if the download has been auto-opened by the system. | 286 // Returns true if the download has been auto-opened by the system. |
| 295 virtual bool GetAutoOpened() = 0; | 287 virtual bool GetAutoOpened() = 0; |
| 296 | 288 |
| 297 // Returns true if the download has been opened. | 289 // Returns true if the download has been opened. |
| 298 virtual bool GetOpened() const = 0; | 290 virtual bool GetOpened() const = 0; |
| 299 | 291 |
| 300 // Misc State accessors --------------------------------------------------- | 292 // Misc State accessors --------------------------------------------------- |
| 301 | 293 |
| 302 virtual DownloadPersistentStoreInfo GetPersistentStoreInfo() const = 0; | |
| 303 virtual BrowserContext* GetBrowserContext() const = 0; | 294 virtual BrowserContext* GetBrowserContext() const = 0; |
| 304 virtual WebContents* GetWebContents() const = 0; | 295 virtual WebContents* GetWebContents() const = 0; |
| 305 | 296 |
| 306 // External state transitions/setters ---------------------------------------- | 297 // External state transitions/setters ---------------------------------------- |
| 307 // TODO(rdsmith): These should all be removed; the download item should | 298 // TODO(rdsmith): These should all be removed; the download item should |
| 308 // control its own state transitions. | 299 // control its own state transitions. |
| 309 | 300 |
| 310 // Called if a check of the download contents was performed and the results of | 301 // Called if a check of the download contents was performed and the results of |
| 311 // the test are available. This should only be called after AllDataSaved() is | 302 // the test are available. This should only be called after AllDataSaved() is |
| 312 // true. | 303 // true. |
| (...skipping 15 matching lines...) Expand all Loading... |
| 328 virtual void SetDisplayName(const FilePath& name) = 0; | 319 virtual void SetDisplayName(const FilePath& name) = 0; |
| 329 | 320 |
| 330 // Debug/testing ------------------------------------------------------------- | 321 // Debug/testing ------------------------------------------------------------- |
| 331 virtual std::string DebugString(bool verbose) const = 0; | 322 virtual std::string DebugString(bool verbose) const = 0; |
| 332 virtual void MockDownloadOpenForTesting() = 0; | 323 virtual void MockDownloadOpenForTesting() = 0; |
| 333 }; | 324 }; |
| 334 | 325 |
| 335 } // namespace content | 326 } // namespace content |
| 336 | 327 |
| 337 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_ITEM_H_ | 328 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_ITEM_H_ |
| OLD | NEW |