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

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

Issue 2014803002: Move DownloadControllerAndroid from content/ to chrome/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moved DownloadControllerAndroid(Impl) to chrome/ Created 4 years, 6 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/chrome_download_delegate.cc
diff --git a/chrome/browser/android/download/chrome_download_delegate.cc b/chrome/browser/android/download/chrome_download_delegate.cc
index 00943c8802eb02a1e2c41020569d425e5a73698b..fb1633afed6b874b197b6014216804f34b4cd99f 100644
--- a/chrome/browser/android/download/chrome_download_delegate.cc
+++ b/chrome/browser/android/download/chrome_download_delegate.cc
@@ -17,17 +17,18 @@
#include "base/files/file_path.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/android/download/android_download_manager_overwrite_infobar_delegate.h"
+#include "chrome/browser/android/download/download_controller_android.h"
#include "chrome/browser/android/tab_android.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/permissions/permission_update_infobar_delegate_android.h"
#include "chrome/common/safe_browsing/file_type_policies.h"
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
-#include "content/public/browser/android/download_controller_android.h"
#include "jni/ChromeDownloadDelegate_jni.h"
#include "ui/base/l10n/l10n_util.h"
-using content::DownloadControllerAndroid;
+using base::android::ConvertUTF8ToJavaString;
+using base::android::ScopedJavaLocalRef;
// Gets the download warning text for the given file name.
static ScopedJavaLocalRef<jstring> GetDownloadWarningText(
@@ -128,6 +129,80 @@ static void LaunchPermissionUpdateInfoBar(
*cb);
}
+ChromeDownloadDelegate::ChromeDownloadDelegate(
+ content::WebContents* web_contents) {}
+
+ChromeDownloadDelegate::~ChromeDownloadDelegate() {}
+
+void ChromeDownloadDelegate::SetDelegate(JNIEnv* env, jobject jobj) {
+ weak_java_ref_ = JavaObjectWeakGlobalRef(env, jobj);
+}
+
+void ChromeDownloadDelegate::RequestHTTPGetDownload(
+ const std::string& url,
+ const std::string& user_agent,
+ const std::string& content_disposition,
+ const std::string& mime_type,
+ const std::string& cookie,
+ const std::string& referer,
+ const base::string16& file_name,
+ int64_t content_length,
+ bool has_user_gesture,
+ bool must_download) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ ScopedJavaLocalRef<jstring> jurl =
+ ConvertUTF8ToJavaString(env, url);
+ ScopedJavaLocalRef<jstring> juser_agent =
+ ConvertUTF8ToJavaString(env, user_agent);
+ ScopedJavaLocalRef<jstring> jcontent_disposition =
+ ConvertUTF8ToJavaString(env, content_disposition);
+ ScopedJavaLocalRef<jstring> jmime_type =
+ ConvertUTF8ToJavaString(env, mime_type);
+ ScopedJavaLocalRef<jstring> jcookie =
+ ConvertUTF8ToJavaString(env, cookie);
+ ScopedJavaLocalRef<jstring> jreferer =
+ ConvertUTF8ToJavaString(env, referer);
+
+ // net::GetSuggestedFilename will fallback to "download" as filename.
+ ScopedJavaLocalRef<jstring> jfilename =
+ base::android::ConvertUTF16ToJavaString(env, file_name);
+ Java_ChromeDownloadDelegate_requestHttpGetDownload(
+ env, weak_java_ref_.get(env).obj(),
+ jurl.obj(), juser_agent.obj(), jcontent_disposition.obj(),
+ jmime_type.obj(), jcookie.obj(), jreferer.obj(), has_user_gesture,
+ jfilename.obj(), content_length, must_download);
+}
+
+void ChromeDownloadDelegate::OnDownloadStarted(const std::string& filename,
+ const std::string& mime_type) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
+ env, filename);
+ ScopedJavaLocalRef<jstring> jmime_type =
+ ConvertUTF8ToJavaString(env, mime_type);
+ Java_ChromeDownloadDelegate_onDownloadStarted(
+ env, weak_java_ref_.get(env).obj(), jfilename.obj(), jmime_type.obj());
+}
+
+void ChromeDownloadDelegate::OnDangerousDownload(const std::string& filename,
+ const std::string& guid) {
+
+ JNIEnv* env = base::android::AttachCurrentThread();
+ ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
+ env, filename);
+ ScopedJavaLocalRef<jstring> jguid = ConvertUTF8ToJavaString(env, guid);
+ Java_ChromeDownloadDelegate_onDangerousDownload(
+ env, weak_java_ref_.get(env).obj(), jfilename.obj(), jguid.obj());
+}
+
+void ChromeDownloadDelegate::RequestFileAccess(intptr_t callback_id) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ Java_ChromeDownloadDelegate_requestFileAccess(
+ env, weak_java_ref_.get(env).obj(), callback_id);
+}
+
bool RegisterChromeDownloadDelegate(JNIEnv* env) {
return RegisterNativesImpl(env);
}
+
+DEFINE_WEB_CONTENTS_USER_DATA_KEY(ChromeDownloadDelegate);

Powered by Google App Engine
This is Rietveld 408576698