Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(656)

Side by Side Diff: components/translate/core/browser/translate_manager.cc

Issue 2736853004: Revert "[Translate] Add translate ranker model loader." (Closed)
Patch Set: merge Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_manager.h" 5 #include "components/translate/core/browser/translate_manager.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 std::unique_ptr<TranslateManager::TranslateErrorCallbackList::Subscription> 124 std::unique_ptr<TranslateManager::TranslateErrorCallbackList::Subscription>
125 TranslateManager::RegisterTranslateErrorCallback( 125 TranslateManager::RegisterTranslateErrorCallback(
126 const TranslateManager::TranslateErrorCallback& callback) { 126 const TranslateManager::TranslateErrorCallback& callback) {
127 if (!g_callback_list_) 127 if (!g_callback_list_)
128 g_callback_list_ = new TranslateErrorCallbackList; 128 g_callback_list_ = new TranslateErrorCallbackList;
129 return g_callback_list_->Add(callback); 129 return g_callback_list_->Add(callback);
130 } 130 }
131 131
132 TranslateManager::TranslateManager( 132 TranslateManager::TranslateManager(
133 TranslateClient* translate_client, 133 TranslateClient* translate_client,
134 TranslateRanker* translate_ranker,
135 const std::string& accept_languages_pref_name) 134 const std::string& accept_languages_pref_name)
136 : page_seq_no_(0), 135 : page_seq_no_(0),
137 accept_languages_pref_name_(accept_languages_pref_name), 136 accept_languages_pref_name_(accept_languages_pref_name),
138 translate_client_(translate_client), 137 translate_client_(translate_client),
139 translate_driver_(translate_client_->GetTranslateDriver()), 138 translate_driver_(translate_client_->GetTranslateDriver()),
140 translate_ranker_(translate_ranker),
141 language_state_(translate_driver_), 139 language_state_(translate_driver_),
142 translate_event_(base::MakeUnique<metrics::TranslateEventProto>()), 140 translate_event_(base::MakeUnique<metrics::TranslateEventProto>()),
143 weak_method_factory_(this) {} 141 weak_method_factory_(this) {
142 if (TranslateRanker::IsEnabled())
143 TranslateRanker::GetInstance()->FetchModelData(); // Asynchronous.
144 }
144 145
145 base::WeakPtr<TranslateManager> TranslateManager::GetWeakPtr() { 146 base::WeakPtr<TranslateManager> TranslateManager::GetWeakPtr() {
146 return weak_method_factory_.GetWeakPtr(); 147 return weak_method_factory_.GetWeakPtr();
147 } 148 }
148 149
149 void TranslateManager::InitiateTranslation(const std::string& page_lang) { 150 void TranslateManager::InitiateTranslation(const std::string& page_lang) {
150 // TODO(rogerm): Remove ScopedTracker below once crbug.com/646711 is closed. 151 // TODO(rogerm): Remove ScopedTracker below once crbug.com/646711 is closed.
151 tracked_objects::ScopedTracker tracking_profile( 152 tracked_objects::ScopedTracker tracking_profile(
152 FROM_HERE_WITH_EXPLICIT_FUNCTION( 153 FROM_HERE_WITH_EXPLICIT_FUNCTION(
153 "646711 translate::TranslateManager::InitiateTranslation")); 154 "646711 translate::TranslateManager::InitiateTranslation"));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 225
225 // Don't translate similar languages (ex: en-US to en). 226 // Don't translate similar languages (ex: en-US to en).
226 // Also do not offer to translate between Simplified and Traditional Chinese. 227 // Also do not offer to translate between Simplified and Traditional Chinese.
227 if (language_code == target_lang || 228 if (language_code == target_lang ||
228 (language_code == "zh-CN" && target_lang == "zh-TW") || 229 (language_code == "zh-CN" && target_lang == "zh-TW") ||
229 (language_code == "zh-TW" && target_lang == "zh-CN")) { 230 (language_code == "zh-TW" && target_lang == "zh-CN")) {
230 TranslateBrowserMetrics::ReportInitiationStatus( 231 TranslateBrowserMetrics::ReportInitiationStatus(
231 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES); 232 TranslateBrowserMetrics::INITIATION_STATUS_SIMILAR_LANGUAGES);
232 return; 233 return;
233 } 234 }
234
235 bool ranker_should_offer_translation = true;
236 if (translate_ranker_->IsQueryEnabled()) {
237 ranker_should_offer_translation = translate_ranker_->ShouldOfferTranslation(
238 *translate_prefs, language_code, target_lang);
239 translate_event_->set_ranker_request_timestamp_sec(
240 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds());
241 translate_event_->set_ranker_version(translate_ranker_->GetModelVersion());
242 translate_event_->set_ranker_response(
243 ranker_should_offer_translation
244 ? metrics::TranslateEventProto::SHOW
245 : metrics::TranslateEventProto::DONT_SHOW);
246 }
247
248 // Nothing to do if either the language Chrome is in or the language of the 235 // Nothing to do if either the language Chrome is in or the language of the
249 // page is not supported by the translation server. 236 // page is not supported by the translation server.
250 if (target_lang.empty() || 237 if (target_lang.empty() ||
251 !TranslateDownloadManager::IsSupportedLanguage(language_code)) { 238 !TranslateDownloadManager::IsSupportedLanguage(language_code)) {
252 TranslateBrowserMetrics::ReportInitiationStatus( 239 TranslateBrowserMetrics::ReportInitiationStatus(
253 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED); 240 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED);
254 TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation( 241 TranslateBrowserMetrics::ReportUnsupportedLanguageAtInitiation(
255 language_code); 242 language_code);
256 RecordTranslateEvent(metrics::TranslateEventProto::UNSUPPORTED_LANGUAGE); 243 RecordTranslateEvent(metrics::TranslateEventProto::UNSUPPORTED_LANGUAGE);
257 return; 244 return;
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 return; 295 return;
309 } 296 }
310 297
311 if (LanguageInULP(language_code)) { 298 if (LanguageInULP(language_code)) {
312 TranslateBrowserMetrics::ReportInitiationStatus( 299 TranslateBrowserMetrics::ReportInitiationStatus(
313 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IN_ULP); 300 TranslateBrowserMetrics::INITIATION_STATUS_LANGUAGE_IN_ULP);
314 RecordTranslateEvent(metrics::TranslateEventProto::DISABLED_BY_PREF); 301 RecordTranslateEvent(metrics::TranslateEventProto::DISABLED_BY_PREF);
315 return; 302 return;
316 } 303 }
317 304
318 if (!ranker_should_offer_translation && 305 if (TranslateRanker::IsEnabled()) {
319 translate_ranker_->IsEnforcementEnabled()) { 306 TranslateRanker* translate_ranker = TranslateRanker::GetInstance();
320 TranslateBrowserMetrics::ReportInitiationStatus( 307 bool should_offer_translation = translate_ranker->ShouldOfferTranslation(
321 TranslateBrowserMetrics::INITIATION_STATUS_ABORTED_BY_RANKER); 308 *translate_prefs, language_code, target_lang);
322 RecordTranslateEvent(metrics::TranslateEventProto::DISABLED_BY_RANKER); 309 translate_event_->set_ranker_request_timestamp_sec(
323 return; 310 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds());
311 translate_event_->set_ranker_version(translate_ranker->GetModelVersion());
312 translate_event_->set_ranker_response(
313 should_offer_translation ? metrics::TranslateEventProto::SHOW
314 : metrics::TranslateEventProto::DONT_SHOW);
315 if (!should_offer_translation && TranslateRanker::IsEnforcementEnabled()) {
316 TranslateBrowserMetrics::ReportInitiationStatus(
317 TranslateBrowserMetrics::INITIATION_STATUS_ABORTED_BY_RANKER);
318 RecordTranslateEvent(metrics::TranslateEventProto::DISABLED_BY_RANKER);
319 return;
320 }
324 } 321 }
325 322
326 TranslateBrowserMetrics::ReportInitiationStatus( 323 TranslateBrowserMetrics::ReportInitiationStatus(
327 TranslateBrowserMetrics::INITIATION_STATUS_SHOW_INFOBAR); 324 TranslateBrowserMetrics::INITIATION_STATUS_SHOW_INFOBAR);
328 325
329 // Prompts the user if they want the page translated. 326 // Prompts the user if they want the page translated.
330 translate_client_->ShowTranslateUI(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, 327 translate_client_->ShowTranslateUI(translate::TRANSLATE_STEP_BEFORE_TRANSLATE,
331 language_code, 328 language_code,
332 target_lang, 329 target_lang,
333 TranslateErrors::NONE, 330 TranslateErrors::NONE,
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 translate_event_->set_event_type(metrics::TranslateEventProto::UNKNOWN); 597 translate_event_->set_event_type(metrics::TranslateEventProto::UNKNOWN);
601 // TODO(rogerm): Populate the language list. 598 // TODO(rogerm): Populate the language list.
602 } 599 }
603 600
604 void TranslateManager::RecordTranslateEvent(int event_type) { 601 void TranslateManager::RecordTranslateEvent(int event_type) {
605 DCHECK(metrics::TranslateEventProto::EventType_IsValid(event_type)); 602 DCHECK(metrics::TranslateEventProto::EventType_IsValid(event_type));
606 translate_event_->set_event_type( 603 translate_event_->set_event_type(
607 static_cast<metrics::TranslateEventProto::EventType>(event_type)); 604 static_cast<metrics::TranslateEventProto::EventType>(event_type));
608 translate_event_->set_event_timestamp_sec( 605 translate_event_->set_event_timestamp_sec(
609 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds()); 606 (base::TimeTicks::Now() - base::TimeTicks()).InSeconds());
610 translate_ranker_->AddTranslateEvent(*translate_event_); 607 TranslateRanker::GetInstance()->RecordTranslateEvent(*translate_event_);
611 } 608 }
612 609
613 } // namespace translate 610 } // namespace translate
OLDNEW
« no previous file with comments | « components/translate/core/browser/translate_manager.h ('k') | components/translate/core/browser/translate_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698