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

Side by Side Diff: content/browser/android/download_controller_android_impl.cc

Issue 11038015: Android: lazy initialization for method id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 8 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 | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « content/browser/android/content_view_core_impl.cc ('k') | content/browser/android/surface_texture_peer_browser_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698