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

Side by Side Diff: chrome/browser/android/provider/chrome_browser_provider.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 "chrome/browser/android/provider/chrome_browser_provider.h" 5 #include "chrome/browser/android/provider/chrome_browser_provider.h"
6 6
7 #include <list> 7 #include <list>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 30 matching lines...) Expand all
41 #include "ui/gfx/favicon_size.h" 41 #include "ui/gfx/favicon_size.h"
42 42
43 using base::android::AttachCurrentThread; 43 using base::android::AttachCurrentThread;
44 using base::android::CheckException; 44 using base::android::CheckException;
45 using base::android::ClearException; 45 using base::android::ClearException;
46 using base::android::ConvertJavaStringToUTF16; 46 using base::android::ConvertJavaStringToUTF16;
47 using base::android::ConvertJavaStringToUTF8; 47 using base::android::ConvertJavaStringToUTF8;
48 using base::android::ConvertUTF8ToJavaString; 48 using base::android::ConvertUTF8ToJavaString;
49 using base::android::ConvertUTF16ToJavaString; 49 using base::android::ConvertUTF16ToJavaString;
50 using base::android::GetClass; 50 using base::android::GetClass;
51 using base::android::GetMethodID; 51 using base::android::MethodID;
52 using base::android::JavaRef; 52 using base::android::JavaRef;
53 using base::android::ScopedJavaGlobalRef; 53 using base::android::ScopedJavaGlobalRef;
54 using base::android::ScopedJavaLocalRef; 54 using base::android::ScopedJavaLocalRef;
55 using content::BrowserThread; 55 using content::BrowserThread;
56 56
57 // After refactoring the following class hierarchy has been created in order 57 // After refactoring the following class hierarchy has been created in order
58 // to avoid repeating code again for the same basic kind of tasks, to enforce 58 // to avoid repeating code again for the same basic kind of tasks, to enforce
59 // the correct thread usage and to prevent known race conditions and deadlocks. 59 // the correct thread usage and to prevent known race conditions and deadlocks.
60 // 60 //
61 // - RunOnUIThreadBlocking: auxiliary class to run methods in the UI thread 61 // - RunOnUIThreadBlocking: auxiliary class to run methods in the UI thread
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 ConvertUTF16ToJavaString(env, node->GetTitle())); 112 ConvertUTF16ToJavaString(env, node->GetTitle()));
113 113
114 jnode->Reset( 114 jnode->Reset(
115 Java_BookmarkNode_create( 115 Java_BookmarkNode_create(
116 env, node->id(), (jint) node->type(), title.obj(), url.obj(), 116 env, node->id(), (jint) node->type(), title.obj(), url.obj(),
117 parent_node.obj())); 117 parent_node.obj()));
118 } 118 }
119 119
120 jlong ConvertJLongObjectToPrimitive(JNIEnv* env, jobject long_obj) { 120 jlong ConvertJLongObjectToPrimitive(JNIEnv* env, jobject long_obj) {
121 ScopedJavaLocalRef<jclass> jlong_clazz = GetClass(env, "java/lang/Long"); 121 ScopedJavaLocalRef<jclass> jlong_clazz = GetClass(env, "java/lang/Long");
122 jmethodID long_value = GetMethodID(env, jlong_clazz, "longValue", "()J"); 122 jmethodID long_value = MethodID::Get<MethodID::TYPE_INSTANCE>(
123 env, jlong_clazz.obj(), "longValue", "()J");
123 return env->CallLongMethod(long_obj, long_value, NULL); 124 return env->CallLongMethod(long_obj, long_value, NULL);
124 } 125 }
125 126
126 jboolean ConvertJBooleanObjectToPrimitive(JNIEnv* env, jobject boolean_object) { 127 jboolean ConvertJBooleanObjectToPrimitive(JNIEnv* env, jobject boolean_object) {
127 ScopedJavaLocalRef<jclass> jboolean_clazz = 128 ScopedJavaLocalRef<jclass> jboolean_clazz =
128 GetClass(env, "java/lang/Boolean"); 129 GetClass(env, "java/lang/Boolean");
129 jmethodID boolean_value = 130 jmethodID boolean_value = MethodID::Get<MethodID::TYPE_INSTANCE>(
130 GetMethodID(env, jboolean_clazz, "booleanValue", "()Z"); 131 env, jboolean_clazz.obj(), "booleanValue", "()Z");
131 return env->CallBooleanMethod(boolean_object, boolean_value, NULL); 132 return env->CallBooleanMethod(boolean_object, boolean_value, NULL);
132 } 133 }
133 134
134 base::Time ConvertJlongToTime(jlong value) { 135 base::Time ConvertJlongToTime(jlong value) {
135 return base::Time::UnixEpoch() + 136 return base::Time::UnixEpoch() +
136 base::TimeDelta::FromMilliseconds((int64)value); 137 base::TimeDelta::FromMilliseconds((int64)value);
137 } 138 }
138 139
139 jint ConvertJIntegerToJint(JNIEnv* env, jobject integer_obj) { 140 jint ConvertJIntegerToJint(JNIEnv* env, jobject integer_obj) {
140 ScopedJavaLocalRef<jclass> jinteger_clazz = 141 ScopedJavaLocalRef<jclass> jinteger_clazz =
141 GetClass(env, "java/lang/Integer"); 142 GetClass(env, "java/lang/Integer");
142 jmethodID int_value = GetMethodID(env, jinteger_clazz, "intValue", "()I"); 143 jmethodID int_value = MethodID::Get<MethodID::TYPE_INSTANCE>(
144 env, jinteger_clazz.obj(), "intValue", "()I");
143 return env->CallIntMethod(integer_obj, int_value, NULL); 145 return env->CallIntMethod(integer_obj, int_value, NULL);
144 } 146 }
145 147
146 std::vector<string16> ConvertJStringArrayToString16Array(JNIEnv* env, 148 std::vector<string16> ConvertJStringArrayToString16Array(JNIEnv* env,
147 jobjectArray array) { 149 jobjectArray array) {
148 std::vector<string16> results; 150 std::vector<string16> results;
149 if (array) { 151 if (array) {
150 jsize len = env->GetArrayLength(array); 152 jsize len = env->GetArrayLength(array);
151 for (int i = 0; i < len; i++) { 153 for (int i = 0; i < len; i++) {
152 results.push_back(ConvertJavaStringToUTF16(env, 154 results.push_back(ConvertJavaStringToUTF16(env,
(...skipping 1414 matching lines...) Expand 10 before | Expand all | Expand 10 after
1567 chrome::NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED) { 1569 chrome::NOTIFICATION_HISTORY_KEYWORD_SEARCH_TERM_UPDATED) {
1568 JNIEnv* env = AttachCurrentThread(); 1570 JNIEnv* env = AttachCurrentThread();
1569 ScopedJavaLocalRef<jobject> obj = weak_java_provider_.get(env); 1571 ScopedJavaLocalRef<jobject> obj = weak_java_provider_.get(env);
1570 if (obj.is_null()) 1572 if (obj.is_null())
1571 return; 1573 return;
1572 Java_ChromeBrowserProvider_onSearchTermChanged(env, obj.obj()); 1574 Java_ChromeBrowserProvider_onSearchTermChanged(env, obj.obj());
1573 } else if (type == chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED) { 1575 } else if (type == chrome::NOTIFICATION_TEMPLATE_URL_SERVICE_LOADED) {
1574 template_loaded_event_.Signal(); 1576 template_loaded_event_.Signal();
1575 } 1577 }
1576 } 1578 }
OLDNEW
« no previous file with comments | « chrome/browser/android/chrome_web_contents_delegate_android.cc ('k') | chrome/browser/history/android/sqlite_cursor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698