Chromium Code Reviews| Index: chrome/browser/download/chrome_download_manager_delegate.cc |
| diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc |
| index fc95cbf4f129ef68b2e2c50d187f02548b1c81d1..b0f67a0693f2013b3a0b057d88fdc67ea8b7827e 100644 |
| --- a/chrome/browser/download/chrome_download_manager_delegate.cc |
| +++ b/chrome/browser/download/chrome_download_manager_delegate.cc |
| @@ -132,9 +132,11 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() { |
| void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) { |
| download_manager_ = dm; |
| download_history_.reset(new DownloadHistory(profile_)); |
| - download_history_->Load( |
| - base::Bind(&DownloadManager::OnPersistentStoreQueryComplete, |
| - base::Unretained(dm))); |
| + if (profile_->GetOriginalProfile() == profile_) { |
| + download_history_->Load( |
| + base::Bind(&DownloadManager::OnPersistentStoreQueryComplete, |
| + download_manager_)); |
| + } |
| #if !defined(OS_ANDROID) |
| extension_event_router_.reset(new ExtensionDownloadsEventRouter( |
| profile_, download_manager_)); |
| @@ -424,9 +426,15 @@ bool ChromeDownloadManagerDelegate::GenerateFileHash() { |
| void ChromeDownloadManagerDelegate::AddItemToPersistentStore( |
| DownloadItem* item) { |
| + if (profile_->HasOffTheRecordProfile() && |
| + (profile_ == profile_->GetOffTheRecordProfile())) { |
|
asanka
2012/08/01 17:11:35
Why not profile_->IsOffTheRecord() ?
benjhayden
2012/08/01 18:51:55
Done.
|
| + OnItemAddedToPersistentStore( |
| + item->GetId(), download_history_->GetNextFakeDbHandle()); |
| + return; |
| + } |
| download_history_->AddEntry(item, |
| base::Bind(&ChromeDownloadManagerDelegate::OnItemAddedToPersistentStore, |
| - base::Unretained(this))); |
| + this)); |
| } |
| void ChromeDownloadManagerDelegate::UpdateItemInPersistentStore( |
| @@ -448,6 +456,9 @@ void ChromeDownloadManagerDelegate::RemoveItemFromPersistentStore( |
| void ChromeDownloadManagerDelegate::RemoveItemsFromPersistentStoreBetween( |
| base::Time remove_begin, |
| base::Time remove_end) { |
| + if (profile_->HasOffTheRecordProfile() && |
| + (profile_ == profile_->GetOffTheRecordProfile())) |
| + return; |
| download_history_->RemoveEntriesBetween(remove_begin, remove_end); |
| } |
| @@ -578,7 +589,7 @@ void ChromeDownloadManagerDelegate::CheckDownloadUrlDone( |
| download_history_->CheckVisitedReferrerBefore( |
| download_id, download->GetReferrerUrl(), |
| base::Bind(&ChromeDownloadManagerDelegate::CheckVisitedReferrerBeforeDone, |
| - base::Unretained(this), download_id, callback, danger_type)); |
| + this, download_id, callback, danger_type)); |
| } |
| void ChromeDownloadManagerDelegate::CheckClientDownloadDone( |