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

Side by Side Diff: chrome/browser/ui/toolbar/wrench_menu_model.cc

Issue 1182493009: Wrench menu reorg phase 2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reinstate 'About' menu item to CrOS Created 5 years, 6 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
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 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" 5 #include "chrome/browser/ui/toolbar/wrench_menu_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 Build(browser); 241 Build(browser);
242 } 242 }
243 243
244 private: 244 private:
245 void Build(Browser* browser) { 245 void Build(Browser* browser) {
246 #if defined(OS_CHROMEOS) && defined(OFFICIAL_BUILD) 246 #if defined(OS_CHROMEOS) && defined(OFFICIAL_BUILD)
247 int help_string_id = IDS_GET_HELP; 247 int help_string_id = IDS_GET_HELP;
248 #else 248 #else
249 int help_string_id = IDS_HELP_PAGE; 249 int help_string_id = IDS_HELP_PAGE;
250 #endif 250 #endif
251 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT));
251 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, help_string_id); 252 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, help_string_id);
252 if (browser_defaults::kShowHelpMenuItemIcon) { 253 if (browser_defaults::kShowHelpMenuItemIcon) {
253 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 254 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance();
254 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), 255 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU),
255 rb.GetNativeImageNamed(IDR_HELP_MENU)); 256 rb.GetNativeImageNamed(IDR_HELP_MENU));
256 } 257 }
257
258 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); 258 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK);
259 } 259 }
260 260
261 DISALLOW_COPY_AND_ASSIGN(HelpMenuModel); 261 DISALLOW_COPY_AND_ASSIGN(HelpMenuModel);
262 }; 262 };
263 263
264 #endif // defined(GOOGLE_CHROME_BUILD) 264 #endif // defined(GOOGLE_CHROME_BUILD)
265 265
266 //////////////////////////////////////////////////////////////////////////////// 266 ////////////////////////////////////////////////////////////////////////////////
267 // ToolsMenuModel 267 // ToolsMenuModel
268 268
269 ToolsMenuModel::ToolsMenuModel(ui::SimpleMenuModel::Delegate* delegate, 269 ToolsMenuModel::ToolsMenuModel(ui::SimpleMenuModel::Delegate* delegate,
270 Browser* browser) 270 Browser* browser)
271 : SimpleMenuModel(delegate) { 271 : SimpleMenuModel(delegate) {
272 Build(browser); 272 Build(browser);
273 } 273 }
274 274
275 ToolsMenuModel::~ToolsMenuModel() {} 275 ToolsMenuModel::~ToolsMenuModel() {}
276 276
277 // More tools submenu is organised as follows:
Peter Kasting 2015/06/22 23:14:24 Tiny nit: I think in Chrome comments we generally
edwardjung 2015/06/24 12:41:59 Americanise all the comments :D
278 // - Page specific actions overflow (save page, adding to taskbar).
279 // - Browser / OS level tools (extensions, task manager).
280 // - Developer tools.
281 // - Profiling enabled option.
Peter Kasting 2015/06/22 23:14:24 Nit: "Option to enable profiling"?
edwardjung 2015/06/24 12:41:59 Done.
277 void ToolsMenuModel::Build(Browser* browser) { 282 void ToolsMenuModel::Build(Browser* browser) {
278 bool show_create_shortcuts = true; 283 bool show_create_shortcuts = true;
279 #if defined(OS_CHROMEOS) || defined(OS_MACOSX) 284 #if defined(OS_CHROMEOS) || defined(OS_MACOSX)
280 show_create_shortcuts = false; 285 show_create_shortcuts = false;
281 #elif defined(USE_ASH) 286 #elif defined(USE_ASH)
282 if (browser->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) 287 if (browser->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH)
283 show_create_shortcuts = false; 288 show_create_shortcuts = false;
284 #endif 289 #endif
285 290 AddItemWithStringId(IDC_SAVE_PAGE, IDS_SAVE_PAGE);
286 AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA);
287 AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS);
288
289 if (chrome::CanOpenTaskManager())
290 AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
291
292 if (extensions::util::IsNewBookmarkAppsEnabled()) { 291 if (extensions::util::IsNewBookmarkAppsEnabled()) {
293 #if defined(OS_MACOSX) 292 #if defined(OS_MACOSX)
294 int string_id = IDS_ADD_TO_APPLICATIONS; 293 int string_id = IDS_ADD_TO_APPLICATIONS;
295 #elif defined(OS_WIN) 294 #elif defined(OS_WIN)
296 int string_id = IDS_ADD_TO_TASKBAR; 295 int string_id = IDS_ADD_TO_TASKBAR;
297 #else 296 #else
298 int string_id = IDS_ADD_TO_DESKTOP; 297 int string_id = IDS_ADD_TO_DESKTOP;
299 #endif 298 #endif
300 #if defined(USE_ASH) 299 #if defined(USE_ASH)
301 if (browser->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) 300 if (browser->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH)
302 string_id = IDS_ADD_TO_SHELF; 301 string_id = IDS_ADD_TO_SHELF;
303 #endif 302 #endif
304 AddItemWithStringId(IDC_CREATE_HOSTED_APP, string_id); 303 AddItemWithStringId(IDC_CREATE_HOSTED_APP, string_id);
305 } else if (show_create_shortcuts) { 304 } else if (show_create_shortcuts) {
306 AddItemWithStringId(IDC_CREATE_SHORTCUTS, IDS_CREATE_SHORTCUTS); 305 AddItemWithStringId(IDC_CREATE_SHORTCUTS, IDS_CREATE_SHORTCUTS);
307 } 306 }
308 307
308 AddSeparator(ui::NORMAL_SEPARATOR);
309 AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA);
310 AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS);
311 if (chrome::CanOpenTaskManager())
312 AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
309 #if defined(OS_CHROMEOS) 313 #if defined(OS_CHROMEOS)
310 AddItemWithStringId(IDC_TAKE_SCREENSHOT, IDS_TAKE_SCREENSHOT); 314 AddItemWithStringId(IDC_TAKE_SCREENSHOT, IDS_TAKE_SCREENSHOT);
311 #endif 315 #endif
312
313 encoding_menu_model_.reset(new EncodingMenuModel(browser)); 316 encoding_menu_model_.reset(new EncodingMenuModel(browser));
314 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, 317 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU,
315 encoding_menu_model_.get()); 318 encoding_menu_model_.get());
319
316 AddSeparator(ui::NORMAL_SEPARATOR); 320 AddSeparator(ui::NORMAL_SEPARATOR);
317 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); 321 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS);
318 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE);
319 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE);
320 AddItemWithStringId(IDC_DEV_TOOLS_DEVICES, IDS_DEV_TOOLS_DEVICES);
321 322
322 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC) 323 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC)
323 AddSeparator(ui::NORMAL_SEPARATOR); 324 AddSeparator(ui::NORMAL_SEPARATOR);
324 AddCheckItemWithStringId(IDC_PROFILING_ENABLED, IDS_PROFILING_ENABLED); 325 AddCheckItemWithStringId(IDC_PROFILING_ENABLED, IDS_PROFILING_ENABLED);
325 #endif 326 #endif
326 } 327 }
327 328
328 //////////////////////////////////////////////////////////////////////////////// 329 ////////////////////////////////////////////////////////////////////////////////
329 // WrenchMenuModel 330 // WrenchMenuModel
330 331
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 // - Browser relaunch, quit. 882 // - Browser relaunch, quit.
882 void WrenchMenuModel::Build() { 883 void WrenchMenuModel::Build() {
883 if (extensions::FeatureSwitch::extension_action_redesign()->IsEnabled()) 884 if (extensions::FeatureSwitch::extension_action_redesign()->IsEnabled())
884 CreateExtensionToolbarOverflowMenu(); 885 CreateExtensionToolbarOverflowMenu();
885 886
886 AddItem(IDC_VIEW_INCOMPATIBILITIES, 887 AddItem(IDC_VIEW_INCOMPATIBILITIES,
887 l10n_util::GetStringUTF16(IDS_VIEW_INCOMPATIBILITIES)); 888 l10n_util::GetStringUTF16(IDS_VIEW_INCOMPATIBILITIES));
888 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), 889 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES),
889 ui::ResourceBundle::GetSharedInstance(). 890 ui::ResourceBundle::GetSharedInstance().
890 GetNativeImageNamed(IDR_INPUT_ALERT_MENU)); 891 GetNativeImageNamed(IDR_INPUT_ALERT_MENU));
891
892 if (IsCommandIdVisible(IDC_UPGRADE_DIALOG)) 892 if (IsCommandIdVisible(IDC_UPGRADE_DIALOG))
893 AddItem(IDC_UPGRADE_DIALOG, GetUpgradeDialogMenuItemName()); 893 AddItem(IDC_UPGRADE_DIALOG, GetUpgradeDialogMenuItemName());
894
895 if (AddGlobalErrorMenuItems() || 894 if (AddGlobalErrorMenuItems() ||
896 IsCommandIdVisible(IDC_VIEW_INCOMPATIBILITIES) || 895 IsCommandIdVisible(IDC_VIEW_INCOMPATIBILITIES) ||
897 IsCommandIdVisible(IDC_UPGRADE_DIALOG)) 896 IsCommandIdVisible(IDC_UPGRADE_DIALOG))
898 AddSeparator(ui::NORMAL_SEPARATOR); 897 AddSeparator(ui::NORMAL_SEPARATOR);
899 898
900 AddItemWithStringId(IDC_NEW_TAB, IDS_NEW_TAB); 899 AddItemWithStringId(IDC_NEW_TAB, IDS_NEW_TAB);
901 AddItemWithStringId(IDC_NEW_WINDOW, IDS_NEW_WINDOW); 900 AddItemWithStringId(IDC_NEW_WINDOW, IDS_NEW_WINDOW);
902 if (ShouldShowNewIncognitoWindowMenuItem()) 901 if (ShouldShowNewIncognitoWindowMenuItem())
903 AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, IDS_NEW_INCOGNITO_WINDOW); 902 AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, IDS_NEW_INCOGNITO_WINDOW);
904
905 AddSeparator(ui::NORMAL_SEPARATOR); 903 AddSeparator(ui::NORMAL_SEPARATOR);
906 904
907 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_SHOW_HISTORY);
908 AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS);
909
910 if (!browser_->profile()->IsOffTheRecord()) { 905 if (!browser_->profile()->IsOffTheRecord()) {
911 recent_tabs_sub_menu_model_.reset(new RecentTabsSubMenuModel(provider_, 906 recent_tabs_sub_menu_model_.reset(new RecentTabsSubMenuModel(provider_,
912 browser_, 907 browser_,
913 NULL)); 908 NULL));
914 AddSubMenuWithStringId(IDC_RECENT_TABS_MENU, IDS_RECENT_TABS_MENU, 909 AddSubMenuWithStringId(IDC_RECENT_TABS_MENU, IDS_HISTORY_RECENT_TABS_MENU,
915 recent_tabs_sub_menu_model_.get()); 910 recent_tabs_sub_menu_model_.get());
916 } 911 }
917 912 AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS);
918 if (!browser_->profile()->IsGuestSession()) { 913 if (!browser_->profile()->IsGuestSession()) {
919 bookmark_sub_menu_model_.reset(new BookmarkSubMenuModel(this, browser_)); 914 bookmark_sub_menu_model_.reset(new BookmarkSubMenuModel(this, browser_));
920 AddSubMenuWithStringId(IDC_BOOKMARKS_MENU, IDS_BOOKMARKS_MENU, 915 AddSubMenuWithStringId(IDC_BOOKMARKS_MENU, IDS_BOOKMARKS_MENU,
921 bookmark_sub_menu_model_.get()); 916 bookmark_sub_menu_model_.get());
922 } 917 }
923 918
924 CreateZoomMenu(); 919 CreateZoomMenu();
925
926 AddItemWithStringId(IDC_PRINT, IDS_PRINT); 920 AddItemWithStringId(IDC_PRINT, IDS_PRINT);
927 AddItemWithStringId(IDC_SAVE_PAGE, IDS_SAVE_PAGE);
928 AddItemWithStringId(IDC_FIND, IDS_FIND); 921 AddItemWithStringId(IDC_FIND, IDS_FIND);
929 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 922 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
930 switches::kEnableDomDistiller)) 923 switches::kEnableDomDistiller))
931 AddItemWithStringId(IDC_DISTILL_PAGE, IDS_DISTILL_PAGE); 924 AddItemWithStringId(IDC_DISTILL_PAGE, IDS_DISTILL_PAGE);
932 tools_menu_model_.reset(new ToolsMenuModel(this, browser_)); 925 tools_menu_model_.reset(new ToolsMenuModel(this, browser_));
933 AddSubMenuWithStringId( 926 AddSubMenuWithStringId(
934 IDC_MORE_TOOLS_MENU, IDS_MORE_TOOLS_MENU, tools_menu_model_.get()); 927 IDC_MORE_TOOLS_MENU, IDS_MORE_TOOLS_MENU, tools_menu_model_.get());
935
936 // Append the full menu including separators. The final separator only gets 928 // Append the full menu including separators. The final separator only gets
937 // appended when this is a touch menu - otherwise it would get added twice. 929 // appended when this is a touch menu - otherwise it would get added twice.
938 CreateCutCopyPasteMenu(); 930 CreateCutCopyPasteMenu();
939 931
940 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); 932 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS);
941
942 #if !defined(OS_CHROMEOS) 933 #if !defined(OS_CHROMEOS)
943 if (!switches::IsNewAvatarMenu()) { 934 if (!switches::IsNewAvatarMenu()) {
944 // No "Sign in to Chromium..." menu item on ChromeOS. 935 // No "Sign in to Chromium..." menu item on ChromeOS.
945 SigninManager* signin = SigninManagerFactory::GetForProfile( 936 SigninManager* signin = SigninManagerFactory::GetForProfile(
946 browser_->profile()->GetOriginalProfile()); 937 browser_->profile()->GetOriginalProfile());
947 if (signin && signin->IsSigninAllowed() && 938 if (signin && signin->IsSigninAllowed() &&
948 signin_ui_util::GetSignedInServiceErrors( 939 signin_ui_util::GetSignedInServiceErrors(
949 browser_->profile()->GetOriginalProfile()).empty()) { 940 browser_->profile()->GetOriginalProfile()).empty()) {
950 AddItem(IDC_SHOW_SYNC_SETUP, 941 AddItem(IDC_SHOW_SYNC_SETUP,
951 l10n_util::GetStringFUTF16( 942 l10n_util::GetStringFUTF16(
952 IDS_SYNC_MENU_PRE_SYNCED_LABEL, 943 IDS_SYNC_MENU_PRE_SYNCED_LABEL,
953 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME))); 944 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)));
954 } 945 }
955 } 946 }
956 #endif 947 #endif
957 948 // The help submenu is only displayed on official Chrome builds. As the
958 // On ChromeOS we don't want the about menu option. 949 // 'About' item has been moved to this submenu, it's reinstated here for
959 #if !defined(OS_CHROMEOS) 950 // Chromium builds.
960 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT));
961 #endif
962
963 #if defined(GOOGLE_CHROME_BUILD) 951 #if defined(GOOGLE_CHROME_BUILD)
964 help_menu_model_.reset(new HelpMenuModel(this, browser_)); 952 help_menu_model_.reset(new HelpMenuModel(this, browser_));
965 AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU, 953 AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU,
966 help_menu_model_.get()); 954 help_menu_model_.get());
955 #else
956 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT));
967 #endif 957 #endif
968
969 #if defined(OS_CHROMEOS) 958 #if defined(OS_CHROMEOS)
970 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 959 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
971 chromeos::switches::kEnableRequestTabletSite)) 960 chromeos::switches::kEnableRequestTabletSite))
972 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE, 961 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE,
973 IDS_TOGGLE_REQUEST_TABLET_SITE); 962 IDS_TOGGLE_REQUEST_TABLET_SITE);
974 #endif 963 #endif
975 964
976 #if defined(OS_WIN) 965 #if defined(OS_WIN)
977 int command_id = IDC_WIN_DESKTOP_RESTART; 966 int command_id = IDC_WIN_DESKTOP_RESTART;
978 int string_id = IDS_WIN_DESKTOP_RESTART; 967 int string_id = IDS_WIN_DESKTOP_RESTART;
979 if (GetRestartMenuItemIfRequired(browser_->host_desktop_type(), 968 if (GetRestartMenuItemIfRequired(browser_->host_desktop_type(),
980 &command_id, 969 &command_id,
981 &string_id)) { 970 &string_id)) {
982 AddSeparator(ui::NORMAL_SEPARATOR); 971 AddSeparator(ui::NORMAL_SEPARATOR);
983 AddItemWithStringId(command_id, string_id); 972 AddItemWithStringId(command_id, string_id);
984 } 973 }
985 #endif 974 #endif
986
987 bool show_exit_menu = browser_defaults::kShowExitMenuItem; 975 bool show_exit_menu = browser_defaults::kShowExitMenuItem;
988 #if defined(OS_WIN) 976 #if defined(OS_WIN)
989 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) 977 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH)
990 show_exit_menu = false; 978 show_exit_menu = false;
991 #endif 979 #endif
992
993 if (show_exit_menu) { 980 if (show_exit_menu) {
994 AddSeparator(ui::NORMAL_SEPARATOR); 981 AddSeparator(ui::NORMAL_SEPARATOR);
995 AddItemWithStringId(IDC_EXIT, IDS_EXIT); 982 AddItemWithStringId(IDC_EXIT, IDS_EXIT);
996 } 983 }
997 uma_action_recorded_ = false; 984 uma_action_recorded_ = false;
998 } 985 }
999 986
1000 bool WrenchMenuModel::AddGlobalErrorMenuItems() { 987 bool WrenchMenuModel::AddGlobalErrorMenuItems() {
1001 // TODO(sail): Currently we only build the wrench menu once per browser 988 // TODO(sail): Currently we only build the wrench menu once per browser
1002 // window. This means that if a new error is added after the menu is built 989 // window. This means that if a new error is added after the menu is built
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 ->GetZoomPercent(); 1095 ->GetZoomPercent();
1109 } 1096 }
1110 zoom_label_ = l10n_util::GetStringFUTF16( 1097 zoom_label_ = l10n_util::GetStringFUTF16(
1111 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); 1098 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent));
1112 } 1099 }
1113 1100
1114 void WrenchMenuModel::OnZoomLevelChanged( 1101 void WrenchMenuModel::OnZoomLevelChanged(
1115 const content::HostZoomMap::ZoomLevelChange& change) { 1102 const content::HostZoomMap::ZoomLevelChange& change) {
1116 UpdateZoomControls(); 1103 UpdateZoomControls();
1117 } 1104 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698