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

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

Issue 2371773003: Clean up Android DownloadManager code as most download now go through Chrome Network stack (Closed)
Patch Set: Created 4 years, 2 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>
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 135
136 ChromeDownloadDelegate::~ChromeDownloadDelegate() { 136 ChromeDownloadDelegate::~ChromeDownloadDelegate() {
137 JNIEnv* env = base::android::AttachCurrentThread(); 137 JNIEnv* env = base::android::AttachCurrentThread();
138 env->DeleteGlobalRef(java_ref_); 138 env->DeleteGlobalRef(java_ref_);
139 } 139 }
140 140
141 void ChromeDownloadDelegate::SetJavaRef(JNIEnv* env, jobject jobj) { 141 void ChromeDownloadDelegate::SetJavaRef(JNIEnv* env, jobject jobj) {
142 java_ref_ = env->NewGlobalRef(jobj); 142 java_ref_ = env->NewGlobalRef(jobj);
143 } 143 }
144 144
145 void ChromeDownloadDelegate::RequestHTTPGetDownload( 145 void ChromeDownloadDelegate::OnDownloadStarted(const std::string& filename) {
146 const std::string& url,
147 const std::string& user_agent,
148 const std::string& content_disposition,
149 const std::string& mime_type,
150 const std::string& cookie,
151 const std::string& referer,
152 const base::string16& file_name,
153 int64_t content_length,
154 bool has_user_gesture,
155 bool must_download) {
156 JNIEnv* env = base::android::AttachCurrentThread();
157 ScopedJavaLocalRef<jstring> jurl =
158 ConvertUTF8ToJavaString(env, url);
159 ScopedJavaLocalRef<jstring> juser_agent =
160 ConvertUTF8ToJavaString(env, user_agent);
161 ScopedJavaLocalRef<jstring> jcontent_disposition =
162 ConvertUTF8ToJavaString(env, content_disposition);
163 ScopedJavaLocalRef<jstring> jmime_type =
164 ConvertUTF8ToJavaString(env, mime_type);
165 ScopedJavaLocalRef<jstring> jcookie =
166 ConvertUTF8ToJavaString(env, cookie);
167 ScopedJavaLocalRef<jstring> jreferer =
168 ConvertUTF8ToJavaString(env, referer);
169
170 // net::GetSuggestedFilename will fallback to "download" as filename.
171 ScopedJavaLocalRef<jstring> jfilename =
172 base::android::ConvertUTF16ToJavaString(env, file_name);
173 Java_ChromeDownloadDelegate_requestHttpGetDownload(
174 env, java_ref_, jurl, juser_agent, jcontent_disposition, jmime_type,
175 jcookie, jreferer, has_user_gesture, jfilename, content_length,
176 must_download);
177 }
178
179 void ChromeDownloadDelegate::OnDownloadStarted(const std::string& filename,
180 const std::string& mime_type) {
181 JNIEnv* env = base::android::AttachCurrentThread(); 146 JNIEnv* env = base::android::AttachCurrentThread();
182 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString( 147 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
183 env, filename); 148 env, filename);
184 ScopedJavaLocalRef<jstring> jmime_type = 149 Java_ChromeDownloadDelegate_onDownloadStarted(env, java_ref_, jfilename);
185 ConvertUTF8ToJavaString(env, mime_type);
186 Java_ChromeDownloadDelegate_onDownloadStarted(env, java_ref_, jfilename,
187 jmime_type);
188 } 150 }
189 151
190 void ChromeDownloadDelegate::OnDangerousDownload(const std::string& filename, 152 void ChromeDownloadDelegate::OnDangerousDownload(const std::string& filename,
191 const std::string& guid) { 153 const std::string& guid) {
192 JNIEnv* env = base::android::AttachCurrentThread(); 154 JNIEnv* env = base::android::AttachCurrentThread();
193 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString( 155 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString(
194 env, filename); 156 env, filename);
195 ScopedJavaLocalRef<jstring> jguid = ConvertUTF8ToJavaString(env, guid); 157 ScopedJavaLocalRef<jstring> jguid = ConvertUTF8ToJavaString(env, guid);
196 Java_ChromeDownloadDelegate_onDangerousDownload(env, java_ref_, jfilename, 158 Java_ChromeDownloadDelegate_onDangerousDownload(env, java_ref_, jfilename,
197 jguid); 159 jguid);
(...skipping 11 matching lines...) Expand all
209 auto* web_contents = WebContents::FromJavaWebContents(jweb_contents); 171 auto* web_contents = WebContents::FromJavaWebContents(jweb_contents);
210 ChromeDownloadDelegate::CreateForWebContents(web_contents); 172 ChromeDownloadDelegate::CreateForWebContents(web_contents);
211 ChromeDownloadDelegate::FromWebContents(web_contents)->SetJavaRef(env, obj); 173 ChromeDownloadDelegate::FromWebContents(web_contents)->SetJavaRef(env, obj);
212 } 174 }
213 175
214 bool RegisterChromeDownloadDelegate(JNIEnv* env) { 176 bool RegisterChromeDownloadDelegate(JNIEnv* env) {
215 return RegisterNativesImpl(env); 177 return RegisterNativesImpl(env);
216 } 178 }
217 179
218 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ChromeDownloadDelegate); 180 DEFINE_WEB_CONTENTS_USER_DATA_KEY(ChromeDownloadDelegate);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698