Chromium Code Reviews| 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 7198d96d9d1d6146d5026bdfd79803edcfec0e48..f620ced696fae5a97175f37193699989a26b6602 100644 |
| --- a/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm |
| +++ b/chrome/browser/ui/cocoa/profiles/profile_chooser_controller.mm |
| @@ -22,6 +22,7 @@ |
| #include "chrome/browser/profiles/profile_metrics.h" |
| #include "chrome/browser/profiles/profile_window.h" |
| #include "chrome/browser/profiles/profiles_state.h" |
| +#include "chrome/browser/signin/local_auth.h" |
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
| #include "chrome/browser/signin/signin_header_helper.h" |
| #include "chrome/browser/signin/signin_manager_factory.h" |
| @@ -826,7 +827,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver, |
| // Creates the "Not you" and Lock option buttons. |
| - (NSView*)createOptionsViewWithRect:(NSRect)rect |
| - enableLock:(BOOL)enableLock; |
| + displayLock:(BOOL)displayLock; |
| // Creates the account management view for the active profile. |
| - (NSView*)createCurrentProfileAccountsView:(NSRect)rect; |
| @@ -1140,7 +1141,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver, |
| base::scoped_nsobject<NSMutableArray> otherProfiles( |
| [[NSMutableArray alloc] init]); |
| // Local and guest profiles cannot lock their profile. |
| - bool enableLock = false; |
| + bool displayLock = false; |
| // Loop over the profiles in reverse, so that they are sorted by their |
| // y-coordinate, and separate them into active and "other" profiles. |
| @@ -1162,7 +1163,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver, |
| } |
| } |
| currentProfileView = [self createCurrentProfileView:item]; |
| - enableLock = switches::IsNewProfileManagement() && item.signed_in; |
| + displayLock = switches::IsNewProfileManagement() && item.signed_in; |
| } else { |
| [otherProfiles addObject:[self createOtherProfileView:i]]; |
| } |
| @@ -1178,7 +1179,7 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver, |
| // Option buttons. |
| NSRect rect = NSMakeRect(0, yOffset, kFixedMenuWidth, 0); |
| NSView* optionsView = [self createOptionsViewWithRect:rect |
| - enableLock:enableLock]; |
| + displayLock:displayLock]; |
| [container addSubview:optionsView]; |
| rect.origin.y = NSMaxY([optionsView frame]); |
| @@ -1690,19 +1691,23 @@ class ActiveProfileObserverBridge : public AvatarMenuObserver, |
| } |
| - (NSView*)createOptionsViewWithRect:(NSRect)rect |
| - enableLock:(BOOL)enableLock { |
| + displayLock:(BOOL)displayLock { |
| NSRect viewRect = NSMakeRect(0, 0, |
| rect.size.width, |
| kBlueButtonHeight + kSmallVerticalSpacing); |
| base::scoped_nsobject<NSView> container([[NSView alloc] initWithFrame:rect]); |
| - if (enableLock) { |
| + if (displayLock) { |
| + bool enableLock = chrome::LocalAuthCredentialsExist(browser_->profile()); |
|
msw
2014/08/22 21:46:48
nit: move down to if statement below (and inline).
Mike Lerman
2014/08/25 14:44:30
Done.
|
| + |
| NSButton* lockButton = |
| [self hoverButtonWithRect:viewRect |
| text:l10n_util::GetNSString( |
| IDS_PROFILES_PROFILE_SIGNOUT_BUTTON) |
| imageResourceId:IDR_ICON_PROFILES_MENU_LOCK |
| action:@selector(lockProfile:)]; |
| + if (!enableLock) |
| + [lockButton setEnabled:NO]; |
| [container addSubview:lockButton]; |
| viewRect.origin.y = NSMaxY([lockButton frame]); |