Chromium Code Reviews| Index: extensions/renderer/i18n_custom_bindings.cc |
| diff --git a/extensions/renderer/i18n_custom_bindings.cc b/extensions/renderer/i18n_custom_bindings.cc |
| index 7799d9d01a14917df75658b4d8434e471ba9d662..be20d3829de7199b84da66073cdf359ada1cefc2 100644 |
| --- a/extensions/renderer/i18n_custom_bindings.cc |
| +++ b/extensions/renderer/i18n_custom_bindings.cc |
| @@ -10,6 +10,7 @@ |
| #include <vector> |
| #include "base/bind.h" |
| +#include "base/logging.h" |
| #include "base/macros.h" |
| #include "base/memory/ptr_util.h" |
| #include "base/metrics/histogram_macros.h" |
| @@ -135,6 +136,7 @@ void InitDetectedLanguages( |
| LanguageDetectionResult* result) { |
| std::vector<std::unique_ptr<DetectedLanguage>>* detected_languages = |
| &result->languages; |
| + DCHECK(detected_languages->empty()); |
| bool* is_reliable = &result->is_reliable; |
| // is_reliable is set to "true", so that the reliability can be calculated by |
| @@ -144,20 +146,31 @@ void InitDetectedLanguages( |
| const chrome_lang_id::NNetLanguageIdentifier::Result& lang_result = |
| lang_results.at(i); |
| const std::string& language_code = lang_result.language; |
| + |
| + // If the first language is kUnknown, then all languages are kUnknown. |
| if (language_code == chrome_lang_id::NNetLanguageIdentifier::kUnknown) { |
| - // If the first language is kUnknown, then all languages are kUnknown. |
| - // Thus, is_reliable is set to "false". |
| - if (i == 0) { |
| - *is_reliable = false; |
| - } |
| break; |
| } |
| + // The list of languages supported by CLD3 is saved in kLanguageNames |
| + // in the following file: |
| + // //src/third_party/cld_3/src/src/task_context_params.cc |
| + // To maintain backwards compatibility, xx-Latn predictions are ignored |
|
Devlin
2016/09/27 22:34:28
We should still provide more detail here. Why doe
Anton Bakalov
2016/09/28 04:23:26
Done.
|
| + // for now. |
| + if (base::EndsWith(language_code, "-Latn", |
| + base::CompareCase::INSENSITIVE_ASCII)) { |
| + continue; |
| + } |
| + |
| *is_reliable = *is_reliable && lang_result.is_reliable; |
| const int percent = static_cast<int>(100 * lang_result.proportion); |
| detected_languages->push_back( |
| base::MakeUnique<DetectedLanguage>(language_code, percent)); |
| } |
| + |
| + if (detected_languages->empty()) { |
| + *is_reliable = false; |
| + } |
| } |
| #else |
| # error "CLD_VERSION must be 2 or 3" |