| 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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 TARGET_DISPOSITION_PROMPT // Prompt the user for the actual | 75 TARGET_DISPOSITION_PROMPT // Prompt the user for the actual |
| 76 // target. Implies | 76 // target. Implies |
| 77 // TARGET_DISPOSITION_OVERWRITE. | 77 // TARGET_DISPOSITION_OVERWRITE. |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 // Callback used with AcquireFileAndDeleteDownload(). | 80 // Callback used with AcquireFileAndDeleteDownload(). |
| 81 typedef base::Callback<void(const base::FilePath&)> AcquireFileCallback; | 81 typedef base::Callback<void(const base::FilePath&)> AcquireFileCallback; |
| 82 | 82 |
| 83 static const uint32_t kInvalidId; | 83 static const uint32_t kInvalidId; |
| 84 | 84 |
| 85 static const char kEmptyFileHash[]; | |
| 86 | |
| 87 // Interface that observers of a particular download must implement in order | 85 // Interface that observers of a particular download must implement in order |
| 88 // to receive updates to the download's status. | 86 // to receive updates to the download's status. |
| 89 class CONTENT_EXPORT Observer { | 87 class CONTENT_EXPORT Observer { |
| 90 public: | 88 public: |
| 91 virtual void OnDownloadUpdated(DownloadItem* download) {} | 89 virtual void OnDownloadUpdated(DownloadItem* download) {} |
| 92 virtual void OnDownloadOpened(DownloadItem* download) {} | 90 virtual void OnDownloadOpened(DownloadItem* download) {} |
| 93 virtual void OnDownloadRemoved(DownloadItem* download) {} | 91 virtual void OnDownloadRemoved(DownloadItem* download) {} |
| 94 | 92 |
| 95 // Called when the download is being destroyed. This happens after | 93 // Called when the download is being destroyed. This happens after |
| 96 // every OnDownloadRemoved() as well as when the DownloadManager is going | 94 // every OnDownloadRemoved() as well as when the DownloadManager is going |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 // return the path requested. | 230 // return the path requested. |
| 233 virtual const base::FilePath& GetForcedFilePath() const = 0; | 231 virtual const base::FilePath& GetForcedFilePath() const = 0; |
| 234 | 232 |
| 235 // Returns the file-name that should be reported to the user. If a display | 233 // Returns the file-name that should be reported to the user. If a display |
| 236 // name has been explicitly set using SetDisplayName(), this function returns | 234 // name has been explicitly set using SetDisplayName(), this function returns |
| 237 // that display name. Otherwise returns the final target filename. | 235 // that display name. Otherwise returns the final target filename. |
| 238 virtual base::FilePath GetFileNameToReportUser() const = 0; | 236 virtual base::FilePath GetFileNameToReportUser() const = 0; |
| 239 | 237 |
| 240 virtual TargetDisposition GetTargetDisposition() const = 0; | 238 virtual TargetDisposition GetTargetDisposition() const = 0; |
| 241 | 239 |
| 242 // Final hash of completely downloaded file; not valid if | 240 // Final hash of completely downloaded file, or partial hash of an interrupted |
| 243 // GetState() != COMPLETED. | 241 // download; only valid if GetState() == COMPLETED or INTERRUPTED. If |
| 242 // non-empty the returned string contains a raw SHA-256 hash (i.e. not hex |
| 243 // encoded). |
| 244 virtual const std::string& GetHash() const = 0; | 244 virtual const std::string& GetHash() const = 0; |
| 245 | 245 |
| 246 // Intermediate hash state, for persisting partial downloads. | |
| 247 virtual const std::string& GetHashState() const = 0; | |
| 248 | |
| 249 // True if the file associated with the download has been removed by | 246 // True if the file associated with the download has been removed by |
| 250 // external action. | 247 // external action. |
| 251 virtual bool GetFileExternallyRemoved() const = 0; | 248 virtual bool GetFileExternallyRemoved() const = 0; |
| 252 | 249 |
| 253 // If the file is successfully deleted, then GetFileExternallyRemoved() will | 250 // If the file is successfully deleted, then GetFileExternallyRemoved() will |
| 254 // become true, GetFullPath() will become empty, and | 251 // become true, GetFullPath() will become empty, and |
| 255 // DownloadItem::OnDownloadUpdated() will be called. Does nothing if | 252 // DownloadItem::OnDownloadUpdated() will be called. Does nothing if |
| 256 // GetState() == COMPLETE or GetFileExternallyRemoved() is already true or | 253 // GetState() == COMPLETE or GetFileExternallyRemoved() is already true or |
| 257 // GetFullPath() is already empty. The callback is always run, and it is | 254 // GetFullPath() is already empty. The callback is always run, and it is |
| 258 // always run asynchronously. It will be passed true if the file is | 255 // always run asynchronously. It will be passed true if the file is |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 // return |name|. Has no effect on the final target filename. | 339 // return |name|. Has no effect on the final target filename. |
| 343 virtual void SetDisplayName(const base::FilePath& name) = 0; | 340 virtual void SetDisplayName(const base::FilePath& name) = 0; |
| 344 | 341 |
| 345 // Debug/testing ------------------------------------------------------------- | 342 // Debug/testing ------------------------------------------------------------- |
| 346 virtual std::string DebugString(bool verbose) const = 0; | 343 virtual std::string DebugString(bool verbose) const = 0; |
| 347 }; | 344 }; |
| 348 | 345 |
| 349 } // namespace content | 346 } // namespace content |
| 350 | 347 |
| 351 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_ITEM_H_ | 348 #endif // CONTENT_PUBLIC_BROWSER_DOWNLOAD_ITEM_H_ |
| OLD | NEW |