Commit 1d421a0a authored by Anthony Vallee-Dubois's avatar Anthony Vallee-Dubois Committed by Commit Bot

Reland "Reland "Google Translate branding on desktop translate bubble""

This reverts commit d22c818c.

Reason for revert: Internal assets rolled out, this should not cause
any more breakages.

Original change's description:
> Revert "Reland "Google Translate branding on desktop translate bubble""
>
> This reverts commit 59a03dc3.
>
> Reason for revert: Causing desktop perf build failures
>
> Original change's description:
> > Reland "Google Translate branding on desktop translate bubble"
> >
> > Change-Id: Id2972c13c2da888a4c7f2974b933ae190fdfe2fd
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1756147
> > Reviewed-by: Alexandre Frechette <frechette@chromium.org>
> > Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
> > Commit-Queue: anthonyvd <anthonyvd@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#687664}
>
> TBR=oshima@chromium.org,anthonyvd@chromium.org,frechette@chromium.org,crouleau@chromium.org
>
> Bug: 994787
>
> Change-Id: I799fb9416fa57c47c52364314b0f016cea529742
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1758510
> Reviewed-by: John Chen <johnchen@chromium.org>
> Commit-Queue: John Chen <johnchen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#687697}

TBR=oshima@chromium.org,anthonyvd@chromium.org,johnchen@chromium.org,frechette@chromium.org

