OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/android/download_controller_android_impl.h" | 5 #include "content/browser/android/download_controller_android_impl.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "net/cookies/cookie_options.h" | 22 #include "net/cookies/cookie_options.h" |
23 #include "net/cookies/cookie_store.h" | 23 #include "net/cookies/cookie_store.h" |
24 #include "net/http/http_request_headers.h" | 24 #include "net/http/http_request_headers.h" |
25 #include "net/url_request/url_request.h" | 25 #include "net/url_request/url_request.h" |
26 #include "net/url_request/url_request_context.h" | 26 #include "net/url_request/url_request_context.h" |
27 | 27 |
28 using base::android::AttachCurrentThread; | 28 using base::android::AttachCurrentThread; |
29 using base::android::CheckException; | 29 using base::android::CheckException; |
30 using base::android::ConvertUTF8ToJavaString; | 30 using base::android::ConvertUTF8ToJavaString; |
31 using base::android::GetClass; | 31 using base::android::GetClass; |
| 32 using base::android::MethodID; |
32 using base::android::ScopedJavaLocalRef; | 33 using base::android::ScopedJavaLocalRef; |
33 | 34 |
34 namespace { | 35 namespace { |
35 const char kDownloadControllerClassPathName[] = | 36 const char kDownloadControllerClassPathName[] = |
36 "org/chromium/content/browser/DownloadController"; | 37 "org/chromium/content/browser/DownloadController"; |
37 } // namespace | 38 } // namespace |
38 | 39 |
39 namespace content { | 40 namespace content { |
40 | 41 |
41 // JNI methods | 42 // JNI methods |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 | 304 |
304 DownloadControllerAndroidImpl::JavaObject* | 305 DownloadControllerAndroidImpl::JavaObject* |
305 DownloadControllerAndroidImpl::GetJavaObject() { | 306 DownloadControllerAndroidImpl::GetJavaObject() { |
306 if (!java_object_) { | 307 if (!java_object_) { |
307 // Initialize Java DownloadController by calling | 308 // Initialize Java DownloadController by calling |
308 // DownloadController.getInstance(), which will call Init() | 309 // DownloadController.getInstance(), which will call Init() |
309 // if Java DownloadController is not instantiated already. | 310 // if Java DownloadController is not instantiated already. |
310 JNIEnv* env = AttachCurrentThread(); | 311 JNIEnv* env = AttachCurrentThread(); |
311 ScopedJavaLocalRef<jclass> clazz = | 312 ScopedJavaLocalRef<jclass> clazz = |
312 GetClass(env, kDownloadControllerClassPathName); | 313 GetClass(env, kDownloadControllerClassPathName); |
313 jmethodID get_instance = GetStaticMethodID(env, clazz, "getInstance", | 314 jmethodID get_instance = MethodID::Get<MethodID::TYPE_STATIC>( |
| 315 env, clazz.obj(), "getInstance", |
314 "()Lorg/chromium/content/browser/DownloadController;"); | 316 "()Lorg/chromium/content/browser/DownloadController;"); |
315 ScopedJavaLocalRef<jobject> jobj(env, | 317 ScopedJavaLocalRef<jobject> jobj(env, |
316 env->CallStaticObjectMethod(clazz.obj(), get_instance)); | 318 env->CallStaticObjectMethod(clazz.obj(), get_instance)); |
317 CheckException(env); | 319 CheckException(env); |
318 } | 320 } |
319 | 321 |
320 DCHECK(java_object_); | 322 DCHECK(java_object_); |
321 return java_object_; | 323 return java_object_; |
322 } | 324 } |
323 | 325 |
324 DownloadControllerAndroidImpl::DownloadInfoAndroid::DownloadInfoAndroid( | 326 DownloadControllerAndroidImpl::DownloadInfoAndroid::DownloadInfoAndroid( |
325 net::URLRequest* request) { | 327 net::URLRequest* request) { |
326 request->GetResponseHeaderByName("content-disposition", &content_disposition); | 328 request->GetResponseHeaderByName("content-disposition", &content_disposition); |
327 request->GetResponseHeaderByName("mime-type", &original_mime_type); | 329 request->GetResponseHeaderByName("mime-type", &original_mime_type); |
328 request->extra_request_headers().GetHeader( | 330 request->extra_request_headers().GetHeader( |
329 net::HttpRequestHeaders::kUserAgent, &user_agent); | 331 net::HttpRequestHeaders::kUserAgent, &user_agent); |
330 GURL referer_url(request->GetSanitizedReferrer()); | 332 GURL referer_url(request->GetSanitizedReferrer()); |
331 if (referer_url.is_valid()) | 333 if (referer_url.is_valid()) |
332 referer = referer_url.spec(); | 334 referer = referer_url.spec(); |
333 if (!request->url_chain().empty()) { | 335 if (!request->url_chain().empty()) { |
334 original_url = request->url_chain().front(); | 336 original_url = request->url_chain().front(); |
335 url = request->url_chain().back(); | 337 url = request->url_chain().back(); |
336 } | 338 } |
337 } | 339 } |
338 | 340 |
339 DownloadControllerAndroidImpl::DownloadInfoAndroid::~DownloadInfoAndroid() {} | 341 DownloadControllerAndroidImpl::DownloadInfoAndroid::~DownloadInfoAndroid() {} |
340 | 342 |
341 } // namespace content | 343 } // namespace content |
OLD | NEW |