| 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 3c410a414ef7fe62c03ad89b921406593510e8ad..abc4f347913527b4e823dd7355433c54b50353e4 100644
|
| --- a/chrome/browser/android/download/download_manager_service.cc
|
| +++ b/chrome/browser/android/download/download_manager_service.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/android/download/download_manager_service.h"
|
|
|
| +#include "base/android/context_utils.h"
|
| #include "base/android/jni_string.h"
|
| #include "base/location.h"
|
| #include "base/single_thread_task_runner.h"
|
| @@ -28,6 +29,23 @@ bool DownloadManagerService::RegisterDownloadManagerService(JNIEnv* env) {
|
| return RegisterNativesImpl(env);
|
| }
|
|
|
| +// static
|
| +void DownloadManagerService::OnDownloadCanceled(
|
| + content::DownloadItem* download,
|
| + DownloadController::DownloadCancelReason reason) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + ScopedJavaLocalRef<jobject> download_manager =
|
| + Java_DownloadManagerService_getDownloadManagerService(
|
| + env, base::android::GetApplicationContext());
|
| + ScopedJavaLocalRef<jstring> jname =
|
| + ConvertUTF8ToJavaString(env, download->GetURL().ExtractFileName());
|
| + Java_DownloadManagerService_onDownloadCanceled(
|
| + env, download_manager.obj(), jname.obj(),
|
| + reason == DownloadController::CANCEL_REASON_NO_EXTERNAL_STORAGE);
|
| + DownloadController::RecordDownloadCancelReason(reason);
|
| +}
|
| +
|
| +
|
| static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
|
| Profile* profile = ProfileManager::GetActiveUserProfile();
|
| DownloadManagerService* service =
|
|
|