Commit 74eda5a3 authored by Anthony Cui's avatar Anthony Cui Committed by Commit Bot

Reland "Consolidate translation check and execution logic between...

Reland "Consolidate translation check and execution logic between TranslateManager and RenderViewContextMenu"

This is a reland of 24c91f76

Original change's description:
> Consolidate translation check and execution logic between TranslateManager and RenderViewContextMenu
>
> Consolidated logic by having RenderViewContextMenu::ExecTranslate call
> TranslateManager::InitiateManualTranslation, and RenderViewContextMenu::AppendPageItems call
> TranslateManager:CanManuallyTranslate.
>
> Bug: 898168
> Change-Id: If91cf98626f73d0c357522f8fdca840695185bc2
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2385636
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Reviewed-by: Megan Jablonski <megjablon@chromium.org>
> Commit-Queue: Anthony Cui <cuianthony@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#806161}

Bug: 898168
Change-Id: Iddd188034e471d3b4e8e09650d9f1e88cb2bc268
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2410645Reviewed-by: default avatarMegan Jablonski <megjablon@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Commit-Queue: Anthony Cui <cuianthony@chromium.org>
Cr-Commit-Position: refs/heads/master@{#807475}
parent 189eeaf5
...@@ -200,6 +200,8 @@ bool TranslateManager::CanManuallyTranslate() { ...@@ -200,6 +200,8 @@ bool TranslateManager::CanManuallyTranslate() {
std::unique_ptr<TranslatePrefs> translate_prefs( std::unique_ptr<TranslatePrefs> translate_prefs(
translate_client_->GetTranslatePrefs()); translate_client_->GetTranslatePrefs());
if (!translate_prefs->IsTranslateAllowedByPolicy())
return false;
const std::string target_lang = GetManualTargetLanguage( const std::string target_lang = GetManualTargetLanguage(
TranslateDownloadManager::GetLanguageCode(source_language), TranslateDownloadManager::GetLanguageCode(source_language),
language_state_, translate_prefs.get(), language_model_); language_state_, translate_prefs.get(), language_model_);
...@@ -209,7 +211,13 @@ bool TranslateManager::CanManuallyTranslate() { ...@@ -209,7 +211,13 @@ bool TranslateManager::CanManuallyTranslate() {
return true; return true;
} }
void TranslateManager::InitiateManualTranslation(bool auto_translate) { void TranslateManager::InitiateManualTranslation(bool auto_translate,
bool triggered_from_menu) {
// If a translation has already been triggered, do nothing.
if (language_state_.IsPageTranslated() ||
language_state_.translation_pending())
return;
std::unique_ptr<TranslatePrefs> translate_prefs( std::unique_ptr<TranslatePrefs> translate_prefs(
translate_client_->GetTranslatePrefs()); translate_client_->GetTranslatePrefs());
const std::string source_code = TranslateDownloadManager::GetLanguageCode( const std::string source_code = TranslateDownloadManager::GetLanguageCode(
...@@ -221,8 +229,8 @@ void TranslateManager::InitiateManualTranslation(bool auto_translate) { ...@@ -221,8 +229,8 @@ void TranslateManager::InitiateManualTranslation(bool auto_translate) {
// Translate the page if it has not been translated and manual translate // Translate the page if it has not been translated and manual translate
// should trigger translation automatically. Otherwise, only show the infobar. // should trigger translation automatically. Otherwise, only show the infobar.
if (!language_state_.IsPageTranslated() && auto_translate) { if (auto_translate) {
TranslatePage(source_code, target_lang, false); TranslatePage(source_code, target_lang, triggered_from_menu);
return; return;
} }
......
...@@ -120,7 +120,8 @@ class TranslateManager { ...@@ -120,7 +120,8 @@ class TranslateManager {
// Initiate a manually triggered translation process for the current page. // Initiate a manually triggered translation process for the current page.
// Collect source and target languages, and show translation UI. If // Collect source and target languages, and show translation UI. If
// |auto_translate| is true the page gets translated to the target language. // |auto_translate| is true the page gets translated to the target language.
void InitiateManualTranslation(bool auto_translate = false); void InitiateManualTranslation(bool auto_translate = false,
bool triggered_from_menu = false);
// Returns true iff the current page could be manually translated. // Returns true iff the current page could be manually translated.
bool CanManuallyTranslate(); bool CanManuallyTranslate();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment