Index: chrome/browser/ui/cocoa/browser_window_controller.mm |
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm |
index dac410f90fe45fd4635a59f9ce7667d3cb193214..eaffca95a7793da66d2913ddbbe7a8d52d24b3d0 100644 |
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm |
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm |
@@ -22,6 +22,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_info_cache.h" |
#include "chrome/browser/profiles/profile_manager.h" |
+#include "chrome/browser/profiles/profiles_state.h" |
#include "chrome/browser/signin/signin_ui_util.h" |
#include "chrome/browser/themes/theme_service.h" |
#include "chrome/browser/themes/theme_service_factory.h" |
@@ -36,6 +37,7 @@ |
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" |
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_controller.h" |
#import "chrome/browser/ui/cocoa/browser/avatar_button_controller.h" |
+#import "chrome/browser/ui/cocoa/browser/new_avatar_button_controller.h" |
#import "chrome/browser/ui/cocoa/browser_window_cocoa.h" |
#import "chrome/browser/ui/cocoa/browser_window_controller_private.h" |
#import "chrome/browser/ui/cocoa/browser_window_utils.h" |
@@ -68,6 +70,7 @@ |
#include "chrome/browser/ui/toolbar/encoding_menu_controller.h" |
#include "chrome/browser/ui/window_sizer/window_sizer.h" |
#include "chrome/common/chrome_switches.h" |
+#include "chrome/common/profile_management_switches.h" |
#include "chrome/common/url_constants.h" |
#include "components/web_modal/web_contents_modal_dialog_manager.h" |
#include "content/public/browser/render_view_host.h" |
@@ -527,6 +530,10 @@ enum { |
return avatarButtonController_.get(); |
} |
+- (NewAvatarButtonController*)newAvatarButtonController { |
+ return newAvatarButtonController_.get(); |
+} |
+ |
- (void)destroyBrowser { |
[NSApp removeWindowsItem:[self window]]; |
@@ -1497,6 +1504,11 @@ enum { |
return AvatarMenu::ShouldShowAvatarMenu(); |
} |
+- (BOOL)shouldUseNewAvatarButton { |
+ return switches::IsNewProfileManagement() && |
+ profiles::IsRegularOrGuestSession(browser_.get()); |
+} |
+ |
- (BOOL)isBookmarkBarVisible { |
return [bookmarkBarController_ isVisible]; |
} |
@@ -1711,11 +1723,19 @@ enum { |
- (void)installAvatar { |
// Install the image into the badge view. Hide it for now; positioning and |
// sizing will be done by the layout code. The AvatarButton will choose which |
- // image to display based on the browser. |
- avatarButtonController_.reset( |
+ // image to display based on the browser. The NewAvatarButton will display |
+ // the browser profile's name unless the browser is incognito. |
+ NSView* view; |
+ if ([self shouldUseNewAvatarButton]) { |
+ newAvatarButtonController_.reset( |
+ [[NewAvatarButtonController alloc] initWithBrowser:browser_.get()]); |
+ view = [newAvatarButtonController_ view]; |
+ } else { |
+ avatarButtonController_.reset( |
[[AvatarButtonController alloc] initWithBrowser:browser_.get()]); |
+ view = [avatarButtonController_ view]; |
+ } |
- NSView* view = [avatarButtonController_ view]; |
[view setAutoresizingMask:NSViewMinXMargin | NSViewMinYMargin]; |
[view setHidden:![self shouldShowAvatar]]; |