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()); |
} |