| Index: chrome/browser/translate/translate_manager.cc
|
| diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc
|
| index 9cb8c149fac41b54c40107d9263d029a6abe1417..cec67ab0ac85a0bb6031970a85a1421883fe002f 100644
|
| --- a/chrome/browser/translate/translate_manager.cc
|
| +++ b/chrome/browser/translate/translate_manager.cc
|
| @@ -587,3 +587,29 @@ std::string TranslateManager::GetAutoTargetLanguage(
|
| }
|
| return std::string();
|
| }
|
| +
|
| +// static
|
| +void TranslateManager::GetTranslateLanguages(content::WebContents* web_contents,
|
| + std::string* source,
|
| + std::string* target) {
|
| + DCHECK(source != NULL);
|
| + DCHECK(target != NULL);
|
| +
|
| + TranslateTabHelper* translate_tab_helper =
|
| + TranslateTabHelper::FromWebContents(web_contents);
|
| + *source = translate_tab_helper->GetLanguageState().original_language();
|
| +
|
| + Profile* profile =
|
| + Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
| + Profile* original_profile = profile->GetOriginalProfile();
|
| + PrefService* prefs = original_profile->GetPrefs();
|
| + if (!web_contents->GetBrowserContext()->IsOffTheRecord()) {
|
| + std::string auto_translate_language =
|
| + TranslateManager::GetAutoTargetLanguage(*source, prefs);
|
| + if (!auto_translate_language.empty()) {
|
| + *target = auto_translate_language;
|
| + return;
|
| + }
|
| + }
|
| + *target = TranslateManager::GetTargetLanguage(prefs);
|
| +}
|
|
|