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 "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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |