Commit c2968681 authored by Thomas Tangl's avatar Thomas Tangl Committed by Commit Bot

Add 'Manage your Google Account' row to user menu

Screenshot:
https://drive.google.com/file/d/1gwajK8CHXiZYNn5M_V02OUoXyji3fj3n/view?usp=sharing

Additional change:
The autofill group is always separated by a line.

Bug: 950534
Change-Id: I8e3a14c4e44dd38f188ff0c76ec84dce7f802894
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1556846Reviewed-by: default avatarDavid Roger <droger@chromium.org>
Commit-Queue: Thomas Tangl <tangltom@chromium.org>
Cr-Commit-Position: refs/heads/master@{#648749}
parent 53fb1c17
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/browser/ui/passwords/manage_passwords_view_utils.h" #include "chrome/browser/ui/passwords/manage_passwords_view_utils.h"
#include "chrome/browser/ui/sync/sync_promo_ui.h" #include "chrome/browser/ui/sync/sync_promo_ui.h"
#include "chrome/browser/ui/views/accessibility/non_accessible_image_view.h" #include "chrome/browser/ui/views/accessibility/non_accessible_image_view.h"
...@@ -47,6 +48,7 @@ ...@@ -47,6 +48,7 @@
#include "services/identity/public/cpp/primary_account_mutator.h" #include "services/identity/public/cpp/primary_account_mutator.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/image/image_skia_operations.h"
#include "ui/gfx/paint_vector_icon.h" #include "ui/gfx/paint_vector_icon.h"
#include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/md_text_button.h" #include "ui/views/controls/button/md_text_button.h"
...@@ -82,6 +84,13 @@ BadgedProfilePhoto::BadgeType GetProfileBadgeType(Profile* profile) { ...@@ -82,6 +84,13 @@ BadgedProfilePhoto::BadgeType GetProfileBadgeType(Profile* profile) {
return BadgedProfilePhoto::BADGE_TYPE_NONE; return BadgedProfilePhoto::BADGE_TYPE_NONE;
} }
void NavigateToGoogleAccountPage(Profile* profile) {
NavigateParams params(profile, GURL(chrome::kGoogleAccountURL),
ui::PAGE_TRANSITION_LINK);
params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
Navigate(&params);
}
} // namespace } // namespace
// ProfileChooserView --------------------------------------------------------- // ProfileChooserView ---------------------------------------------------------
...@@ -125,6 +134,7 @@ void ProfileChooserView::Reset() { ...@@ -125,6 +134,7 @@ void ProfileChooserView::Reset() {
credit_cards_button_ = nullptr; credit_cards_button_ = nullptr;
addresses_button_ = nullptr; addresses_button_ = nullptr;
signout_button_ = nullptr; signout_button_ = nullptr;
manage_google_account_button_ = nullptr;
} }
void ProfileChooserView::Init() { void ProfileChooserView::Init() {
...@@ -232,7 +242,9 @@ base::string16 ProfileChooserView::GetAccessibleWindowTitle() const { ...@@ -232,7 +242,9 @@ base::string16 ProfileChooserView::GetAccessibleWindowTitle() const {
void ProfileChooserView::ButtonPressed(views::Button* sender, void ProfileChooserView::ButtonPressed(views::Button* sender,
const ui::Event& event) { const ui::Event& event) {
if (sender == passwords_button_) { if (sender == manage_google_account_button_) {
NavigateToGoogleAccountPage(browser()->profile());
} else if (sender == passwords_button_) {
base::RecordAction( base::RecordAction(
base::UserMetricsAction("ProfileChooser_PasswordsClicked")); base::UserMetricsAction("ProfileChooser_PasswordsClicked"));
NavigateToManagePasswordsPage( NavigateToManagePasswordsPage(
...@@ -371,15 +383,17 @@ void ProfileChooserView::AddProfileChooserView(AvatarMenu* avatar_menu) { ...@@ -371,15 +383,17 @@ void ProfileChooserView::AddProfileChooserView(AvatarMenu* avatar_menu) {
AddGuestProfileView(); AddGuestProfileView();
} }
#if defined(GOOGLE_CHROME_BUILD)
if (dice_enabled_ && active_item->signed_in) {
AddManageGoogleAccountButton();
}
#endif
if (browser()->profile()->IsSupervised()) if (browser()->profile()->IsSupervised())
AddSupervisedUserDisclaimerView(); AddSupervisedUserDisclaimerView();
// If the user is signed in, then the autofill data is a part of the if (active_item)
// account logically. Otherwise, add as a new group. AddAutofillHomeView();
if (active_item) {
const bool add_as_new_group = !active_item->signed_in || sync_error;
AddAutofillHomeView(add_as_new_group);
}
const bool display_lock = active_item && active_item->signed_in && const bool display_lock = active_item && active_item->signed_in &&
profiles::IsLockAvailable(browser()->profile()); profiles::IsLockAvailable(browser()->profile());
...@@ -832,7 +846,7 @@ void ProfileChooserView::AddSupervisedUserDisclaimerView() { ...@@ -832,7 +846,7 @@ void ProfileChooserView::AddSupervisedUserDisclaimerView() {
AddMenuItems(menu_items, true); AddMenuItems(menu_items, true);
} }
void ProfileChooserView::AddAutofillHomeView(bool as_new_group) { void ProfileChooserView::AddAutofillHomeView() {
if (browser()->profile()->IsGuestSession()) if (browser()->profile()->IsGuestSession())
return; return;
...@@ -859,8 +873,32 @@ void ProfileChooserView::AddAutofillHomeView(bool as_new_group) { ...@@ -859,8 +873,32 @@ void ProfileChooserView::AddAutofillHomeView(bool as_new_group) {
addresses_button_ = button.get(); addresses_button_ = button.get();
menu_items.push_back(std::move(button)); menu_items.push_back(std::move(button));
AddMenuItems(menu_items, as_new_group); AddMenuItems(menu_items, /*new_group=*/true);
}
#if defined(GOOGLE_CHROME_BUILD)
void ProfileChooserView::AddManageGoogleAccountButton() {
ProfileMenuViewBase::MenuItems menu_items;
SkColor icon_color =
ui::NativeTheme::GetInstanceForNativeUi()->GetSystemColor(
ui::NativeTheme::kColorId_DefaultIconColor);
// |CreateVectorIcon()| doesn't override colors specified in the .icon file,
// therefore the image has to be colored manually with |CreateColorMask()|.
gfx::ImageSkia google_logo = gfx::CreateVectorIcon(
kGoogleGLogoIcon, GetDefaultIconSize(), gfx::kPlaceholderColor);
gfx::ImageSkia grey_google_logo =
gfx::ImageSkiaOperations::CreateColorMask(google_logo, icon_color);
std::unique_ptr<HoverButton> button = std::make_unique<HoverButton>(
this, grey_google_logo,
l10n_util::GetStringUTF16(IDS_SETTINGS_MANAGE_GOOGLE_ACCOUNT));
manage_google_account_button_ = button.get();
menu_items.push_back(std::move(button));
AddMenuItems(menu_items, /*new_group=*/false);
} }
#endif
void ProfileChooserView::PostActionPerformed( void ProfileChooserView::PostActionPerformed(
ProfileMetrics::ProfileDesktopMenu action_performed) { ProfileMetrics::ProfileDesktopMenu action_performed) {
......
...@@ -99,8 +99,10 @@ class ProfileChooserView : public ProfileMenuViewBase, ...@@ -99,8 +99,10 @@ class ProfileChooserView : public ProfileMenuViewBase,
void AddGuestProfileView(); void AddGuestProfileView();
void AddOptionsView(bool display_lock, AvatarMenu* avatar_menu); void AddOptionsView(bool display_lock, AvatarMenu* avatar_menu);
void AddSupervisedUserDisclaimerView(); void AddSupervisedUserDisclaimerView();
// If |as_new_group| is true, a separator will be added before this view. void AddAutofillHomeView();
void AddAutofillHomeView(bool as_new_group); #if defined(GOOGLE_CHROME_BUILD)
void AddManageGoogleAccountButton();
#endif
// Adds the DICE UI view to sign in and turn on sync. It includes an // Adds the DICE UI view to sign in and turn on sync. It includes an
// illustration, a promo and a button. // illustration, a promo and a button.
...@@ -157,6 +159,7 @@ class ProfileChooserView : public ProfileMenuViewBase, ...@@ -157,6 +159,7 @@ class ProfileChooserView : public ProfileMenuViewBase,
views::LabelButton* credit_cards_button_; views::LabelButton* credit_cards_button_;
views::LabelButton* addresses_button_; views::LabelButton* addresses_button_;
views::LabelButton* signout_button_; views::LabelButton* signout_button_;
views::LabelButton* manage_google_account_button_;
// View for the signin/turn-on-sync button in the dice promo. // View for the signin/turn-on-sync button in the dice promo.
DiceSigninButtonView* dice_signin_button_view_; DiceSigninButtonView* dice_signin_button_view_;
......
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