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