| 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 |