| // Copyright 2014 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "base/android/jni_array.h" |
| #include "base/android/jni_string.h" |
| #include "base/android/scoped_java_ref.h" |
| #include "components/omnibox/browser/autocomplete_input.h" |
| #include "components/omnibox/browser/autocomplete_scheme_classifier.h" |
| #include "components/omnibox/browser/autocomplete_scheme_classifier_android.h" |
| |
| // Must come after all headers that specialize FromJniType() / ToJniType(). |
| #include "components/omnibox/browser/scheme_classifier_jni/OmniboxUrlEmphasizer_jni.h" |
| |
| using base::android::JavaParamRef; |
| using base::android::ScopedJavaLocalRef; |
| |
| // static |
| ScopedJavaLocalRef<jintArray> |
| JNI_OmniboxUrlEmphasizer_ParseForEmphasizeComponents( |
| JNIEnv* env, |
| const JavaParamRef<jstring>& jtext, |
| const base::android::JavaParamRef<jobject>& |
| jautocomplete_scheme_classifier) { |
| AutocompleteSchemeClassifier* autocomplete_scheme_classifier = |
| AutocompleteSchemeClassifierAndroid::FromJavaObj( |
| jautocomplete_scheme_classifier); |
| DCHECK(autocomplete_scheme_classifier); |
| |
| std::u16string text(base::android::ConvertJavaStringToUTF16(env, jtext)); |
| |
| url::Component scheme, host; |
| AutocompleteInput::ParseForEmphasizeComponents( |
| text, *autocomplete_scheme_classifier, &scheme, &host); |
| |
| int emphasize_values[] = {scheme.begin, scheme.len, host.begin, host.len}; |
| return base::android::ToJavaIntArray(env, emphasize_values); |
| } |