Chromium Code Reviews| Index: chrome/browser/android/omnibox/autocomplete_controller_android.cc |
| diff --git a/chrome/browser/android/omnibox/autocomplete_controller_android.cc b/chrome/browser/android/omnibox/autocomplete_controller_android.cc |
| index c976ebee25250f3c019b40939a17c2531c0f90c3..b1350b011f9d3ada269ff7c9a188269c4f3322f4 100644 |
| --- a/chrome/browser/android/omnibox/autocomplete_controller_android.cc |
| +++ b/chrome/browser/android/omnibox/autocomplete_controller_android.cc |
| @@ -115,7 +115,7 @@ void ZeroSuggestPrefetcher::OnResultChanged(bool default_match_changed) { |
| AutocompleteControllerAndroid::AutocompleteControllerAndroid(Profile* profile) |
| : autocomplete_controller_(new AutocompleteController( |
| profile, this, kAndroidAutocompleteProviders)), |
| - inside_classify_(false), |
| + inside_synchronous_start_(false), |
| profile_(profile) { |
| } |
| @@ -159,9 +159,9 @@ ScopedJavaLocalRef<jobject> AutocompleteControllerAndroid::Classify( |
| if (!autocomplete_controller_) |
| return ScopedJavaLocalRef<jobject>(); |
| - inside_classify_ = true; |
| + inside_synchronous_start_ = true; |
| Start(env, obj, j_text, NULL, NULL, true, false, false, false); |
| - inside_classify_ = false; |
| + inside_synchronous_start_ = false; |
| DCHECK(autocomplete_controller_->done()); |
| const AutocompleteResult& result = autocomplete_controller_->result(); |
| if (result.empty()) |
| @@ -274,6 +274,35 @@ AutocompleteControllerAndroid::UpdateMatchDestinationURL( |
| return ConvertUTF8ToJavaString(env, match.destination_url.spec()); |
| } |
| +ScopedJavaLocalRef<jobject> |
| +AutocompleteControllerAndroid::GetTopSynchronousMatch(JNIEnv* env, |
|
Yusuf
2014/06/05 21:56:06
One question is the difference between this and cl
|
| + jobject obj, |
| + jstring query) { |
| + if (!autocomplete_controller_) |
| + return ScopedJavaLocalRef<jobject>(); |
| + |
| + base::string16 text(ConvertJavaStringToUTF16(env, query)); |
| + // Request synchronous matches only. |
| + AutocompleteInput input(text, |
| + base::string16::npos, |
| + base::string16(), |
| + GURL(), |
| + AutocompleteInput::INVALID_SPEC, |
| + false, |
| + false, |
| + false, |
| + false); |
| + inside_synchronous_start_ = true; |
| + autocomplete_controller_->Start(input); |
| + inside_synchronous_start_ = false; |
| + DCHECK(autocomplete_controller_->done()); |
| + const AutocompleteResult& result = autocomplete_controller_->result(); |
| + if (result.empty()) |
| + return ScopedJavaLocalRef<jobject>(); |
| + |
| + return BuildOmniboxSuggestion(env, *result.begin()); |
| +} |
| + |
| void AutocompleteControllerAndroid::Shutdown() { |
| autocomplete_controller_.reset(); |
| @@ -333,7 +362,7 @@ void AutocompleteControllerAndroid::InitJNI(JNIEnv* env, jobject obj) { |
| void AutocompleteControllerAndroid::OnResultChanged( |
| bool default_match_changed) { |
| - if (autocomplete_controller_.get() != NULL && !inside_classify_) |
| + if (autocomplete_controller_.get() != NULL && !inside_synchronous_start_) |
| NotifySuggestionsReceived(autocomplete_controller_->result()); |
| } |