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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/download/chrome_download_delegate.h" 5 #include "chrome/browser/android/download/chrome_download_delegate.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include <string> 9 #include <string>
10 #include <type_traits> 10 #include <type_traits>
11 11
12 #include "base/android/jni_android.h" 12 #include "base/android/jni_android.h"
13 #include "base/android/jni_string.h" 13 #include "base/android/jni_string.h"
14 #include "base/android/scoped_java_ref.h" 14 #include "base/android/scoped_java_ref.h"
15 #include "base/bind.h" 15 #include "base/bind.h"
16 #include "base/callback.h" 16 #include "base/callback.h"
17 #include "base/files/file_path.h" 17 #include "base/files/file_path.h"
18 #include "base/memory/weak_ptr.h" 18 #include "base/memory/weak_ptr.h"
19 #include "chrome/browser/android/download/android_download_manager_overwrite_inf obar_delegate.h" 19 #include "chrome/browser/android/download/android_download_manager_overwrite_inf obar_delegate.h"
20 #include "chrome/browser/android/download/download_controller_android.h"
20 #include "chrome/browser/android/tab_android.h" 21 #include "chrome/browser/android/tab_android.h"
21 #include "chrome/browser/infobars/infobar_service.h" 22 #include "chrome/browser/infobars/infobar_service.h"
22 #include "chrome/browser/permissions/permission_update_infobar_delegate_android. h" 23 #include "chrome/browser/permissions/permission_update_infobar_delegate_android. h"
23 #include "chrome/common/safe_browsing/file_type_policies.h" 24 #include "chrome/common/safe_browsing/file_type_policies.h"
24 #include "chrome/grit/chromium_strings.h" 25 #include "chrome/grit/chromium_strings.h"
25 #include "chrome/grit/generated_resources.h" 26 #include "chrome/grit/generated_resources.h"
26 #include "content/public/browser/android/download_controller_android.h"
27 #include "jni/ChromeDownloadDelegate_jni.h" 27 #include "jni/ChromeDownloadDelegate_jni.h"
28 #include "ui/base/l10n/l10n_util.h" 28 #include "ui/base/l10n/l10n_util.h"
29 29
30 using content::DownloadControllerAndroid; 30 using base::android::ConvertUTF8ToJavaString;
31 using base::android::ScopedJavaLocalRef;
31 32
32 // Gets the download warning text for the given file name. 33 // Gets the download warning text for the given file name.
33 static ScopedJavaLocalRef<jstring> GetDownloadWarningText( 34 static ScopedJavaLocalRef<jstring> GetDownloadWarningText(
34 JNIEnv* env, 35 JNIEnv* env,
35 const JavaParamRef<jclass>& clazz, 36 const JavaParamRef<jclass>& clazz,
36 const JavaParamRef<jstring>& filename) { 37 const JavaParamRef<jstring>& filename) {
37 return base::android::ConvertUTF8ToJavaString( 38 return base::android::ConvertUTF8ToJavaString(
38 env, l10n_util::GetStringFUTF8( 39 env, l10n_util::GetStringFUTF8(
39 IDS_PROMPT_DANGEROUS_DOWNLOAD, 40 IDS_PROMPT_DANGEROUS_DOWNLOAD,
40 base::android::ConvertJavaStringToUTF16(env, filename))); 41 base::android::ConvertJavaStringToUTF16(env, filename)));
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 std::vector<std::string> permissions; 122 std::vector<std::string> permissions;
122 permissions.push_back(permission); 123 permissions.push_back(permission);
123 124
124 PermissionUpdateInfoBarDelegate::Create( 125 PermissionUpdateInfoBarDelegate::Create(
125 tab_android->web_contents(), 126 tab_android->web_contents(),
126 permissions, 127 permissions,
127 IDS_MISSING_STORAGE_PERMISSION_DOWNLOAD_EDUCATION_TEXT, 128 IDS_MISSING_STORAGE_PERMISSION_DOWNLOAD_EDUCATION_TEXT,
128 *cb); 129 *cb);
129 } 130 }
130 131
132 ChromeDownloadDelegate::ChromeDownloadDelegate(
133 content::WebContents* web_contents) {}
134
135 ChromeDownloadDelegate::~ChromeDownloadDelegate() {}
136
137 void ChromeDownloadDelegate::SetDelegate(JNIEnv* env, jobject jobj) {
138 weak_java_ref_ = JavaObjectWeakGlobalRef(env, jobj);
139 }
140
141 void ChromeDownloadDelegate::RequestHTTPGetDownload(
142 const std::string& url,
143 const std::string& user_agent,
144 const std::string& content_disposition,
145 const std::string& mime_type,
146 const std::string& cookie,
147 const std::string& referer,
148 const base::string16& file_name,
149 int64_t content_length,
150 bool has_user_gesture,
151 bool must_download) {
152 JNIEnv* env = base::android::AttachCurrentThread();
153 ScopedJavaLocalRef<jstring> jurl =
154 ConvertUTF8ToJavaString(env, url);
155 ScopedJavaLocalRef<jstring> juser_agent =
156 ConvertUTF8ToJavaString(env, user_agent);
157 ScopedJavaLocalRef<jstring> jcontent_disposition =
158 ConvertUTF8ToJavaString(env, content_disposition);
159 ScopedJavaLocalRef<jstring> jmime_type =
160 ConvertUTF8ToJavaString(env, mime_type);
161 ScopedJavaLocalRef<jstring> jcookie =
162 ConvertUTF8ToJavaString(env, cookie);
163 ScopedJavaLocalRef<jstring> jreferer =
164 ConvertUTF8ToJavaString(env, referer);
165
166 // net::GetSuggestedFilename will fallback to "download" as filename.
167 ScopedJavaLocalRef<jstring> jfilename =
168 base::android::ConvertUTF16ToJavaString(env, file_name);
169 Java_ChromeDownloadDelegate_requestHttpGetDownload(
170 env, weak_java_ref_.get(env).obj(),
171 jurl.obj(), juser_agent.obj(), jcontent_disposition.obj(),
172 jmime_type.obj(), jcookie.obj(), jreferer.obj(), has_user_gesture,
173 jfilename.obj(), content_length, must_download);
174 }
175
176 void ChromeDownloadDelegate::OnDownloadStarted(const std::string& filename,
177 const std::string& mime_type) {
178 JNIEnv* env = base::android::AttachCurrentThread();
179 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
180 env, filename);
181 ScopedJavaLocalRef<jstring> jmime_type =
182 ConvertUTF8ToJavaString(env, mime_type);
183 Java_ChromeDownloadDelegate_onDownloadStarted(
184 env, weak_java_ref_.get(env).obj(), jfilename.obj(), jmime_type.obj());
185 }
186
187 void ChromeDownloadDelegate::OnDangerousDownload(const std::string& filename,
188 const std::string& guid) {
189
190 JNIEnv* env = base::android::AttachCurrentThread();
191 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
192 env, filename);
193 ScopedJavaLocalRef<jstring> jguid = ConvertUTF8ToJavaString(env, guid);
194 Java_ChromeDownloadDelegate_onDangerousDownload(
195 env, weak_java_ref_.get(env).obj(), jfilename.obj(), jguid.obj());
196 }
197
198 void ChromeDownloadDelegate::RequestFileAccess(intptr_t callback_id) {
199 JNIEnv* env = base::android::AttachCurrentThread();
200 Java_ChromeDownloadDelegate_requestFileAccess(
201 env, weak_java_ref_.get(env).obj(), callback_id);
202 }
203
131 bool RegisterChromeDownloadDelegate(JNIEnv* env) { 204 bool RegisterChromeDownloadDelegate(JNIEnv* env) {
132 return RegisterNativesImpl(env); 205 return RegisterNativesImpl(env);
133 } 206 }
207
208 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ChromeDownloadDelegate);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698