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

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 download delegate interface to native Created 4 years, 7 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..96b91f363744f208905f1508cecfedf625d9d53e 100644
--- a/chrome/browser/android/download/chrome_download_delegate.cc
+++ b/chrome/browser/android/download/chrome_download_delegate.cc
@@ -25,8 +25,18 @@
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/android/download_controller_android.h"
#include "jni/ChromeDownloadDelegate_jni.h"
+#include "net/base/filename_util.h"
+#include "net/cookies/cookie_options.h"
+#include "net/cookies/cookie_store.h"
+#include "net/http/http_content_disposition.h"
+#include "net/http/http_request_headers.h"
+#include "net/http/http_response_headers.h"
+#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_context.h"
#include "ui/base/l10n/l10n_util.h"
+using base::android::ConvertUTF8ToJavaString;
+using base::android::ScopedJavaLocalRef;
using content::DownloadControllerAndroid;
// Gets the download warning text for the given file name.
@@ -128,6 +138,74 @@ static void LaunchPermissionUpdateInfoBar(
*cb);
}
+ChromeDownloadDelegate::ChromeDownloadDelegate(jobject jdownload_delegate) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ obj_.Reset(env, jdownload_delegate);
+}
+
+void ChromeDownloadDelegate::NewHTTPGetDownload(
+ 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, obj_.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, obj_.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, obj_.obj(), jfilename.obj(), jguid.obj());
+}
+
+void ChromeDownloadDelegate::RequestFileAccess(intptr_t callback_id) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ Java_ChromeDownloadDelegate_requestFileAccess(
+ env, obj_.obj(), callback_id);
+}
+
bool RegisterChromeDownloadDelegate(JNIEnv* env) {
return RegisterNativesImpl(env);
}

Powered by Google App Engine
This is Rietveld 408576698