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

Unified Diff: chrome/browser/android/download/download_manager_service.cc

Issue 2160063002: Allow user to pause/resume incognito downloads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix clang warning Created 4 years, 5 months 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/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 b5e7344216dd2950b0cafda5929d85a1628db1c5..6a5503de541a4d8e34db558810fb4f0c33eef4f8 100644
--- a/chrome/browser/android/download/download_manager_service.cc
+++ b/chrome/browser/android/download/download_manager_service.cc
@@ -79,10 +79,11 @@ DownloadManagerService::~DownloadManagerService() {}
void DownloadManagerService::ResumeDownload(
JNIEnv* env,
jobject obj,
- const JavaParamRef<jstring>& jdownload_guid) {
+ const JavaParamRef<jstring>& jdownload_guid,
+ bool is_off_the_record) {
std::string download_guid = ConvertJavaStringToUTF8(env, jdownload_guid);
- if (is_history_query_complete_)
- ResumeDownloadInternal(download_guid);
+ if (is_history_query_complete_ || is_off_the_record)
+ ResumeDownloadInternal(download_guid, is_off_the_record);
else
EnqueueDownloadAction(download_guid, RESUME);
}
@@ -90,10 +91,11 @@ void DownloadManagerService::ResumeDownload(
void DownloadManagerService::PauseDownload(
JNIEnv* env,
jobject obj,
- const JavaParamRef<jstring>& jdownload_guid) {
+ const JavaParamRef<jstring>& jdownload_guid,
+ bool is_off_the_record) {
std::string download_guid = ConvertJavaStringToUTF8(env, jdownload_guid);
- if (is_history_query_complete_)
- PauseDownloadInternal(download_guid);
+ if (is_history_query_complete_ || is_off_the_record)
+ PauseDownloadInternal(download_guid, is_off_the_record);
else
EnqueueDownloadAction(download_guid, PAUSE);
}
@@ -149,20 +151,12 @@ void DownloadManagerService::CancelDownload(
bool is_off_the_record,
bool is_notification_dismissed) {
std::string download_guid = ConvertJavaStringToUTF8(env, jdownload_guid);
-
DownloadController::RecordDownloadCancelReason(
is_notification_dismissed ?
DownloadController::CANCEL_REASON_NOTIFICATION_DISMISSED :
DownloadController::CANCEL_REASON_ACTION_BUTTON);
- // Incognito download can only be cancelled in the same browser session, no
- // need to wait for download history.
- if (is_off_the_record) {
- CancelDownloadInternal(download_guid, true);
- return;
- }
-
- if (is_history_query_complete_)
- CancelDownloadInternal(download_guid, false);
+ if (is_history_query_complete_ || is_off_the_record)
+ CancelDownloadInternal(download_guid, is_off_the_record);
else
EnqueueDownloadAction(download_guid, CANCEL);
}
@@ -175,10 +169,10 @@ void DownloadManagerService::OnHistoryQueryComplete() {
std::string download_guid = iter->first;
switch (action) {
case RESUME:
- ResumeDownloadInternal(download_guid);
+ ResumeDownloadInternal(download_guid, false);
break;
case PAUSE:
- PauseDownloadInternal(download_guid);
+ PauseDownloadInternal(download_guid, false);
break;
case CANCEL:
CancelDownloadInternal(download_guid, false);
@@ -195,8 +189,8 @@ void DownloadManagerService::OnHistoryQueryComplete() {
}
void DownloadManagerService::ResumeDownloadInternal(
- const std::string& download_guid) {
- content::DownloadManager* manager = GetDownloadManager(false);
+ const std::string& download_guid, bool is_off_the_record) {
+ content::DownloadManager* manager = GetDownloadManager(is_off_the_record);
if (!manager) {
OnResumptionFailed(download_guid);
return;
@@ -229,8 +223,8 @@ void DownloadManagerService::CancelDownloadInternal(
}
void DownloadManagerService::PauseDownloadInternal(
- const std::string& download_guid) {
- content::DownloadManager* manager = GetDownloadManager(false);
+ const std::string& download_guid, bool is_off_the_record) {
+ content::DownloadManager* manager = GetDownloadManager(is_off_the_record);
if (!manager)
return;
content::DownloadItem* item = manager->GetDownloadByGuid(download_guid);

Powered by Google App Engine
This is Rietveld 408576698