Bug: 994787
Change-Id: Ibdc33d9549c7b079dd65283e53ee72a5de3f27cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1835198Reviewed-by: default avataranthonyvd <anthonyvd@chromium.org>
Commit-Queue: anthonyvd <anthonyvd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#702064}
parent 8b03e46b
...@@ -315,9 +315,7 @@ ...@@ -315,9 +315,7 @@
</if> </if>
<!-- Instant Extended API toolbar background is common for all platforms. --> <!-- Instant Extended API toolbar background is common for all platforms. -->
<structure type="chrome_scaled_image" name="IDR_THEME_WINDOW_CONTROL_BACKGROUND" file="notused.png" /> <structure type="chrome_scaled_image" name="IDR_THEME_WINDOW_CONTROL_BACKGROUND" file="notused.png" />
<if expr="not is_android"> <structure type="chrome_scaled_image" name="IDR_TRANSLATE_BUBBLE_ICON" file="common/translate_bubble_icon.png" />
<structure type="chrome_scaled_image" name="IDR_TRANSLATE_BUBBLE_ICON" file="common/user_manager_tutorial/translate_bubble_icon.png" />
</if>
<if expr="not _google_chrome"> <if expr="not _google_chrome">
<if expr="not is_android"> <if expr="not is_android">
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON" file="chromium/webstore_icon.png" /> <structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON" file="chromium/webstore_icon.png" />
...@@ -332,6 +330,8 @@ ...@@ -332,6 +330,8 @@
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_16" file="google_chrome/webstore_icon_16.png" /> <structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_16" file="google_chrome/webstore_icon_16.png" />
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_24" file="google_chrome/webstore_icon_24.png" /> <structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_24" file="google_chrome/webstore_icon_24.png" />
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_32" file="google_chrome/webstore_icon_32.png" /> <structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_32" file="google_chrome/webstore_icon_32.png" />
<structure type="chrome_scaled_image" name="IDR_TRANSLATE_TAB_WORDMARK" file="google_chrome/translate_tab_wordmark.png" />
<structure type="chrome_scaled_image" name="IDR_TRANSLATE_BUTTON_WORDMARK" file="google_chrome/translate_button_wordmark.png" />
</if> </if>
</if> </if>
</structures> </structures>
......
...@@ -78,6 +78,16 @@ class AdvancedViewContainer : public views::View { ...@@ -78,6 +78,16 @@ class AdvancedViewContainer : public views::View {
private: private:
DISALLOW_COPY_AND_ASSIGN(AdvancedViewContainer); DISALLOW_COPY_AND_ASSIGN(AdvancedViewContainer);
}; };
bool UseGoogleTranslateBranding() {
// Only use Google Translate branding in Chrome branded builds.
#if defined(GOOGLE_CHROME_BUILD)
return true;
#else
return false;
#endif
}
} // namespace } // namespace
// static // static
...@@ -333,6 +343,38 @@ void TranslateBubbleView::ButtonPressed(views::Button* sender, ...@@ -333,6 +343,38 @@ void TranslateBubbleView::ButtonPressed(views::Button* sender,
} }
} }
std::unique_ptr<views::View> TranslateBubbleView::CreateFootnoteView() {
#if defined(GOOGLE_CHROME_BUILD)
if (bubble_ui_model_ != language::TranslateUIBubbleModel::TAB) {
return nullptr;
}
auto view = std::make_unique<views::View>();
views::GridLayout* layout =
view->SetLayoutManager(std::make_unique<views::GridLayout>());
// Translate icon
const int translate_icon_id = IDR_TRANSLATE_TAB_WORDMARK;
std::unique_ptr<views::ImageView> translate_icon =
std::make_unique<views::ImageView>();
gfx::ImageSkia* translate_icon_image =
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
translate_icon_id);
translate_icon->SetImage(*translate_icon_image);
views::ColumnSet* cs = layout->AddColumnSet(0);
cs->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
views::GridLayout::kFixedSize, views::GridLayout::USE_PREF, 0,
0);
layout->StartRow(1, 0);
layout->AddView(std::move(translate_icon));
return view;
#else
return nullptr;
#endif
}
views::View* TranslateBubbleView::GetInitiallyFocusedView() { views::View* TranslateBubbleView::GetInitiallyFocusedView() {
return GetCurrentView()->GetNextFocusableView(); return GetCurrentView()->GetNextFocusableView();
} }
...@@ -610,6 +652,9 @@ TranslateBubbleView::TranslateBubbleView( ...@@ -610,6 +652,9 @@ TranslateBubbleView::TranslateBubbleView(
web_contents && web_contents->GetBrowserContext()->IsOffTheRecord()), web_contents && web_contents->GetBrowserContext()->IsOffTheRecord()),
bubble_ui_model_(language::GetTranslateUiBubbleModel()) { bubble_ui_model_(language::GetTranslateUiBubbleModel()) {
translate_bubble_view_ = this; translate_bubble_view_ = this;
UpdateInsets(TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE);
if (web_contents) // web_contents can be null in unit_tests. if (web_contents) // web_contents can be null in unit_tests.
mouse_handler_ = mouse_handler_ =
std::make_unique<WebContentMouseHandler>(this, web_contents); std::make_unique<WebContentMouseHandler>(this, web_contents);
...@@ -874,15 +919,6 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() { ...@@ -874,15 +919,6 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() {
views::GridLayout* layout = views::GridLayout* layout =
view->SetLayoutManager(std::make_unique<views::GridLayout>()); view->SetLayoutManager(std::make_unique<views::GridLayout>());
// Language icon
const int language_icon_id = IDR_TRANSLATE_BUBBLE_ICON;
std::unique_ptr<views::ImageView> language_icon =
std::make_unique<views::ImageView>();
gfx::ImageSkia* language_icon_image =
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
language_icon_id);
language_icon->SetImage(*language_icon_image);
// Tabbed pane for language selection. Can't use unique_ptr because // Tabbed pane for language selection. Can't use unique_ptr because
// tabs have to be added after the tabbed_pane is added to the parent, // tabs have to be added after the tabbed_pane is added to the parent,
// when we release ownership of the unique_ptr. // when we release ownership of the unique_ptr.
...@@ -928,12 +964,15 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() { ...@@ -928,12 +964,15 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() {
constexpr int kColumnSetId = 0; constexpr int kColumnSetId = 0;
views::ColumnSet* cs = layout->AddColumnSet(kColumnSetId); views::ColumnSet* cs = layout->AddColumnSet(kColumnSetId);
cs->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, if (!UseGoogleTranslateBranding()) {
views::GridLayout::kFixedSize, views::GridLayout::USE_PREF, 0, // Column and padding for the optional translate icon.
0); cs->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER,
cs->AddPaddingColumn( views::GridLayout::kFixedSize, views::GridLayout::USE_PREF, 0,
views::GridLayout::kFixedSize, 0);
provider->GetDistanceMetric(views::DISTANCE_RELATED_BUTTON_HORIZONTAL)); cs->AddPaddingColumn(
views::GridLayout::kFixedSize,
provider->GetDistanceMetric(views::DISTANCE_RELATED_BUTTON_HORIZONTAL));
}
cs->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1.0f, cs->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1.0f,
views::GridLayout::FIXED, 8, 0); views::GridLayout::FIXED, 8, 0);
cs->AddPaddingColumn( cs->AddPaddingColumn(
...@@ -950,7 +989,19 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() { ...@@ -950,7 +989,19 @@ std::unique_ptr<views::View> TranslateBubbleView::CreateViewTab() {
0); 0);
layout->StartRow(1, kColumnSetId); layout->StartRow(1, kColumnSetId);
layout->AddView(std::move(language_icon)); if (!UseGoogleTranslateBranding()) {
// If the bottom branding isn't showing, display the leading translate icon
// otherwise it's not obvious what the bubble is about. This should only
// happen on non-Chrome-branded builds.
const int language_icon_id = IDR_TRANSLATE_BUBBLE_ICON;
std::unique_ptr<views::ImageView> language_icon =
std::make_unique<views::ImageView>();
gfx::ImageSkia* language_icon_image =
ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
language_icon_id);
language_icon->SetImage(*language_icon_image);
layout->AddView(std::move(language_icon));
}
tabbed_pane_ = layout->AddView(std::move(tabbed_pane)); tabbed_pane_ = layout->AddView(std::move(tabbed_pane));
layout->AddView(std::move(tab_translate_options_button)); layout->AddView(std::move(tab_translate_options_button));
layout->AddView(std::move(close_button)); layout->AddView(std::move(close_button));
...@@ -1686,6 +1737,8 @@ views::Checkbox* TranslateBubbleView::GetAlwaysTranslateCheckbox() { ...@@ -1686,6 +1737,8 @@ views::Checkbox* TranslateBubbleView::GetAlwaysTranslateCheckbox() {
void TranslateBubbleView::SwitchView( void TranslateBubbleView::SwitchView(
TranslateBubbleModel::ViewState view_state) { TranslateBubbleModel::ViewState view_state) {
UpdateInsets(view_state);
TranslateBubbleModel::ViewState current_state = model_->GetViewState(); TranslateBubbleModel::ViewState current_state = model_->GetViewState();
if (bubble_ui_model_ == language::TranslateUIBubbleModel::TAB) { if (bubble_ui_model_ == language::TranslateUIBubbleModel::TAB) {
SwitchTabForViewState(view_state); SwitchTabForViewState(view_state);
...@@ -1698,6 +1751,7 @@ void TranslateBubbleView::SwitchView( ...@@ -1698,6 +1751,7 @@ void TranslateBubbleView::SwitchView(
model_->SetViewState(view_state); model_->SetViewState(view_state);
if (view_state == TranslateBubbleModel::VIEW_STATE_ADVANCED) if (view_state == TranslateBubbleModel::VIEW_STATE_ADVANCED)
UpdateAdvancedView(); UpdateAdvancedView();
UpdateChildVisibilities(); UpdateChildVisibilities();
SizeToContents(); SizeToContents();
} }
...@@ -1749,3 +1803,36 @@ void TranslateBubbleView::UpdateLanguageNames( ...@@ -1749,3 +1803,36 @@ void TranslateBubbleView::UpdateLanguageNames(
l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_UNKNOWN_LANGUAGE); l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_UNKNOWN_LANGUAGE);
} }
} }
void TranslateBubbleView::UpdateInsets(TranslateBubbleModel::ViewState state) {
if (bubble_ui_model_ != language::TranslateUIBubbleModel::TAB ||
!UseGoogleTranslateBranding()) {
// If not in a mode that can display a footer, don't touch the default
// insets.
return;
}
// Since these are only created once when this code is executed for the first
// time, |default_margins| will always contain the default margins() value for
// this view.
static const gfx::Insets kDefaultMargins = translate_bubble_view_->margins();
// Paddings of the ClientFrameView from mock.
// Up: 6px.
// Left: 16px = 320px - 180px - 124px.
// Bottom: 0px from the NonClientFrameView.
// Right: 8px
static const gfx::Insets kNoBottomMargins = gfx::Insets(6, 16, 0, 8);
// TAB UI does not have gap in between ClientFrameView and NonClientFrameView
// in these states.
if (state == TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE ||
state == TranslateBubbleModel::VIEW_STATE_TRANSLATING ||
state == TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE) {
// In these states there will be a footer, so remove the bottom padding.
translate_bubble_view_->set_margins(kNoBottomMargins);
} else {
// Restore the bottom padding if the bubble is in a mode that doesn't have a
// footer.
translate_bubble_view_->set_margins(kDefaultMargins);
}
}
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "ui/views/controls/styled_label_listener.h" #include "ui/views/controls/styled_label_listener.h"
#include "ui/views/controls/tabbed_pane/tabbed_pane.h" #include "ui/views/controls/tabbed_pane/tabbed_pane.h"
#include "ui/views/controls/tabbed_pane/tabbed_pane_listener.h" #include "ui/views/controls/tabbed_pane/tabbed_pane_listener.h"
#include "ui/views/window/non_client_view.h"
class Browser; class Browser;
...@@ -91,6 +92,7 @@ class TranslateBubbleView : public LocationBarBubbleDelegateView, ...@@ -91,6 +92,7 @@ class TranslateBubbleView : public LocationBarBubbleDelegateView,
base::string16 GetWindowTitle() const override; base::string16 GetWindowTitle() const override;
void Init() override; void Init() override;
void ButtonPressed(views::Button* sender, const ui::Event& event) override; void ButtonPressed(views::Button* sender, const ui::Event& event) override;
std::unique_ptr<views::View> CreateFootnoteView() override;
// views::WidgetDelegate methods. // views::WidgetDelegate methods.
View* GetInitiallyFocusedView() override; View* GetInitiallyFocusedView() override;
...@@ -333,6 +335,8 @@ class TranslateBubbleView : public LocationBarBubbleDelegateView, ...@@ -333,6 +335,8 @@ class TranslateBubbleView : public LocationBarBubbleDelegateView,
void UpdateLanguageNames(base::string16* original_language_name, void UpdateLanguageNames(base::string16* original_language_name,
base::string16* target_language_name); base::string16* target_language_name);
void UpdateInsets(TranslateBubbleModel::ViewState state);
static TranslateBubbleView* translate_bubble_view_; static TranslateBubbleView* translate_bubble_view_;
views::View* before_translate_view_ = nullptr; views::View* before_translate_view_ = nullptr;
......
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