Index: components/translate/core/browser/translate_manager.cc |
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc |
index cd10a75ed8ac4e003ed4705582fa52063a534da8..2466bd58a040e63363f331bbd7a914b2d1b398e9 100644 |
--- a/components/translate/core/browser/translate_manager.cc |
+++ b/components/translate/core/browser/translate_manager.cc |
@@ -131,17 +131,16 @@ TranslateManager::RegisterTranslateErrorCallback( |
TranslateManager::TranslateManager( |
TranslateClient* translate_client, |
+ TranslateRanker* translate_ranker, |
const std::string& accept_languages_pref_name) |
: page_seq_no_(0), |
accept_languages_pref_name_(accept_languages_pref_name), |
translate_client_(translate_client), |
translate_driver_(translate_client_->GetTranslateDriver()), |
+ translate_ranker_(translate_ranker), |
language_state_(translate_driver_), |
translate_event_(base::MakeUnique<metrics::TranslateEventProto>()), |
- weak_method_factory_(this) { |
- if (TranslateRanker::IsEnabled()) |
- TranslateRanker::GetInstance()->FetchModelData(); // Asynchronous. |
-} |
+ weak_method_factory_(this) {} |
base::WeakPtr<TranslateManager> TranslateManager::GetWeakPtr() { |
return weak_method_factory_.GetWeakPtr(); |
@@ -232,6 +231,22 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { |
TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); |
return; |
} |
+ |
+ bool ranker_should_offer_translation = true; |
+ if (translate_ranker_->IsQueryEnabled() || |
+ translate_ranker_->IsLoggingEnabled() || |
+ translate_ranker_->IsEnforcementEnabled()) { |
+ ranker_should_offer_translation = translate_ranker_->ShouldOfferTranslation( |
+ *translate_prefs, language_code, target_lang); |
+ translate_event_->set_ranker_request_timestamp_sec( |
+ (base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); |
+ translate_event_->set_ranker_version(translate_ranker_->GetModelVersion()); |
+ translate_event_->set_ranker_response( |
+ ranker_should_offer_translation |
+ ? metrics::TranslateEventProto::SHOW |
+ : metrics::TranslateEventProto::DONT_SHOW); |
+ } |
+ |
// Nothing to do if either the language Chrome is in or the language of the |
// page is not supported by the translation server. |
if (target_lang.empty() || |
@@ -302,22 +317,12 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { |
return; |
} |
- if (TranslateRanker::IsEnabled()) { |
- TranslateRanker* translate_ranker = TranslateRanker::GetInstance(); |
- bool should_offer_translation = translate_ranker->ShouldOfferTranslation( |
- *translate_prefs, language_code, target_lang); |
- translate_event_->set_ranker_request_timestamp_sec( |
- (base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); |
- translate_event_->set_ranker_version(translate_ranker->GetModelVersion()); |
- translate_event_->set_ranker_response( |
- should_offer_translation ? metrics::TranslateEventProto::SHOW |
- : metrics::TranslateEventProto::DONT_SHOW); |
- if (!should_offer_translation && TranslateRanker::IsEnforcementEnabled()) { |
- TranslateBrowserMetrics::ReportInitiationStatus( |
- TranslateBrowserMetrics::INITIATION_STATUS_ABORTED_BY_RANKER); |
- RecordTranslateEvent(metrics::TranslateEventProto::DISABLED_BY_RANKER); |
- return; |
- } |
+ if (!ranker_should_offer_translation && |
+ translate_ranker_->IsEnforcementEnabled()) { |
+ TranslateBrowserMetrics::ReportInitiationStatus( |
+ TranslateBrowserMetrics::INITIATION_STATUS_ABORTED_BY_RANKER); |
+ RecordTranslateEvent(metrics::TranslateEventProto::DISABLED_BY_RANKER); |
+ return; |
} |
TranslateBrowserMetrics::ReportInitiationStatus( |
@@ -604,7 +609,7 @@ void TranslateManager::RecordTranslateEvent(int event_type) { |
static_cast<metrics::TranslateEventProto::EventType>(event_type)); |
translate_event_->set_event_timestamp_sec( |
(base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); |
- TranslateRanker::GetInstance()->RecordTranslateEvent(*translate_event_); |
+ translate_ranker_->AddTranslateEvent(*translate_event_); |
} |
} // namespace translate |