| Index: chrome/browser/android/download/download_manager_service.cc
|
| diff --git a/chrome/browser/android/download/download_manager_service.cc b/chrome/browser/android/download/download_manager_service.cc
|
| index f00173594033be98ce8d3a58358bbd1f0e705993..249a7727797d4ea881d9cc9312c81b6467134f80 100644
|
| --- a/chrome/browser/android/download/download_manager_service.cc
|
| +++ b/chrome/browser/android/download/download_manager_service.cc
|
| @@ -82,7 +82,8 @@ DownloadManagerService::DownloadManagerService(
|
| JNIEnv* env,
|
| jobject obj)
|
| : java_ref_(env, obj),
|
| - is_history_query_complete_(false) {
|
| + is_history_query_complete_(false),
|
| + pending_get_downloads_actions_(NONE) {
|
| DownloadControllerBase::Get()->SetDefaultDownloadFileName(
|
| l10n_util::GetStringUTF8(IDS_DEFAULT_DOWNLOAD_FILENAME));
|
| }
|
| @@ -131,9 +132,9 @@ void DownloadManagerService::GetAllDownloads(JNIEnv* env,
|
| if (is_history_query_complete_)
|
| GetAllDownloadsInternal(is_off_the_record);
|
| else if (is_off_the_record)
|
| - EnqueueDownloadAction(std::string(), INITIALIZE_OFF_THE_RECORD_UI);
|
| + pending_get_downloads_actions_ |= OFF_THE_RECORD;
|
| else
|
| - EnqueueDownloadAction(std::string(), INITIALIZE_UI);
|
| + pending_get_downloads_actions_ |= REGULAR;
|
| }
|
|
|
| void DownloadManagerService::GetAllDownloadsInternal(bool is_off_the_record) {
|
| @@ -218,12 +219,6 @@ void DownloadManagerService::OnHistoryQueryComplete() {
|
| case CANCEL:
|
| CancelDownloadInternal(download_guid, false);
|
| break;
|
| - case INITIALIZE_UI:
|
| - GetAllDownloadsInternal(false);
|
| - break;
|
| - case INITIALIZE_OFF_THE_RECORD_UI:
|
| - GetAllDownloadsInternal(true);
|
| - break;
|
| default:
|
| NOTREACHED();
|
| break;
|
| @@ -231,6 +226,12 @@ void DownloadManagerService::OnHistoryQueryComplete() {
|
| }
|
| pending_actions_.clear();
|
|
|
| + // Respond to any requests to get all downloads.
|
| + if (pending_get_downloads_actions_ & REGULAR)
|
| + GetAllDownloadsInternal(false);
|
| + if (pending_get_downloads_actions_ & OFF_THE_RECORD)
|
| + GetAllDownloadsInternal(true);
|
| +
|
| // Monitor all DownloadItems for changes.
|
| updateNotifier(this, GetDownloadManager(false), original_notifier_);
|
| updateNotifier(this, GetDownloadManager(true), off_the_record_notifier_);
|
| @@ -351,10 +352,6 @@ void DownloadManagerService::EnqueueDownloadAction(
|
| case REMOVE:
|
| iter->second = action;
|
| break;
|
| - case INITIALIZE_UI:
|
| - case INITIALIZE_OFF_THE_RECORD_UI:
|
| - iter->second = action;
|
| - break;
|
| default:
|
| NOTREACHED();
|
| break;
|
|
|