OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 // Each download is represented by a DownloadItem, and all DownloadItems | 10 // Each download is represented by a DownloadItem, and all DownloadItems |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 bool Init(Profile* profile); | 342 bool Init(Profile* profile); |
343 | 343 |
344 // Schedule a query of the history service to retrieve all downloads. | 344 // Schedule a query of the history service to retrieve all downloads. |
345 void QueryHistoryForDownloads(); | 345 void QueryHistoryForDownloads(); |
346 | 346 |
347 // Notifications sent from the download thread to the UI thread | 347 // Notifications sent from the download thread to the UI thread |
348 void StartDownload(DownloadCreateInfo* info); | 348 void StartDownload(DownloadCreateInfo* info); |
349 void UpdateDownload(int32 download_id, int64 size); | 349 void UpdateDownload(int32 download_id, int64 size); |
350 void DownloadFinished(int32 download_id, int64 size); | 350 void DownloadFinished(int32 download_id, int64 size); |
351 | 351 |
352 // Helper method for cancelling the network request associated with a | 352 // Called from a view when a user clicks a UI button or link. |
353 // download. | |
354 static void CancelDownloadRequest(int render_process_id, int request_id); | |
355 | |
356 // Called from a view when a user clicks a UI button or link. | |
357 void DownloadCancelled(int32 download_id); | 353 void DownloadCancelled(int32 download_id); |
358 void PauseDownload(int32 download_id, bool pause); | 354 void PauseDownload(int32 download_id, bool pause); |
359 void RemoveDownload(int64 download_handle); | 355 void RemoveDownload(int64 download_handle); |
360 | 356 |
361 // Called when the download is renamed to its final name. | 357 // Called when the download is renamed to its final name. |
362 void DownloadRenamedToFinalName(int download_id, const FilePath& full_path); | 358 void DownloadRenamedToFinalName(int download_id, const FilePath& full_path); |
363 | 359 |
364 // Remove downloads after remove_begin (inclusive) and before remove_end | 360 // Remove downloads after remove_begin (inclusive) and before remove_end |
365 // (exclusive). You may pass in null Time values to do an unbounded delete | 361 // (exclusive). You may pass in null Time values to do an unbounded delete |
366 // in either direction. | 362 // in either direction. |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
454 // Used to make sure we have a safe file extension and filename for a | 450 // Used to make sure we have a safe file extension and filename for a |
455 // download. |file_name| can either be just the file name or it can be a | 451 // download. |file_name| can either be just the file name or it can be a |
456 // full path to a file. | 452 // full path to a file. |
457 void GenerateSafeFilename(const std::string& mime_type, | 453 void GenerateSafeFilename(const std::string& mime_type, |
458 FilePath* file_name); | 454 FilePath* file_name); |
459 | 455 |
460 // Used to determine whether the download item is an extension file or not. | 456 // Used to determine whether the download item is an extension file or not. |
461 static bool IsExtensionInstall(const DownloadItem* item); | 457 static bool IsExtensionInstall(const DownloadItem* item); |
462 static bool IsExtensionInstall(const DownloadCreateInfo* info); | 458 static bool IsExtensionInstall(const DownloadCreateInfo* info); |
463 | 459 |
| 460 // Runs the network cancel. Must be called on the IO thread. |
| 461 static void OnCancelDownloadRequest(ResourceDispatcherHost* rdh, |
| 462 int render_process_id, |
| 463 int request_id); |
| 464 |
464 private: | 465 private: |
465 // Opens a download via the Windows shell. | 466 // Opens a download via the Windows shell. |
466 void OpenDownloadInShell(const DownloadItem* download, | 467 void OpenDownloadInShell(const DownloadItem* download, |
467 gfx::NativeView parent_window); | 468 gfx::NativeView parent_window); |
468 | 469 |
469 // Opens downloaded Chrome extension file (*.crx). | 470 // Opens downloaded Chrome extension file (*.crx). |
470 void OpenChromeExtension(const FilePath& full_path, const GURL& download_url, | 471 void OpenChromeExtension(const FilePath& full_path, const GURL& download_url, |
471 const GURL& referrer_url); | 472 const GURL& referrer_url); |
472 | 473 |
473 // Shutdown the download manager. This call is needed only after Init. | 474 // Shutdown the download manager. This call is needed only after Init. |
(...skipping 29 matching lines...) Expand all Loading... |
503 void GenerateFilename(DownloadCreateInfo* info, FilePath* generated_name); | 504 void GenerateFilename(DownloadCreateInfo* info, FilePath* generated_name); |
504 | 505 |
505 // Persist the automatic opening preference. | 506 // Persist the automatic opening preference. |
506 void SaveAutoOpens(); | 507 void SaveAutoOpens(); |
507 | 508 |
508 // Download cancel helper function. | 509 // Download cancel helper function. |
509 void DownloadCancelledInternal(int download_id, | 510 void DownloadCancelledInternal(int download_id, |
510 int render_process_id, | 511 int render_process_id, |
511 int request_id); | 512 int request_id); |
512 | 513 |
513 // Runs the network cancel on the IO thread. | |
514 static void OnCancelDownloadRequest(ResourceDispatcherHost* rdh, | |
515 int render_process_id, | |
516 int request_id); | |
517 | |
518 // Runs the pause on the IO thread. | 514 // Runs the pause on the IO thread. |
519 static void OnPauseDownloadRequest(ResourceDispatcherHost* rdh, | 515 static void OnPauseDownloadRequest(ResourceDispatcherHost* rdh, |
520 int render_process_id, | 516 int render_process_id, |
521 int request_id, | 517 int request_id, |
522 bool pause); | 518 bool pause); |
523 | 519 |
524 // Performs the last steps required when a download has been completed. | 520 // Performs the last steps required when a download has been completed. |
525 // It is necessary to break down the flow when a download is finished as | 521 // It is necessary to break down the flow when a download is finished as |
526 // dangerous downloads are downloaded to temporary files that need to be | 522 // dangerous downloads are downloaded to temporary files that need to be |
527 // renamed on the file thread first. | 523 // renamed on the file thread first. |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 PendingFinishedMap pending_finished_downloads_; | 619 PendingFinishedMap pending_finished_downloads_; |
624 | 620 |
625 // The "Save As" dialog box used to ask the user where a file should be | 621 // The "Save As" dialog box used to ask the user where a file should be |
626 // saved. | 622 // saved. |
627 scoped_refptr<SelectFileDialog> select_file_dialog_; | 623 scoped_refptr<SelectFileDialog> select_file_dialog_; |
628 | 624 |
629 DISALLOW_COPY_AND_ASSIGN(DownloadManager); | 625 DISALLOW_COPY_AND_ASSIGN(DownloadManager); |
630 }; | 626 }; |
631 | 627 |
632 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_MANAGER_H_ | 628 #endif // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_MANAGER_H_ |
OLD | NEW |