OLD | NEW |
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 "chrome/browser/android/download/android_download_manager_overwrite_inf
obar_delegate.h" | 18 #include "chrome/browser/android/download/android_download_manager_duplicate_inf
obar_delegate.h" |
19 #include "chrome/browser/android/download/download_controller_base.h" | 19 #include "chrome/browser/android/download/download_controller_base.h" |
20 #include "chrome/browser/android/tab_android.h" | 20 #include "chrome/browser/android/tab_android.h" |
21 #include "chrome/browser/infobars/infobar_service.h" | 21 #include "chrome/browser/infobars/infobar_service.h" |
22 #include "chrome/browser/permissions/permission_update_infobar_delegate_android.
h" | 22 #include "chrome/browser/permissions/permission_update_infobar_delegate_android.
h" |
23 #include "chrome/common/safe_browsing/file_type_policies.h" | 23 #include "chrome/common/safe_browsing/file_type_policies.h" |
24 #include "chrome/grit/chromium_strings.h" | 24 #include "chrome/grit/chromium_strings.h" |
25 #include "chrome/grit/generated_resources.h" | 25 #include "chrome/grit/generated_resources.h" |
26 #include "jni/ChromeDownloadDelegate_jni.h" | 26 #include "jni/ChromeDownloadDelegate_jni.h" |
27 #include "ui/base/l10n/l10n_util.h" | 27 #include "ui/base/l10n/l10n_util.h" |
28 | 28 |
(...skipping 26 matching lines...) Expand all Loading... |
55 bool ChromeDownloadDelegate::EnqueueDownloadManagerRequest( | 55 bool ChromeDownloadDelegate::EnqueueDownloadManagerRequest( |
56 jobject chrome_download_delegate, | 56 jobject chrome_download_delegate, |
57 bool overwrite, | 57 bool overwrite, |
58 jobject download_info) { | 58 jobject download_info) { |
59 JNIEnv* env = base::android::AttachCurrentThread(); | 59 JNIEnv* env = base::android::AttachCurrentThread(); |
60 | 60 |
61 return Java_ChromeDownloadDelegate_enqueueDownloadManagerRequestFromNative( | 61 return Java_ChromeDownloadDelegate_enqueueDownloadManagerRequestFromNative( |
62 env, chrome_download_delegate, overwrite, download_info); | 62 env, chrome_download_delegate, overwrite, download_info); |
63 } | 63 } |
64 | 64 |
65 // Called when we need to interrupt download and ask users whether to overwrite | 65 // Called when we need to interrupt download and ask user whether to proceed |
66 // an existing file. | 66 // as there is already an existing file. |
67 static void LaunchDownloadOverwriteInfoBar( | 67 static void LaunchDuplicateDownloadInfoBar( |
68 JNIEnv* env, | 68 JNIEnv* env, |
69 const JavaParamRef<jclass>& clazz, | 69 const JavaParamRef<jclass>& clazz, |
70 const JavaParamRef<jobject>& delegate, | 70 const JavaParamRef<jobject>& delegate, |
71 const JavaParamRef<jobject>& tab, | 71 const JavaParamRef<jobject>& tab, |
72 const JavaParamRef<jobject>& download_info, | 72 const JavaParamRef<jobject>& download_info, |
73 const JavaParamRef<jstring>& jfile_name, | 73 const JavaParamRef<jstring>& jfile_path, |
74 const JavaParamRef<jstring>& jdir_name, | 74 jboolean is_incognito) { |
75 const JavaParamRef<jstring>& jdir_full_path) { | |
76 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); | 75 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); |
77 | 76 |
78 std::string file_name = | 77 std::string file_path = |
79 base::android::ConvertJavaStringToUTF8(env, jfile_name); | 78 base::android::ConvertJavaStringToUTF8(env, jfile_path); |
80 std::string dir_name = base::android::ConvertJavaStringToUTF8(env, jdir_name); | |
81 std::string dir_full_path = | |
82 base::android::ConvertJavaStringToUTF8(env, jdir_full_path); | |
83 | 79 |
84 chrome::android::AndroidDownloadManagerOverwriteInfoBarDelegate::Create( | 80 chrome::android::AndroidDownloadManagerDuplicateInfoBarDelegate::Create( |
85 InfoBarService::FromWebContents(tab_android->web_contents()), file_name, | 81 InfoBarService::FromWebContents(tab_android->web_contents()), file_path, |
86 dir_name, dir_full_path, delegate, download_info); | 82 delegate, download_info, is_incognito); |
87 } | 83 } |
88 | 84 |
89 static void LaunchPermissionUpdateInfoBar( | 85 static void LaunchPermissionUpdateInfoBar( |
90 JNIEnv* env, | 86 JNIEnv* env, |
91 const JavaParamRef<jclass>& clazz, | 87 const JavaParamRef<jclass>& clazz, |
92 const JavaParamRef<jobject>& tab, | 88 const JavaParamRef<jobject>& tab, |
93 const JavaParamRef<jstring>& jpermission, | 89 const JavaParamRef<jstring>& jpermission, |
94 jlong callback_id) { | 90 jlong callback_id) { |
95 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); | 91 TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); |
96 | 92 |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 auto* web_contents = WebContents::FromJavaWebContents(jweb_contents); | 143 auto* web_contents = WebContents::FromJavaWebContents(jweb_contents); |
148 ChromeDownloadDelegate::CreateForWebContents(web_contents); | 144 ChromeDownloadDelegate::CreateForWebContents(web_contents); |
149 ChromeDownloadDelegate::FromWebContents(web_contents)->SetJavaRef(env, obj); | 145 ChromeDownloadDelegate::FromWebContents(web_contents)->SetJavaRef(env, obj); |
150 } | 146 } |
151 | 147 |
152 bool RegisterChromeDownloadDelegate(JNIEnv* env) { | 148 bool RegisterChromeDownloadDelegate(JNIEnv* env) { |
153 return RegisterNativesImpl(env); | 149 return RegisterNativesImpl(env); |
154 } | 150 } |
155 | 151 |
156 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ChromeDownloadDelegate); | 152 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ChromeDownloadDelegate); |
OLD | NEW |