Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Unified Diff: chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm

Issue 485073002: Migrate signin error messages to the new avatar bubble (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed cros error Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
diff --git a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
index 96af0e4e162c73ee468511ee7c8ab73cc9072d39..7198d96d9d1d6146d5026bdfd79803edcfec0e48 100644
--- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
+++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm
@@ -291,11 +291,8 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
// update.
profiles::BubbleViewMode viewMode = [controller_ viewMode];
if (viewMode == profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT ||
- viewMode == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN ||
viewMode == profiles::BUBBLE_VIEW_MODE_GAIA_ADD_ACCOUNT ||
viewMode == profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH) {
- if (viewMode == profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN)
- [controller_ setTutorialMode:profiles::TUTORIAL_MODE_CONFIRM_SIGNIN];
[controller_ initMenuContentsWithView:
switches::IsEnableAccountConsistency() ?
profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT :
@@ -805,6 +802,9 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
// configures sync through the "Settings" link.
- (NSView*)buildSigninConfirmationView;
+// Builds a tutorial card to show the last signin error.
+- (NSView*)buildSigninErrorView;
+
// Creates the main profile card for the profile |item| at the top of
// the bubble.
- (NSView*)createCurrentProfileView:(const AvatarMenu::Item&)item;
@@ -979,6 +979,10 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
ProfileMetrics::PROFILE_AVATAR_MENU_UPGRADE_NOT_YOU);
}
+- (IBAction)showLearnMorePage:(id)sender {
+ signin_ui_util::ShowSigninErrorLearnMorePage(browser_->profile());
+}
+
- (IBAction)configureSyncSettings:(id)sender {
tutorialMode_ = profiles::TUTORIAL_MODE_NONE;
LoginUIServiceFactory::GetForProfile(browser_->profile())->
@@ -1154,8 +1158,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
tutorialView = [self buildSigninConfirmationView];
break;
case profiles::TUTORIAL_MODE_SHOW_ERROR:
- // TODO(guohui): not implemented yet.
- NOTREACHED();
+ tutorialView = [self buildSigninErrorView];
}
}
currentProfileView = [self createCurrentProfileView:item];
@@ -1270,6 +1273,26 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
buttonAction:@selector(syncSettingsConfirmed:)];
}
+- (NSView*)buildSigninErrorView {
+ NSString* titleMessage = l10n_util::GetNSString(
+ IDS_PROFILES_ERROR_TUTORIAL_TITLE);
+ LoginUIService* loginUiService =
+ LoginUIServiceFactory::GetForProfile(browser_->profile());
+ NSString* contentMessage =
+ base::SysUTF16ToNSString(loginUiService->GetLastLoginResult());
+ NSString* linkMessage = l10n_util::GetNSString(
+ IDS_PROFILES_PROFILE_TUTORIAL_LEARN_MORE);
+ return [self tutorialViewWithMode:profiles::TUTORIAL_MODE_CONFIRM_SIGNIN
+ titleMessage:titleMessage
+ contentMessage:contentMessage
+ linkMessage:linkMessage
+ buttonMessage:nil
+ stackButton:NO
+ hasCloseButton:YES
+ linkAction:@selector(showLearnMorePage:)
+ buttonAction:nil];
+}
+
- (NSView*)buildWelcomeUpgradeTutorialViewIfNeeded {
Profile* profile = browser_->profile();
const AvatarMenu::Item& avatarItem =
@@ -1334,14 +1357,16 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
CGFloat yOffset = kVerticalSpacing;
// Adds links and buttons at the bottom.
- base::scoped_nsobject<NSButton> tutorialOkButton([[HoverButton alloc]
- initWithFrame:NSZeroRect]);
- [tutorialOkButton setTitle:buttonMessage];
- [tutorialOkButton setBezelStyle:NSRoundedBezelStyle];
- [tutorialOkButton setTarget:self];
- [tutorialOkButton setAction:buttonAction];
- [tutorialOkButton setAlignment:NSCenterTextAlignment];
- [tutorialOkButton sizeToFit];
+ base::scoped_nsobject<NSButton> tutorialOkButton;
+ if (buttonMessage) {
+ tutorialOkButton.reset([[HoverButton alloc] initWithFrame:NSZeroRect]);
+ [tutorialOkButton setTitle:buttonMessage];
+ [tutorialOkButton setBezelStyle:NSRoundedBezelStyle];
+ [tutorialOkButton setTarget:self];
+ [tutorialOkButton setAction:buttonAction];
+ [tutorialOkButton setAlignment:NSCenterTextAlignment];
+ [tutorialOkButton sizeToFit];
+ }
NSButton* learnMoreLink = nil;
if (linkMessage) {
@@ -1352,7 +1377,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
}
if (stackButton) {
- if (learnMoreLink) {
+ if (linkMessage) {
[learnMoreLink setFrameOrigin:NSMakePoint(
(kFixedMenuWidth - NSWidth([learnMoreLink frame])) / 2, yOffset)];
}
@@ -1362,33 +1387,41 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver,
kHorizontalSpacing,
yOffset + (learnMoreLink ? NSHeight([learnMoreLink frame]) : 0))];
} else {
- NSSize buttonSize = [tutorialOkButton frame].size;
- const CGFloat kTopBottomTextPadding = 6;
- const CGFloat kLeftRightTextPadding = 15;
- buttonSize.width += 2 * kLeftRightTextPadding;
- buttonSize.height += 2 * kTopBottomTextPadding;
- [tutorialOkButton setFrameSize:buttonSize];
- CGFloat buttonXOffset = kFixedMenuWidth -
- NSWidth([tutorialOkButton frame]) - kHorizontalSpacing;
- [tutorialOkButton setFrameOrigin:NSMakePoint(buttonXOffset, yOffset)];
-
- if (learnMoreLink) {
- CGFloat linkYOffset = yOffset + (NSHeight([tutorialOkButton frame]) -
- NSHeight([learnMoreLink frame])) / 2;
+ if (buttonMessage) {
+ NSSize buttonSize = [tutorialOkButton frame].size;
+ const CGFloat kTopBottomTextPadding = 6;
+ const CGFloat kLeftRightTextPadding = 15;
+ buttonSize.width += 2 * kLeftRightTextPadding;
+ buttonSize.height += 2 * kTopBottomTextPadding;
+ [tutorialOkButton setFrameSize:buttonSize];
+ CGFloat buttonXOffset = kFixedMenuWidth -
+ NSWidth([tutorialOkButton frame]) - kHorizontalSpacing;
+ [tutorialOkButton setFrameOrigin:NSMakePoint(buttonXOffset, yOffset)];
+ }
+
+ if (linkMessage) {
+ CGFloat linkYOffset = yOffset;
+ if (buttonMessage) {
+ linkYOffset += (NSHeight([tutorialOkButton frame]) -
+ NSHeight([learnMoreLink frame])) / 2;
+ }
[learnMoreLink setFrameOrigin:NSMakePoint(
kHorizontalSpacing, linkYOffset)];
}
}
- [container addSubview:tutorialOkButton];
- if (learnMoreLink) {
+ if (buttonMessage) {
+ [container addSubview:tutorialOkButton];
+ yOffset = NSMaxY([tutorialOkButton frame]);
+ }
+
+ if (linkMessage) {
[container addSubview:learnMoreLink];
- yOffset = std::max(NSMaxY([learnMoreLink frame]),
- NSMaxY([tutorialOkButton frame])) + kVerticalSpacing;
- } else {
- yOffset = NSMaxY([tutorialOkButton frame]) + kVerticalSpacing;
+ yOffset = std::max(NSMaxY([learnMoreLink frame]), yOffset);
}
+ yOffset += kVerticalSpacing;
+
// Adds body content.
NSTextField* contentLabel = BuildLabel(
contentMessage,
« no previous file with comments | « chrome/browser/ui/cocoa/profiles/avatar_base_controller.mm ('k') | chrome/browser/ui/sync/one_click_signin_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698