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

Side by Side Diff: chrome/browser/android/download/chrome_download_delegate.cc

Issue 1312153003: jni_generator: Pass object parameters as JavaParamRef. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 3 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 "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/android/scoped_java_ref.h" 11 #include "base/android/scoped_java_ref.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/files/file_path.h" 14 #include "base/files/file_path.h"
15 #include "base/memory/weak_ptr.h" 15 #include "base/memory/weak_ptr.h"
16 #include "chrome/browser/android/download/android_download_manager_overwrite_inf obar_delegate.h" 16 #include "chrome/browser/android/download/android_download_manager_overwrite_inf obar_delegate.h"
17 #include "chrome/browser/android/tab_android.h" 17 #include "chrome/browser/android/tab_android.h"
18 #include "chrome/browser/download/download_extensions.h" 18 #include "chrome/browser/download/download_extensions.h"
19 #include "chrome/browser/infobars/infobar_service.h" 19 #include "chrome/browser/infobars/infobar_service.h"
20 #include "chrome/grit/generated_resources.h" 20 #include "chrome/grit/generated_resources.h"
21 #include "content/public/browser/android/download_controller_android.h" 21 #include "content/public/browser/android/download_controller_android.h"
22 #include "jni/ChromeDownloadDelegate_jni.h" 22 #include "jni/ChromeDownloadDelegate_jni.h"
23 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
24 24
25 // Gets the download warning text for the given file name. 25 // Gets the download warning text for the given file name.
26 static ScopedJavaLocalRef<jstring> GetDownloadWarningText(JNIEnv* env, 26 static ScopedJavaLocalRef<jstring> GetDownloadWarningText(
27 jclass clazz, 27 JNIEnv* env,
28 jstring filename) { 28 const JavaParamRef<jclass>& clazz,
29 const JavaParamRef<jstring>& filename) {
29 return base::android::ConvertUTF8ToJavaString( 30 return base::android::ConvertUTF8ToJavaString(
30 env, l10n_util::GetStringFUTF8( 31 env, l10n_util::GetStringFUTF8(
31 IDS_PROMPT_DANGEROUS_DOWNLOAD, 32 IDS_PROMPT_DANGEROUS_DOWNLOAD,
32 base::android::ConvertJavaStringToUTF16(env, filename))); 33 base::android::ConvertJavaStringToUTF16(env, filename)));
33 } 34 }
34 35
35 // Returns true if a file name is dangerous, or false otherwise. 36 // Returns true if a file name is dangerous, or false otherwise.
36 static jboolean IsDownloadDangerous( 37 static jboolean IsDownloadDangerous(JNIEnv* env,
37 JNIEnv* env, jclass clazz, jstring filename) { 38 const JavaParamRef<jclass>& clazz,
39 const JavaParamRef<jstring>& filename) {
38 base::FilePath path(base::android::ConvertJavaStringToUTF8(env, filename)); 40 base::FilePath path(base::android::ConvertJavaStringToUTF8(env, filename));
39 return download_util::GetFileDangerLevel(path) != 41 return download_util::GetFileDangerLevel(path) !=
40 download_util::NOT_DANGEROUS; 42 download_util::NOT_DANGEROUS;
41 } 43 }
42 44
43 // Called when a dangerous download is validated. 45 // Called when a dangerous download is validated.
44 static void DangerousDownloadValidated( 46 static void DangerousDownloadValidated(JNIEnv* env,
45 JNIEnv* env, jclass clazz, jobject tab, jint download_id, jboolean accept) { 47 const JavaParamRef<jclass>& clazz,
48 const JavaParamRef<jobject>& tab,
49 jint download_id,
50 jboolean accept) {
46 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); 51 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab);
47 content::DownloadControllerAndroid::Get()->DangerousDownloadValidated( 52 content::DownloadControllerAndroid::Get()->DangerousDownloadValidated(
48 tab_android->web_contents(), download_id, accept); 53 tab_android->web_contents(), download_id, accept);
49 } 54 }
50 55
51 // static 56 // static
52 void ChromeDownloadDelegate::EnqueueDownloadManagerRequest( 57 void ChromeDownloadDelegate::EnqueueDownloadManagerRequest(
53 jobject chrome_download_delegate, 58 jobject chrome_download_delegate,
54 bool overwrite, 59 bool overwrite,
55 jobject download_info) { 60 jobject download_info) {
56 JNIEnv* env = base::android::AttachCurrentThread(); 61 JNIEnv* env = base::android::AttachCurrentThread();
57 62
58 Java_ChromeDownloadDelegate_enqueueDownloadManagerRequestFromNative( 63 Java_ChromeDownloadDelegate_enqueueDownloadManagerRequestFromNative(
59 env, chrome_download_delegate, overwrite, download_info); 64 env, chrome_download_delegate, overwrite, download_info);
60 } 65 }
61 66
62 // Called when we need to interrupt download and ask users whether to overwrite 67 // Called when we need to interrupt download and ask users whether to overwrite
63 // an existing file. 68 // an existing file.
64 static void LaunchDownloadOverwriteInfoBar(JNIEnv* env, 69 static void LaunchDownloadOverwriteInfoBar(
65 jclass clazz, 70 JNIEnv* env,
66 jobject delegate, 71 const JavaParamRef<jclass>& clazz,
67 jobject tab, 72 const JavaParamRef<jobject>& delegate,
68 jobject download_info, 73 const JavaParamRef<jobject>& tab,
69 jstring jfile_name, 74 const JavaParamRef<jobject>& download_info,
70 jstring jdir_name, 75 const JavaParamRef<jstring>& jfile_name,
71 jstring jdir_full_path) { 76 const JavaParamRef<jstring>& jdir_name,
77 const JavaParamRef<jstring>& jdir_full_path) {
72 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); 78 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab);
73 79
74 std::string file_name = 80 std::string file_name =
75 base::android::ConvertJavaStringToUTF8(env, jfile_name); 81 base::android::ConvertJavaStringToUTF8(env, jfile_name);
76 std::string dir_name = base::android::ConvertJavaStringToUTF8(env, jdir_name); 82 std::string dir_name = base::android::ConvertJavaStringToUTF8(env, jdir_name);
77 std::string dir_full_path = 83 std::string dir_full_path =
78 base::android::ConvertJavaStringToUTF8(env, jdir_full_path); 84 base::android::ConvertJavaStringToUTF8(env, jdir_full_path);
79 85
80 chrome::android::AndroidDownloadManagerOverwriteInfoBarDelegate::Create( 86 chrome::android::AndroidDownloadManagerOverwriteInfoBarDelegate::Create(
81 InfoBarService::FromWebContents(tab_android->web_contents()), file_name, 87 InfoBarService::FromWebContents(tab_android->web_contents()), file_name,
82 dir_name, dir_full_path, delegate, download_info); 88 dir_name, dir_full_path, delegate, download_info);
83 } 89 }
84 90
85 bool RegisterChromeDownloadDelegate(JNIEnv* env) { 91 bool RegisterChromeDownloadDelegate(JNIEnv* env) {
86 return RegisterNativesImpl(env); 92 return RegisterNativesImpl(env);
87 } 93 }
OLDNEW
« no previous file with comments | « chrome/browser/android/document/document_web_contents_delegate.cc ('k') | chrome/browser/android/favicon_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698