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

Unified Diff: chrome/browser/translate/chrome_translate_client.cc

Issue 2396783002: Add LanguageModel, a keyed service that collects language info from CLD. (Closed)
Patch Set: Fixing incognito Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/translate/chrome_translate_client.cc
diff --git a/chrome/browser/translate/chrome_translate_client.cc b/chrome/browser/translate/chrome_translate_client.cc
index bdda1de254536448ee35fd55d8be6d16749dd866..06ce2bbbcd236307ca099d12faf0e7064c05534a 100644
--- a/chrome/browser/translate/chrome_translate_client.cc
+++ b/chrome/browser/translate/chrome_translate_client.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/translate/language_model_factory.h"
#include "chrome/browser/translate/translate_accept_languages_factory.h"
#include "chrome/browser/translate/translate_service.h"
#include "chrome/browser/ui/browser.h"
@@ -26,6 +27,7 @@
#include "chrome/common/pref_names.h"
#include "chrome/grit/theme_resources.h"
#include "components/prefs/pref_service.h"
+#include "components/translate/core/browser/language_model.h"
#include "components/translate/core/browser/language_state.h"
#include "components/translate/core/browser/page_translated_details.h"
#include "components/translate/core/browser/translate_accept_languages.h"
@@ -46,7 +48,10 @@ ChromeTranslateClient::ChromeTranslateClient(content::WebContents* web_contents)
: content::WebContentsObserver(web_contents),
translate_driver_(&web_contents->GetController()),
translate_manager_(
- new translate::TranslateManager(this, prefs::kAcceptLanguages)) {
+ new translate::TranslateManager(this, prefs::kAcceptLanguages)),
+ language_model_(
+ LanguageModelFactory::GetInstance()->GetForBrowserContext(
+ web_contents->GetBrowserContext())) {
translate_driver_.AddObserver(this);
translate_driver_.set_translate_manager(translate_manager_.get());
}
@@ -276,6 +281,11 @@ void ChromeTranslateClient::OnLanguageDetermined(
chrome::NOTIFICATION_TAB_LANGUAGE_DETERMINED,
content::Source<content::WebContents>(web_contents()),
content::Details<const translate::LanguageDetectionDetails>(&details));
+
+ // Unless we have no language model (e.g., in incognito), notify the model
+ // about detected language of every page visited.
+ if (language_model_ && details.is_cld_reliable)
+ language_model_->OnPageVisited(details.cld_language);
}
void ChromeTranslateClient::OnPageTranslated(
« no previous file with comments | « chrome/browser/translate/chrome_translate_client.h ('k') | chrome/browser/translate/language_model_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698