Index: chrome/browser/android/bookmarks/bookmarks_bridge.cc |
diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.cc b/chrome/browser/android/bookmarks/bookmarks_bridge.cc |
index a9ba6bb98b0932cff05f0dbf924d7dd908d30e51..1cc34a344d96b910ec26feaec3c6c7a3de3b098d 100644 |
--- a/chrome/browser/android/bookmarks/bookmarks_bridge.cc |
+++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc |
@@ -594,6 +594,45 @@ void BookmarksBridge::GetCurrentFolderHierarchy(JNIEnv* env, |
env, j_callback_obj, j_folder_id_obj, j_result_obj); |
} |
+void BookmarksBridge::SearchBookmarks(JNIEnv* env, |
+ jobject obj, |
+ jobject j_list, |
+ jstring j_query, |
+ jint max_results) { |
+ DCHECK(bookmark_model_->loaded()); |
+ |
+ std::vector<bookmarks::BookmarkMatch> results; |
+ bookmark_model_->GetBookmarksMatching( |
+ base::android::ConvertJavaStringToUTF16(env, j_query), |
+ max_results, |
+ query_parser::MatchingAlgorithm::ALWAYS_PREFIX_SEARCH, |
+ &results); |
+ for (const bookmarks::BookmarkMatch& match : results) { |
+ const BookmarkNode* node = match.node; |
+ |
+ std::vector<int> title_match_start_positions; |
+ std::vector<int> title_match_end_positions; |
+ for (auto position : match.title_match_positions) { |
+ title_match_start_positions.push_back(position.first); |
+ title_match_end_positions.push_back(position.second); |
+ } |
+ |
+ std::vector<int> url_match_start_positions; |
+ std::vector<int> url_match_end_positions; |
+ for (auto position : match.url_match_positions) { |
+ url_match_start_positions.push_back(position.first); |
+ url_match_end_positions.push_back(position.second); |
+ } |
+ |
+ Java_BookmarksBridge_addToBookmarkMatchList( |
+ env, j_list, node->id(), node->type(), |
+ ToJavaIntArray(env, title_match_start_positions).obj(), |
+ ToJavaIntArray(env, title_match_end_positions).obj(), |
+ ToJavaIntArray(env, url_match_start_positions).obj(), |
+ ToJavaIntArray(env, url_match_end_positions).obj()); |
+ } |
+} |
+ |
ScopedJavaLocalRef<jobject> BookmarksBridge::AddFolder(JNIEnv* env, |
jobject obj, |
jobject j_parent_id_obj, |