| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/translate/core/browser/translate_ranker_impl.h" | 5 #include "components/translate/core/browser/translate_ranker_impl.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 | 75 |
| 76 const base::Feature kTranslateRankerQuery{"TranslateRankerQuery", | 76 const base::Feature kTranslateRankerQuery{"TranslateRankerQuery", |
| 77 base::FEATURE_DISABLED_BY_DEFAULT}; | 77 base::FEATURE_DISABLED_BY_DEFAULT}; |
| 78 | 78 |
| 79 const base::Feature kTranslateRankerEnforcement{ | 79 const base::Feature kTranslateRankerEnforcement{ |
| 80 "TranslateRankerEnforcement", base::FEATURE_DISABLED_BY_DEFAULT}; | 80 "TranslateRankerEnforcement", base::FEATURE_DISABLED_BY_DEFAULT}; |
| 81 | 81 |
| 82 const base::Feature kTranslateRankerLogging{"TranslateRankerLogging", | 82 const base::Feature kTranslateRankerLogging{"TranslateRankerLogging", |
| 83 base::FEATURE_ENABLED_BY_DEFAULT}; | 83 base::FEATURE_ENABLED_BY_DEFAULT}; |
| 84 | 84 |
| 85 const base::Feature kTranslateRankerDecisionOverride{ |
| 86 "TranslateRankerDecisionOverride", base::FEATURE_DISABLED_BY_DEFAULT}; |
| 87 |
| 85 TranslateRankerFeatures::TranslateRankerFeatures() {} | 88 TranslateRankerFeatures::TranslateRankerFeatures() {} |
| 86 | 89 |
| 87 TranslateRankerFeatures::TranslateRankerFeatures(int accepted, | 90 TranslateRankerFeatures::TranslateRankerFeatures(int accepted, |
| 88 int denied, | 91 int denied, |
| 89 int ignored, | 92 int ignored, |
| 90 const std::string& src, | 93 const std::string& src, |
| 91 const std::string& dst, | 94 const std::string& dst, |
| 92 const std::string& cntry, | 95 const std::string& cntry, |
| 93 const std::string& locale) | 96 const std::string& locale) |
| 94 : accepted_count(accepted), | 97 : accepted_count(accepted), |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 << "ignore_ratio=" << ignored_ratio; | 134 << "ignore_ratio=" << ignored_ratio; |
| 132 } | 135 } |
| 133 | 136 |
| 134 TranslateRankerImpl::TranslateRankerImpl(const base::FilePath& model_path, | 137 TranslateRankerImpl::TranslateRankerImpl(const base::FilePath& model_path, |
| 135 const GURL& model_url) | 138 const GURL& model_url) |
| 136 : is_logging_enabled_( | 139 : is_logging_enabled_( |
| 137 base::FeatureList::IsEnabled(kTranslateRankerLogging)), | 140 base::FeatureList::IsEnabled(kTranslateRankerLogging)), |
| 138 is_query_enabled_(base::FeatureList::IsEnabled(kTranslateRankerQuery)), | 141 is_query_enabled_(base::FeatureList::IsEnabled(kTranslateRankerQuery)), |
| 139 is_enforcement_enabled_( | 142 is_enforcement_enabled_( |
| 140 base::FeatureList::IsEnabled(kTranslateRankerEnforcement)), | 143 base::FeatureList::IsEnabled(kTranslateRankerEnforcement)), |
| 144 is_decision_override_enabled_(base::FeatureList::IsEnabled( |
| 145 translate::kTranslateRankerDecisionOverride)), |
| 141 weak_ptr_factory_(this) { | 146 weak_ptr_factory_(this) { |
| 142 if (IsQueryEnabled() || IsEnforcementEnabled()) { | 147 if (IsQueryEnabled() || IsEnforcementEnabled() || |
| 148 IsDecisionOverrideEnabled()) { |
| 143 model_loader_ = base::MakeUnique<RankerModelLoader>( | 149 model_loader_ = base::MakeUnique<RankerModelLoader>( |
| 144 base::Bind(&ValidateModel), | 150 base::Bind(&ValidateModel), |
| 145 base::Bind(&TranslateRankerImpl::OnModelAvailable, | 151 base::Bind(&TranslateRankerImpl::OnModelAvailable, |
| 146 weak_ptr_factory_.GetWeakPtr()), | 152 weak_ptr_factory_.GetWeakPtr()), |
| 147 model_path, model_url, kUmaPrefix); | 153 model_path, model_url, kUmaPrefix); |
| 148 model_loader_->Start(); | 154 model_loader_->Start(); |
| 149 } | 155 } |
| 150 } | 156 } |
| 151 | 157 |
| 152 TranslateRankerImpl::~TranslateRankerImpl() {} | 158 TranslateRankerImpl::~TranslateRankerImpl() {} |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 } | 195 } |
| 190 | 196 |
| 191 bool TranslateRankerImpl::IsQueryEnabled() { | 197 bool TranslateRankerImpl::IsQueryEnabled() { |
| 192 return is_query_enabled_; | 198 return is_query_enabled_; |
| 193 } | 199 } |
| 194 | 200 |
| 195 bool TranslateRankerImpl::IsEnforcementEnabled() { | 201 bool TranslateRankerImpl::IsEnforcementEnabled() { |
| 196 return is_enforcement_enabled_; | 202 return is_enforcement_enabled_; |
| 197 } | 203 } |
| 198 | 204 |
| 205 bool TranslateRankerImpl::IsDecisionOverrideEnabled() { |
| 206 return is_decision_override_enabled_; |
| 207 } |
| 208 |
| 199 int TranslateRankerImpl::GetModelVersion() const { | 209 int TranslateRankerImpl::GetModelVersion() const { |
| 200 return model_ ? model_->proto().translate().version() : 0; | 210 return model_ ? model_->proto().translate().version() : 0; |
| 201 } | 211 } |
| 202 | 212 |
| 203 bool TranslateRankerImpl::ShouldOfferTranslation( | 213 bool TranslateRankerImpl::ShouldOfferTranslation( |
| 204 const TranslatePrefs& translate_prefs, | 214 const TranslatePrefs& translate_prefs, |
| 205 const std::string& src_lang, | 215 const std::string& src_lang, |
| 206 const std::string& dst_lang) { | 216 const std::string& dst_lang) { |
| 207 DCHECK(sequence_checker_.CalledOnValidSequence()); | 217 DCHECK(sequence_checker_.CalledOnValidSequence()); |
| 208 // The ranker is a gate in the "show a translation prompt" flow. To retain | 218 // The ranker is a gate in the "show a translation prompt" flow. To retain |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 return model_loader_ != nullptr; | 302 return model_loader_ != nullptr; |
| 293 } | 303 } |
| 294 | 304 |
| 295 } // namespace translate | 305 } // namespace translate |
| 296 | 306 |
| 297 std::ostream& operator<<(std::ostream& stream, | 307 std::ostream& operator<<(std::ostream& stream, |
| 298 const translate::TranslateRankerFeatures& features) { | 308 const translate::TranslateRankerFeatures& features) { |
| 299 features.WriteTo(stream); | 309 features.WriteTo(stream); |
| 300 return stream; | 310 return stream; |
| 301 } | 311 } |
| OLD | NEW |