| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // The DownloadManager object manages the process of downloading, including | 5 // The DownloadManager object manages the process of downloading, including |
| 6 // updates to the history system and providing the information for displaying | 6 // updates to the history system and providing the information for displaying |
| 7 // the downloads view in the Destinations tab. There is one DownloadManager per | 7 // the downloads view in the Destinations tab. There is one DownloadManager per |
| 8 // active profile in Chrome. | 8 // active profile in Chrome. |
| 9 // | 9 // |
| 10 // Download observers: | 10 // Download observers: |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 | 35 |
| 36 #include "base/basictypes.h" | 36 #include "base/basictypes.h" |
| 37 #include "base/file_path.h" | 37 #include "base/file_path.h" |
| 38 #include "base/gtest_prod_util.h" | 38 #include "base/gtest_prod_util.h" |
| 39 #include "base/memory/ref_counted.h" | 39 #include "base/memory/ref_counted.h" |
| 40 #include "base/memory/weak_ptr.h" | 40 #include "base/memory/weak_ptr.h" |
| 41 #include "base/observer_list.h" | 41 #include "base/observer_list.h" |
| 42 #include "base/scoped_ptr.h" | 42 #include "base/scoped_ptr.h" |
| 43 #include "base/time.h" | 43 #include "base/time.h" |
| 44 #include "chrome/browser/download/download_item.h" | 44 #include "chrome/browser/download/download_item.h" |
| 45 #include "chrome/browser/download/download_request_handle.h" |
| 45 #include "chrome/browser/download/download_status_updater_delegate.h" | 46 #include "chrome/browser/download/download_status_updater_delegate.h" |
| 46 #include "chrome/browser/download/download_process_handle.h" | |
| 47 #include "chrome/browser/ui/shell_dialogs.h" | 47 #include "chrome/browser/ui/shell_dialogs.h" |
| 48 #include "content/browser/browser_thread.h" | 48 #include "content/browser/browser_thread.h" |
| 49 | 49 |
| 50 class DownloadFileManager; | 50 class DownloadFileManager; |
| 51 class DownloadHistory; | 51 class DownloadHistory; |
| 52 class DownloadPrefs; | 52 class DownloadPrefs; |
| 53 class DownloadStatusUpdater; | 53 class DownloadStatusUpdater; |
| 54 class GURL; | 54 class GURL; |
| 55 class Profile; | 55 class Profile; |
| 56 class ResourceDispatcherHost; | 56 class ResourceDispatcherHost; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 // Notifications sent from the download thread to the UI thread | 117 // Notifications sent from the download thread to the UI thread |
| 118 void StartDownload(int32 id); | 118 void StartDownload(int32 id); |
| 119 void UpdateDownload(int32 download_id, int64 size); | 119 void UpdateDownload(int32 download_id, int64 size); |
| 120 // |hash| is sha256 hash for the downloaded file. It is empty when the hash | 120 // |hash| is sha256 hash for the downloaded file. It is empty when the hash |
| 121 // is not available. | 121 // is not available. |
| 122 void OnResponseCompleted(int32 download_id, int64 size, int os_error, | 122 void OnResponseCompleted(int32 download_id, int64 size, int os_error, |
| 123 const std::string& hash); | 123 const std::string& hash); |
| 124 | 124 |
| 125 // Called from a view when a user clicks a UI button or link. | 125 // Called from a view when a user clicks a UI button or link. |
| 126 void DownloadCancelled(int32 download_id); | 126 void DownloadCancelled(int32 download_id); |
| 127 void PauseDownload(int32 download_id, bool pause); | |
| 128 void RemoveDownload(int64 download_handle); | 127 void RemoveDownload(int64 download_handle); |
| 129 | 128 |
| 130 // Determine if the download is ready for completion, i.e. has had | 129 // Determine if the download is ready for completion, i.e. has had |
| 131 // all data saved, and completed the filename determination and | 130 // all data saved, and completed the filename determination and |
| 132 // history insertion. | 131 // history insertion. |
| 133 bool IsDownloadReadyForCompletion(DownloadItem* download); | 132 bool IsDownloadReadyForCompletion(DownloadItem* download); |
| 134 | 133 |
| 135 // If all pre-requisites have been met, complete download processing, i.e. | 134 // If all pre-requisites have been met, complete download processing, i.e. |
| 136 // do internal cleanup, file rename, and potentially auto-open. | 135 // do internal cleanup, file rename, and potentially auto-open. |
| 137 // (Dangerous downloads still may block on user acceptance after this | 136 // (Dangerous downloads still may block on user acceptance after this |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 void OnPathExistenceAvailable(int32 download_id, | 291 void OnPathExistenceAvailable(int32 download_id, |
| 293 DownloadStateInfo new_state); | 292 DownloadStateInfo new_state); |
| 294 | 293 |
| 295 // Called back after a target path for the file to be downloaded to has been | 294 // Called back after a target path for the file to be downloaded to has been |
| 296 // determined, either automatically based on the suggested file name, or by | 295 // determined, either automatically based on the suggested file name, or by |
| 297 // the user in a Save As dialog box. | 296 // the user in a Save As dialog box. |
| 298 void ContinueDownloadWithPath(DownloadItem* download, | 297 void ContinueDownloadWithPath(DownloadItem* download, |
| 299 const FilePath& chosen_file); | 298 const FilePath& chosen_file); |
| 300 | 299 |
| 301 // Download cancel helper function. | 300 // Download cancel helper function. |
| 302 // |process_handle| is passed by value because it is ultimately passed to | 301 // |request_handle| is passed by value because it is ultimately passed to |
| 303 // other threads, and this way we don't have to worry about object lifetimes. | 302 // other threads, and this way we don't have to worry about object lifetimes. |
| 304 void DownloadCancelledInternal(int download_id, | 303 void DownloadCancelledInternal(int download_id, |
| 305 DownloadProcessHandle process_handle); | 304 DownloadRequestHandle request_handle); |
| 306 | 305 |
| 307 // All data has been downloaded. | 306 // All data has been downloaded. |
| 308 // |hash| is sha256 hash for the downloaded file. It is empty when the hash | 307 // |hash| is sha256 hash for the downloaded file. It is empty when the hash |
| 309 // is not available. | 308 // is not available. |
| 310 void OnAllDataSaved(int32 download_id, int64 size, const std::string& hash); | 309 void OnAllDataSaved(int32 download_id, int64 size, const std::string& hash); |
| 311 | 310 |
| 312 // An error occurred in the download. | 311 // An error occurred in the download. |
| 313 void OnDownloadError(int32 download_id, int64 size, int os_error); | 312 void OnDownloadError(int32 download_id, int64 size, int os_error); |
| 314 | 313 |
| 315 // Updates the app icon about the overall download progress. | 314 // Updates the app icon about the overall download progress. |
| 316 void UpdateAppIcon(); | 315 void UpdateAppIcon(); |
| 317 | 316 |
| 318 // Makes the ResourceDispatcherHost pause/un-pause a download request. | |
| 319 // Called on the IO thread. | |
| 320 // |process_handle| is passed by value because this is called from other | |
| 321 // threads, and this way we don't have to worry about object lifetimes. | |
| 322 void PauseDownloadRequest(ResourceDispatcherHost* rdh, | |
| 323 DownloadProcessHandle process_handle, | |
| 324 bool pause); | |
| 325 | |
| 326 // Inform observers that the model has changed. | 317 // Inform observers that the model has changed. |
| 327 void NotifyModelChanged(); | 318 void NotifyModelChanged(); |
| 328 | 319 |
| 329 // Get the download item from the history map. Useful after the item has | 320 // Get the download item from the history map. Useful after the item has |
| 330 // been removed from the active map, or was retrieved from the history DB. | 321 // been removed from the active map, or was retrieved from the history DB. |
| 331 DownloadItem* GetDownloadItem(int id); | 322 DownloadItem* GetDownloadItem(int id); |
| 332 | 323 |
| 333 // Get the download item from the active map. Useful when the item is not | 324 // Get the download item from the active map. Useful when the item is not |
| 334 // yet in the history map. | 325 // yet in the history map. |
| 335 DownloadItem* GetActiveDownloadItem(int id); | 326 DownloadItem* GetActiveDownloadItem(int id); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 411 // The "Save As" dialog box used to ask the user where a file should be | 402 // The "Save As" dialog box used to ask the user where a file should be |
| 412 // saved. | 403 // saved. |
| 413 scoped_refptr<SelectFileDialog> select_file_dialog_; | 404 scoped_refptr<SelectFileDialog> select_file_dialog_; |
| 414 | 405 |
| 415 scoped_ptr<OtherDownloadManagerObserver> other_download_manager_observer_; | 406 scoped_ptr<OtherDownloadManagerObserver> other_download_manager_observer_; |
| 416 | 407 |
| 417 DISALLOW_COPY_AND_ASSIGN(DownloadManager); | 408 DISALLOW_COPY_AND_ASSIGN(DownloadManager); |
| 418 }; | 409 }; |
| 419 | 410 |
| 420 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_MANAGER_H_ | 411 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_MANAGER_H_ |
| OLD | NEW |