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

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

Issue 2478583004: implementation for new duplicate download UI (Closed)
Patch Set: do null check on webcontents Created 4 years, 1 month 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 "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
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
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);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698