Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3716)

Unified Diff: chrome/browser/download/download_item.cc

Issue 6096003: Put history insertion for downloads processing inline. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/download/download_item.cc
diff --git a/chrome/browser/download/download_item.cc b/chrome/browser/download/download_item.cc
index f6bee14b83bd482addfac21ec8bc31f49451465d..2561c3702594baf3772c7cda032769128b419cf6 100644
--- a/chrome/browser/download/download_item.cc
+++ b/chrome/browser/download/download_item.cc
@@ -27,6 +27,44 @@
#include "chrome/common/extensions/extension.h"
#include "chrome/common/pref_names.h"
+// The lifecycle of a DownloadItem under normal conditions:
Paweł Hajdan Jr. 2011/01/03 09:43:03 I'm not sure if it's a good idea to put all that i
Randy Smith (Not in Mondays) 2011/01/04 19:29:21 Fair enough. Long term I really feel like there n
+// * Created. Downloading of data starts here.
+// (DownloadFileManager::StartDownload ->
+// DownloadManager::CreateDownloadItem).
+// * Made visible to consumers by entry into
+// DownloadManager::in_progress_ map after file information is
+// nailed down. The file into which data
+// is being downloaded is renamed to the intermedate file name here (*)
+// (DownloadManager::OnPathExistenceAvailable (or select file callback)
+// -> DownloadManager::AttachDownloadItem).
+// * Entered into the downloads history
+// (HistoryBackEnd::CreateDownload)
+// * Made visible in the download shelf
+// (DownloadManager::OnCreateDownloadEntryComplete after entry into
+// history).
+// * Completed--after above sequence and all data has been received.
+// (DownloadManager::MaybeCompleteDownload).
+// * Renamed to final name (*) and possibly auto-opened
+// (DownloadManager::DownloadFinished -> platform_util::OpenItem)
+//
+// (*) Both the nature of the intermediate file name and the routines used
+// for immedate and final file rename are different for dangerous and
+// non-dangerous downloads:
+// * Non-dangerous: Intermediate file format "<actual name>.crdownload"
+// (with a possible path uniquifier). Intermediate file rename done
+// by DownloadFileManager::OnIntermediateDownloadName, Final file
+// rename done by DownloadFileManager::OnFinalDownloadName.
+// * Dangerous: Intermediate file format "unconfirmed %d.crdownload".
+// Intermediate file rename done by
+// DownloadFileManager::OnFinalDownloadName (sic). Final file
+// rename done by DownloadManager::ProceedWithDangerousDownload.
+
+// TODO(rdsmith): This progress should be reflected in
+// DownloadItem::DownloadState and a state transition table/state diagram.
+//
+// TODO(rdsmith): This description should be updated to reflect the cancel
+// pathways.
+
namespace {
// Update frequency (milliseconds).
« no previous file with comments | « no previous file | chrome/browser/download/download_manager.h » ('j') | chrome/browser/download/download_manager.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698