| Index: chrome/browser/android/download/download_controller.cc
|
| diff --git a/chrome/browser/android/download/download_controller.cc b/chrome/browser/android/download/download_controller.cc
|
| index 3574b54bce1eeef86b373e3e3216e1b84f7a4458..b90f310a7ee54d36a469ac3fbdba5da41087979e 100644
|
| --- a/chrome/browser/android/download/download_controller.cc
|
| +++ b/chrome/browser/android/download/download_controller.cc
|
| @@ -15,9 +15,9 @@
|
| #include "base/logging.h"
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/synchronization/lock.h"
|
| -#include "base/time/time.h"
|
| #include "chrome/browser/android/download/chrome_download_delegate.h"
|
| #include "chrome/browser/android/download/dangerous_download_infobar_delegate.h"
|
| +#include "chrome/browser/android/download/download_manager_service.h"
|
| #include "chrome/browser/infobars/infobar_service.h"
|
| #include "chrome/browser/ui/android/view_android_helper.h"
|
| #include "content/public/browser/browser_context.h"
|
| @@ -260,40 +260,12 @@ void DownloadController::OnDownloadUpdated(DownloadItem* item) {
|
| }
|
|
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - ScopedJavaLocalRef<jstring> jguid =
|
| - ConvertUTF8ToJavaString(env, item->GetGuid());
|
| - ScopedJavaLocalRef<jstring> jurl =
|
| - ConvertUTF8ToJavaString(env, item->GetURL().spec());
|
| - ScopedJavaLocalRef<jstring> jmime_type =
|
| - ConvertUTF8ToJavaString(env, item->GetMimeType());
|
| - ScopedJavaLocalRef<jstring> jpath =
|
| - ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value());
|
| - ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
|
| - env, item->GetTargetFilePath().BaseName().value());
|
| - ScopedJavaLocalRef<jstring> joriginal_url =
|
| - ConvertUTF8ToJavaString(env, item->GetOriginalUrl().spec());
|
| - ScopedJavaLocalRef<jstring> jreferrer_url =
|
| - ConvertUTF8ToJavaString(env, item->GetReferrerUrl().spec());
|
| -
|
| - ui::PageTransition base_transition =
|
| - ui::PageTransitionStripQualifier(item->GetTransitionType());
|
| - bool user_initiated =
|
| - item->GetTransitionType() & ui::PAGE_TRANSITION_FROM_ADDRESS_BAR ||
|
| - base_transition == ui::PAGE_TRANSITION_TYPED ||
|
| - base_transition == ui::PAGE_TRANSITION_AUTO_BOOKMARK ||
|
| - base_transition == ui::PAGE_TRANSITION_GENERATED ||
|
| - base_transition == ui::PAGE_TRANSITION_RELOAD ||
|
| - base_transition == ui::PAGE_TRANSITION_KEYWORD;
|
| - bool hasUserGesture = item->HasUserGesture() || user_initiated;
|
| + ScopedJavaLocalRef<jobject> j_item =
|
| + DownloadManagerService::CreateJavaDownloadInfo(env, item);
|
| switch (item->GetState()) {
|
| case DownloadItem::IN_PROGRESS: {
|
| - base::TimeDelta time_delta;
|
| - item->TimeRemaining(&time_delta);
|
| Java_DownloadController_onDownloadUpdated(
|
| - env, GetJavaObject()->Controller(env), jurl, jmime_type, jfilename,
|
| - jpath, item->GetReceivedBytes(), jguid, item->PercentComplete(),
|
| - time_delta.InMilliseconds(), hasUserGesture, item->IsPaused(),
|
| - item->GetBrowserContext()->IsOffTheRecord());
|
| + env, GetJavaObject()->Controller(env), j_item);
|
| break;
|
| }
|
| case DownloadItem::COMPLETE:
|
| @@ -303,15 +275,13 @@ void DownloadController::OnDownloadUpdated(DownloadItem* item) {
|
|
|
| // Call onDownloadCompleted
|
| Java_DownloadController_onDownloadCompleted(
|
| - env, GetJavaObject()->Controller(env), jurl, jmime_type, jfilename,
|
| - jpath, item->GetReceivedBytes(), jguid, joriginal_url, jreferrer_url,
|
| - hasUserGesture);
|
| + env, GetJavaObject()->Controller(env), j_item);
|
| DownloadController::RecordDownloadCancelReason(
|
| DownloadController::CANCEL_REASON_NOT_CANCELED);
|
| break;
|
| case DownloadItem::CANCELLED:
|
| Java_DownloadController_onDownloadCancelled(
|
| - env, GetJavaObject()->Controller(env), jguid);
|
| + env, GetJavaObject()->Controller(env), j_item);
|
| DownloadController::RecordDownloadCancelReason(
|
| DownloadController::CANCEL_REASON_OTHER_NATIVE_RESONS);
|
| break;
|
| @@ -320,10 +290,8 @@ void DownloadController::OnDownloadUpdated(DownloadItem* item) {
|
| // NETWORK_FAILED or NETWORK_DISCONNECTED error. Download should auto
|
| // resume in this case.
|
| Java_DownloadController_onDownloadInterrupted(
|
| - env, GetJavaObject()->Controller(env), jurl, jmime_type, jfilename,
|
| - jpath, item->GetReceivedBytes(), jguid, item->CanResume(),
|
| - IsInterruptedDownloadAutoResumable(item),
|
| - item->GetBrowserContext()->IsOffTheRecord());
|
| + env, GetJavaObject()->Controller(env), j_item,
|
| + IsInterruptedDownloadAutoResumable(item));
|
| item->RemoveObserver(this);
|
| break;
|
| case DownloadItem::MAX_DOWNLOAD_STATE:
|
|
|