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

Side by Side Diff: chrome/browser/app_controller_mac.mm

Issue 2435053002: Remove the sign-in menu item on macOS. (Closed)
Patch Set: Rebase Created 4 years, 2 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/app_controller_mac.h ('k') | chrome/browser/app_controller_mac_unittest.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/app_controller_mac.h" 5 #import "chrome/browser/app_controller_mac.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 284
285 AppController* app_controller_; // Weak; owns us. 285 AppController* app_controller_; // Weak; owns us.
286 286
287 DISALLOW_COPY_AND_ASSIGN(AppControllerProfileObserver); 287 DISALLOW_COPY_AND_ASSIGN(AppControllerProfileObserver);
288 }; 288 };
289 289
290 @implementation AppController 290 @implementation AppController
291 291
292 @synthesize startupComplete = startupComplete_; 292 @synthesize startupComplete = startupComplete_;
293 293
294 + (void)updateSigninItem:(id)signinItem
295 shouldShow:(BOOL)showSigninMenuItem
296 currentProfile:(Profile*)profile {
297 DCHECK([signinItem isKindOfClass:[NSMenuItem class]]);
298 NSMenuItem* signinMenuItem = static_cast<NSMenuItem*>(signinItem);
299
300 // Look for a separator immediately after the menu item so it can be hidden
301 // or shown appropriately along with the signin menu item.
302 NSMenuItem* followingSeparator = nil;
303 NSMenu* menu = [signinItem menu];
304 if (menu) {
305 NSInteger signinItemIndex = [menu indexOfItem:signinMenuItem];
306 DCHECK_NE(signinItemIndex, -1);
307 if ((signinItemIndex + 1) < [menu numberOfItems]) {
308 NSMenuItem* menuItem = [menu itemAtIndex:(signinItemIndex + 1)];
309 if ([menuItem isSeparatorItem]) {
310 followingSeparator = menuItem;
311 }
312 }
313 }
314
315 base::string16 label = signin_ui_util::GetSigninMenuLabel(profile);
316 [signinMenuItem setTitle:l10n_util::FixUpWindowsStyleLabel(label)];
317 [signinMenuItem setHidden:!showSigninMenuItem];
318 [followingSeparator setHidden:!showSigninMenuItem];
319 }
320
321 - (void)dealloc { 294 - (void)dealloc {
322 [[closeTabMenuItem_ menu] setDelegate:nil]; 295 [[closeTabMenuItem_ menu] setDelegate:nil];
323 [super dealloc]; 296 [super dealloc];
324 } 297 }
325 298
326 // This method is called very early in application startup (ie, before 299 // This method is called very early in application startup (ie, before
327 // the profile is loaded or any preferences have been registered). Defer any 300 // the profile is loaded or any preferences have been registered). Defer any
328 // user-data initialization until -applicationDidFinishLaunching:. 301 // user-data initialization until -applicationDidFinishLaunching:.
329 - (void)awakeFromNib { 302 - (void)awakeFromNib {
330 MacStartupProfiler::GetInstance()->Profile( 303 MacStartupProfiler::GetInstance()->Profile(
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 case IDC_SHOW_HISTORY: 888 case IDC_SHOW_HISTORY:
916 case IDC_SHOW_BOOKMARK_MANAGER: 889 case IDC_SHOW_BOOKMARK_MANAGER:
917 enable = ![self keyWindowIsModal]; 890 enable = ![self keyWindowIsModal];
918 break; 891 break;
919 // Browser-level items that open in new windows. 892 // Browser-level items that open in new windows.
920 case IDC_TASK_MANAGER: 893 case IDC_TASK_MANAGER:
921 // Allow the user to open a new window if there's a window-modal 894 // Allow the user to open a new window if there's a window-modal
922 // dialog. 895 // dialog.
923 enable = ![self keyWindowIsModal]; 896 enable = ![self keyWindowIsModal];
924 break; 897 break;
925 case IDC_SHOW_SYNC_SETUP: {
926 Profile* lastProfile = [self lastProfile];
927 // The profile may be NULL during shutdown -- see
928 // http://code.google.com/p/chromium/issues/detail?id=43048 .
929 //
930 // TODO(akalin,viettrungluu): Figure out whether this method
931 // can be prevented from being called if lastProfile is
932 // NULL.
933 if (!lastProfile) {
934 LOG(WARNING)
935 << "NULL lastProfile detected -- not doing anything";
936 break;
937 }
938 SigninManager* signin = SigninManagerFactory::GetForProfile(
939 lastProfile->GetOriginalProfile());
940 enable = signin->IsSigninAllowed() && ![self keyWindowIsModal];
941 [AppController updateSigninItem:item
942 shouldShow:enable
943 currentProfile:lastProfile];
944 break;
945 }
946 default: 898 default:
947 enable = menuState_->IsCommandEnabled(tag) ? 899 enable = menuState_->IsCommandEnabled(tag) ?
948 ![self keyWindowIsModal] : NO; 900 ![self keyWindowIsModal] : NO;
949 } 901 }
950 } 902 }
951 903
952 // "Show as tab" should only appear when the current window is a popup. 904 // "Show as tab" should only appear when the current window is a popup.
953 // Since |validateUserInterfaceItem:| is called only when there are no 905 // Since |validateUserInterfaceItem:| is called only when there are no
954 // key windows, we should just hide this. 906 // key windows, we should just hide this.
955 // This is handled outside of the switch statement because we want to hide 907 // This is handled outside of the switch statement because we want to hide
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 chrome::ShowExtensions(browser, std::string()); 1033 chrome::ShowExtensions(browser, std::string());
1082 else 1034 else
1083 chrome::OpenExtensionsWindow(lastProfile); 1035 chrome::OpenExtensionsWindow(lastProfile);
1084 break; 1036 break;
1085 case IDC_HELP_PAGE_VIA_MENU: 1037 case IDC_HELP_PAGE_VIA_MENU:
1086 if (Browser* browser = ActivateBrowser(lastProfile)) 1038 if (Browser* browser = ActivateBrowser(lastProfile))
1087 chrome::ShowHelp(browser, chrome::HELP_SOURCE_MENU); 1039 chrome::ShowHelp(browser, chrome::HELP_SOURCE_MENU);
1088 else 1040 else
1089 chrome::OpenHelpWindow(lastProfile, chrome::HELP_SOURCE_MENU); 1041 chrome::OpenHelpWindow(lastProfile, chrome::HELP_SOURCE_MENU);
1090 break; 1042 break;
1091 case IDC_SHOW_SYNC_SETUP:
1092 if (Browser* browser = ActivateBrowser(lastProfile)) {
1093 chrome::ShowBrowserSigninOrSettings(
1094 browser, signin_metrics::AccessPoint::ACCESS_POINT_MENU);
1095 } else {
1096 chrome::OpenSyncSetupWindow(
1097 lastProfile, signin_metrics::AccessPoint::ACCESS_POINT_MENU);
1098 }
1099 break;
1100 case IDC_TASK_MANAGER: 1043 case IDC_TASK_MANAGER:
1101 chrome::OpenTaskManager(NULL); 1044 chrome::OpenTaskManager(NULL);
1102 break; 1045 break;
1103 case IDC_OPTIONS: 1046 case IDC_OPTIONS:
1104 [self showPreferences:sender]; 1047 [self showPreferences:sender];
1105 break; 1048 break;
1106 } 1049 }
1107 } 1050 }
1108 1051
1109 // Run a (background) application in a new tab. 1052 // Run a (background) application in a new tab.
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1242 menuState_->UpdateCommandEnabled(IDC_FOCUS_SEARCH, true); 1185 menuState_->UpdateCommandEnabled(IDC_FOCUS_SEARCH, true);
1243 menuState_->UpdateCommandEnabled(IDC_SHOW_BOOKMARK_MANAGER, true); 1186 menuState_->UpdateCommandEnabled(IDC_SHOW_BOOKMARK_MANAGER, true);
1244 menuState_->UpdateCommandEnabled(IDC_SHOW_HISTORY, true); 1187 menuState_->UpdateCommandEnabled(IDC_SHOW_HISTORY, true);
1245 menuState_->UpdateCommandEnabled(IDC_SHOW_DOWNLOADS, true); 1188 menuState_->UpdateCommandEnabled(IDC_SHOW_DOWNLOADS, true);
1246 menuState_->UpdateCommandEnabled(IDC_MANAGE_EXTENSIONS, true); 1189 menuState_->UpdateCommandEnabled(IDC_MANAGE_EXTENSIONS, true);
1247 menuState_->UpdateCommandEnabled(IDC_HELP_PAGE_VIA_MENU, true); 1190 menuState_->UpdateCommandEnabled(IDC_HELP_PAGE_VIA_MENU, true);
1248 menuState_->UpdateCommandEnabled(IDC_IMPORT_SETTINGS, true); 1191 menuState_->UpdateCommandEnabled(IDC_IMPORT_SETTINGS, true);
1249 #if defined(GOOGLE_CHROME_BUILD) 1192 #if defined(GOOGLE_CHROME_BUILD)
1250 menuState_->UpdateCommandEnabled(IDC_FEEDBACK, true); 1193 menuState_->UpdateCommandEnabled(IDC_FEEDBACK, true);
1251 #endif 1194 #endif
1252 menuState_->UpdateCommandEnabled(IDC_SHOW_SYNC_SETUP, true);
1253 menuState_->UpdateCommandEnabled(IDC_TASK_MANAGER, true); 1195 menuState_->UpdateCommandEnabled(IDC_TASK_MANAGER, true);
1254 } 1196 }
1255 1197
1256 // Conditionally adds the Profile menu to the main menu bar. 1198 // Conditionally adds the Profile menu to the main menu bar.
1257 - (void)initProfileMenu { 1199 - (void)initProfileMenu {
1258 NSMenu* mainMenu = [NSApp mainMenu]; 1200 NSMenu* mainMenu = [NSApp mainMenu];
1259 NSMenuItem* profileMenu = [mainMenu itemWithTag:IDC_PROFILE_MAIN_MENU]; 1201 NSMenuItem* profileMenu = [mainMenu itemWithTag:IDC_PROFILE_MAIN_MENU];
1260 1202
1261 if (!profiles::IsMultipleProfilesEnabled()) { 1203 if (!profiles::IsMultipleProfilesEnabled()) {
1262 [mainMenu removeItem:profileMenu]; 1204 [mainMenu removeItem:profileMenu];
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
1665 1607
1666 //--------------------------------------------------------------------------- 1608 //---------------------------------------------------------------------------
1667 1609
1668 namespace app_controller_mac { 1610 namespace app_controller_mac {
1669 1611
1670 bool IsOpeningNewWindow() { 1612 bool IsOpeningNewWindow() {
1671 return g_is_opening_new_window; 1613 return g_is_opening_new_window;
1672 } 1614 }
1673 1615
1674 } // namespace app_controller_mac 1616 } // namespace app_controller_mac
OLDNEW
« no previous file with comments | « chrome/browser/app_controller_mac.h ('k') | chrome/browser/app_controller_mac_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698