Commit 24ddb486 authored by Anthony Vallee-Dubois's avatar Anthony Vallee-Dubois Committed by Commit Bot

Add Field Trial Config for translate UI refresh

Bug: 976352
Change-Id: I9e125f2a7d2dfe24691e8097623cbc65866fe353
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1796002Reviewed-by: default avatarAlexandre Frechette <frechette@chromium.org>
Reviewed-by: default avatarJesse Doherty <jwd@chromium.org>
Commit-Queue: anthonyvd <anthonyvd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695796}
parent 20d743da
......@@ -120,6 +120,9 @@ class TranslateBubbleModel {
// True if the site of the current page can be blacklisted.
virtual bool CanBlacklistSite() = 0;
// True if there's currently a pending translation on the page.
virtual bool IsTranslationInProgress() = 0;
};
#endif // CHROME_BROWSER_UI_TRANSLATE_TRANSLATE_BUBBLE_MODEL_H_
......@@ -138,3 +138,9 @@ bool TranslateBubbleModelImpl::IsPageTranslatedInCurrentLanguages() const {
ui_delegate_->GetTargetLanguageCode() ==
language_state.current_language();
}
bool TranslateBubbleModelImpl::IsTranslationInProgress() {
const translate::LanguageState& language_state =
ui_delegate_->GetLanguageState();
return language_state.translation_pending();
}
......@@ -52,6 +52,7 @@ class TranslateBubbleModelImpl : public TranslateBubbleModel {
void OnBubbleClosing() override;
bool IsPageTranslatedInCurrentLanguages() const override;
bool CanBlacklistSite() override;
bool IsTranslationInProgress() override;
private:
std::unique_ptr<translate::TranslateUIDelegate> ui_delegate_;
......
......@@ -46,6 +46,7 @@
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/strings/grit/ui_strings.h"
#include "ui/views/bubble/bubble_frame_view.h"
#include "ui/views/controls/button/checkbox.h"
#include "ui/views/controls/button/image_button.h"
......@@ -213,7 +214,8 @@ base::string16 TranslateBubbleView::GetWindowTitle() const {
void TranslateBubbleView::TabSelectedAt(int index) {
// Tabbed pane is indexed from left to right starting at 0.
if (!model_->IsPageTranslatedInCurrentLanguages() && index == 1) {
if (!model_->IsPageTranslatedInCurrentLanguages() &&
!model_->IsTranslationInProgress() && index == 1) {
Translate();
} else if (index == 0) {
ShowOriginal();
......@@ -903,6 +905,8 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() {
tab_translate_options_button->SetInkDropMode(views::Button::InkDropMode::ON);
tab_translate_options_button->SetID(BUTTON_ID_OPTIONS_MENU_TAB);
tab_translate_options_button->SetFocusForPlatform();
tab_translate_options_button->SetAccessibleName(
l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_OPTIONS_MENU_BUTTON));
tab_translate_options_button->set_request_focus_on_press(true);
// Close button
......@@ -921,6 +925,7 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() {
close_button->set_ink_drop_base_color(gfx::kChromeIconGrey);
close_button->SetFocusForPlatform();
close_button->SetID(BUTTON_ID_CLOSE);
close_button->SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_CLOSE));
constexpr int kColumnSetId = 0;
views::ColumnSet* cs = layout->AddColumnSet(kColumnSetId);
......@@ -996,6 +1001,7 @@ std::unique_ptr<views::View> TranslateBubbleView::GM2CreateView(
gfx::CreateVectorIcon(*close_icon_id, 16, close_icon_color));
close_button->set_ink_drop_base_color(gfx::kChromeIconGrey);
close_button->SetID(BUTTON_ID_CLOSE);
close_button->SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_CLOSE));
// Initialize a columnset
views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_TITLE);
......@@ -1564,6 +1570,7 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewAdvancedTabUi(
close_button->set_ink_drop_base_color(gfx::kChromeIconGrey);
close_button->SetFocusForPlatform();
close_button->SetID(BUTTON_ID_CLOSE);
close_button->SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_CLOSE));
auto view = std::make_unique<AdvancedViewContainer>();
views::GridLayout* layout =
......
......@@ -128,6 +128,8 @@ class MockTranslateBubbleModel : public TranslateBubbleModel {
bool CanBlacklistSite() override { return can_blacklist_site_; }
bool IsTranslationInProgress() override { return false; }
void SetCanBlacklistSite(bool value) { can_blacklist_site_ = value; }
TranslateBubbleViewStateTransition view_state_transition_;
......
......@@ -282,11 +282,6 @@ void TranslateManager::TranslatePage(const std::string& original_source_lang,
TranslateErrors::IDENTICAL_LANGUAGES, triggered_from_menu);
NotifyTranslateError(TranslateErrors::IDENTICAL_LANGUAGES);
return;
} else {
// Trigger the "translating now" UI.
translate_client_->ShowTranslateUI(
translate::TRANSLATE_STEP_TRANSLATING, source_lang, target_lang,
TranslateErrors::NONE, triggered_from_menu);
}
TranslateScript* script = TranslateDownloadManager::GetInstance()->script();
......@@ -295,16 +290,20 @@ void TranslateManager::TranslatePage(const std::string& original_source_lang,
const std::string& script_data = script->data();
if (!script_data.empty()) {
DoTranslatePage(script_data, source_lang, target_lang);
return;
}
} else {
// The script is not available yet. Queue that request and query for the
// script. Once it is downloaded we'll do the translate.
TranslateScript::RequestCallback callback =
base::Bind(&TranslateManager::OnTranslateScriptFetchComplete,
GetWeakPtr(), source_lang, target_lang);
// The script is not available yet. Queue that request and query for the
// script. Once it is downloaded we'll do the translate.
TranslateScript::RequestCallback callback =
base::Bind(&TranslateManager::OnTranslateScriptFetchComplete,
GetWeakPtr(), source_lang, target_lang);
script->Request(callback, translate_driver_->IsIncognito());
}
script->Request(callback, translate_driver_->IsIncognito());
// Trigger the "translating now" UI.
translate_client_->ShowTranslateUI(
translate::TRANSLATE_STEP_TRANSLATING, source_lang, target_lang,
TranslateErrors::NONE, triggered_from_menu);
}
void TranslateManager::RevertTranslation() {
......
......@@ -5886,6 +5886,26 @@
]
}
],
"TranslateDesktopRefresh": [
{
"platforms": [
"linux",
"mac",
"windows"
],
"experiments": [
{
"name": "EnabledTab",
"params": {
"translate_ui_bubble_style": "tab"
},
"enable_features": [
"UseButtonTranslateBubbleUI"
]
}
]
}
],
"TranslateRankerModel": [
{
"platforms": [
......
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