Chromium Code Reviews| Index: content/browser/download/download_manager.cc |
| diff --git a/content/browser/download/download_manager.cc b/content/browser/download/download_manager.cc |
| index 890c9bc65c03aa361b3f18f770e408cec6abf0ff..b9b48acdc7874f2024aae31b8aa4ae239f38afc3 100644 |
| --- a/content/browser/download/download_manager.cc |
| +++ b/content/browser/download/download_manager.cc |
| @@ -22,6 +22,7 @@ |
| #include "content/browser/download/download_create_info.h" |
| #include "content/browser/download/download_file_manager.h" |
| #include "content/browser/download/download_item.h" |
| +#include "content/browser/download/download_id_factory.h" |
|
Miranda Callahan
2011/10/27 17:00:19
nit: alpha
benjhayden
2011/10/27 19:04:41
Done.
|
| #include "content/browser/download/download_persistent_store_info.h" |
| #include "content/browser/download/download_stats.h" |
| #include "content/browser/download/download_status_updater.h" |
| @@ -60,15 +61,16 @@ void BeginDownload( |
| } // namespace |
| DownloadManager::DownloadManager(content::DownloadManagerDelegate* delegate, |
| + DownloadIdFactory* id_factory, |
| DownloadStatusUpdater* status_updater) |
| : shutdown_needed_(false), |
| browser_context_(NULL), |
| - next_id_(0), |
| file_manager_(NULL), |
| status_updater_((status_updater != NULL) |
| ? status_updater->AsWeakPtr() |
| : base::WeakPtr<DownloadStatusUpdater>()), |
| delegate_(delegate), |
| + id_factory_(id_factory), |
| largest_db_handle_in_history_(DownloadItem::kUninitializedHandle) { |
| // NOTE(benjhayden): status_updater may be NULL when using |
| // TestingBrowserProcess. |
| @@ -196,30 +198,6 @@ void DownloadManager::SearchDownloads(const string16& query, |
| } |
| } |
| -void DownloadManager::OnPersistentStoreGetNextId(int next_id) { |
| - DVLOG(1) << __FUNCTION__ << " " << next_id; |
| - base::AutoLock lock(next_id_lock_); |
| - // TODO(benjhayden) Delay Profile initialization until here, and set next_id_ |
| - // = next_id. The '+=' works for now because these ids are not yet persisted |
| - // to the database. GetNextId() can allocate zero or more ids starting from 0, |
| - // then this callback can increment next_id_, and the items with lower ids |
| - // won't clash with any other items even though there may be items loaded from |
| - // the history because items from the history don't have valid ids. |
| - next_id_ += next_id; |
| -} |
| - |
| -DownloadId DownloadManager::GetNextId() { |
| - // May be called on any thread via the GetNextIdThunk. |
| - // TODO(benjhayden) If otr, forward to parent DM. |
| - base::AutoLock lock(next_id_lock_); |
| - return DownloadId(this, next_id_++); |
| -} |
| - |
| -DownloadManager::GetNextIdThunkType DownloadManager::GetNextIdThunk() { |
| - // TODO(benjhayden) If otr, forward to parent DM. |
| - return base::Bind(&DownloadManager::GetNextId, this); |
| -} |
| - |
| // Query the history service for information about all persisted downloads. |
| bool DownloadManager::Init(content::BrowserContext* browser_context) { |
| DCHECK(browser_context); |
| @@ -332,7 +310,7 @@ void DownloadManager::CreateDownloadItem( |
| DownloadItem* download = new DownloadItem(this, *info, |
| request_handle, |
| browser_context_->IsOffTheRecord()); |
| - int32 download_id = info->download_id; |
| + int32 download_id = info->download_id.local(); |
| DCHECK(!ContainsKey(in_progress_, download_id)); |
| // TODO(rdsmith): Remove after http://crbug.com/85408 resolved. |
| @@ -829,7 +807,8 @@ void DownloadManager::OnPersistentStoreQueryComplete( |
| largest_db_handle_in_history_ = 0; |
| for (size_t i = 0; i < entries->size(); ++i) { |
| - DownloadItem* download = new DownloadItem(this, entries->at(i)); |
| + DownloadItem* download = new DownloadItem(this, entries->at(i), |
| + id_factory_->GetNextId()); |
| // TODO(rdsmith): Remove after http://crbug.com/85408 resolved. |
| CHECK(!ContainsKey(history_downloads_, download->db_handle())); |
| downloads_.insert(download); |