OLD | NEW |
---|---|
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 12 matching lines...) Expand all Loading... | |
23 #include "chrome/browser/signin/signin_manager_factory.h" | 23 #include "chrome/browser/signin/signin_manager_factory.h" |
24 #include "chrome/browser/signin/signin_ui_util.h" | 24 #include "chrome/browser/signin/signin_ui_util.h" |
25 #include "chrome/browser/task_manager/task_manager.h" | 25 #include "chrome/browser/task_manager/task_manager.h" |
26 #include "chrome/browser/ui/browser.h" | 26 #include "chrome/browser/ui/browser.h" |
27 #include "chrome/browser/ui/browser_commands.h" | 27 #include "chrome/browser/ui/browser_commands.h" |
28 #include "chrome/browser/ui/browser_finder.h" | 28 #include "chrome/browser/ui/browser_finder.h" |
29 #include "chrome/browser/ui/browser_window.h" | 29 #include "chrome/browser/ui/browser_window.h" |
30 #include "chrome/browser/ui/global_error/global_error.h" | 30 #include "chrome/browser/ui/global_error/global_error.h" |
31 #include "chrome/browser/ui/global_error/global_error_service.h" | 31 #include "chrome/browser/ui/global_error/global_error_service.h" |
32 #include "chrome/browser/ui/global_error/global_error_service_factory.h" | 32 #include "chrome/browser/ui/global_error/global_error_service_factory.h" |
33 #include "chrome/browser/ui/send_feedback_experiment.h" | |
33 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 34 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
34 #include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h" | 35 #include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h" |
35 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" | 36 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" |
36 #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" | 37 #include "chrome/browser/ui/toolbar/recent_tabs_sub_menu_model.h" |
37 #include "chrome/browser/upgrade_detector.h" | 38 #include "chrome/browser/upgrade_detector.h" |
38 #include "chrome/common/chrome_paths.h" | 39 #include "chrome/common/chrome_paths.h" |
39 #include "chrome/common/chrome_switches.h" | 40 #include "chrome/common/chrome_switches.h" |
40 #include "chrome/common/pref_names.h" | 41 #include "chrome/common/pref_names.h" |
41 #include "chrome/common/profiling.h" | 42 #include "chrome/common/profiling.h" |
42 #include "content/public/browser/host_zoom_map.h" | 43 #include "content/public/browser/host_zoom_map.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
78 // state. | 79 // state. |
79 string16 GetUpgradeDialogMenuItemName() { | 80 string16 GetUpgradeDialogMenuItemName() { |
80 if (UpgradeDetector::GetInstance()->is_outdated_install()) { | 81 if (UpgradeDetector::GetInstance()->is_outdated_install()) { |
81 return l10n_util::GetStringFUTF16( | 82 return l10n_util::GetStringFUTF16( |
82 IDS_UPGRADE_BUBBLE_MENU_ITEM, | 83 IDS_UPGRADE_BUBBLE_MENU_ITEM, |
83 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); | 84 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); |
84 } else { | 85 } else { |
85 return l10n_util::GetStringUTF16(IDS_UPDATE_NOW); | 86 return l10n_util::GetStringUTF16(IDS_UPDATE_NOW); |
86 } | 87 } |
87 } | 88 } |
89 | |
88 } // namespace | 90 } // namespace |
89 | 91 |
90 //////////////////////////////////////////////////////////////////////////////// | 92 //////////////////////////////////////////////////////////////////////////////// |
91 // EncodingMenuModel | 93 // EncodingMenuModel |
92 | 94 |
93 EncodingMenuModel::EncodingMenuModel(Browser* browser) | 95 EncodingMenuModel::EncodingMenuModel(Browser* browser) |
94 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)), | 96 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)), |
95 browser_(browser) { | 97 browser_(browser) { |
96 Build(); | 98 Build(); |
97 } | 99 } |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
195 | 197 |
196 if (chrome::CanOpenTaskManager()) | 198 if (chrome::CanOpenTaskManager()) |
197 AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER); | 199 AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER); |
198 | 200 |
199 AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); | 201 AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA); |
200 | 202 |
201 AddSeparator(ui::NORMAL_SEPARATOR); | 203 AddSeparator(ui::NORMAL_SEPARATOR); |
202 | 204 |
203 #if !defined(OS_CHROMEOS) | 205 #if !defined(OS_CHROMEOS) |
204 // Show IDC_FEEDBACK in "Tools" menu for non-ChromeOS platforms. | 206 // Show IDC_FEEDBACK in "Tools" menu for non-ChromeOS platforms. |
205 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); | 207 if (!chrome::send_feedback_experiment::UseAlternateLocation()) { |
206 AddSeparator(ui::NORMAL_SEPARATOR); | 208 AddItemWithStringId(IDC_FEEDBACK, |
209 chrome::send_feedback_experiment::UseAlternateText() ? | |
210 IDS_FEEDBACK_ALT : IDS_FEEDBACK); | |
sky
2013/03/15 23:23:42
indent 4 (same on 217)
Harry McCleave
2013/03/19 03:11:32
Done.
| |
211 AddSeparator(ui::NORMAL_SEPARATOR); | |
212 } | |
213 #else | |
214 if (chrome::send_feedback_experiment::UseAlternateLocation()) { | |
215 AddItemWithStringId(IDC_FEEDBACK, | |
216 chrome::send_feedback_experiment::UseAlternateText() ? | |
217 IDS_FEEDBACK_ALT : IDS_FEEDBACK); | |
218 AddSeparator(ui::NORMAL_SEPARATOR); | |
219 } | |
207 #endif | 220 #endif |
208 | 221 |
209 encoding_menu_model_.reset(new EncodingMenuModel(browser)); | 222 encoding_menu_model_.reset(new EncodingMenuModel(browser)); |
210 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, | 223 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, |
211 encoding_menu_model_.get()); | 224 encoding_menu_model_.get()); |
212 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE); | 225 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE); |
213 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); | 226 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); |
214 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE); | 227 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE); |
215 | 228 |
216 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC) | 229 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC) |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
603 if (!is_new_menu) { | 616 if (!is_new_menu) { |
604 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, IDS_HELP_PAGE); | 617 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, IDS_HELP_PAGE); |
605 | 618 |
606 if (browser_defaults::kShowHelpMenuItemIcon) { | 619 if (browser_defaults::kShowHelpMenuItemIcon) { |
607 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 620 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
608 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), | 621 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), |
609 rb.GetNativeImageNamed(IDR_HELP_MENU)); | 622 rb.GetNativeImageNamed(IDR_HELP_MENU)); |
610 } | 623 } |
611 } | 624 } |
612 | 625 |
613 if (browser_defaults::kShowFeedbackMenuItem) | 626 if (browser_defaults::kShowFeedbackMenuItem && |
614 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); | 627 !chrome::send_feedback_experiment::UseAlternateLocation()) { |
628 AddItemWithStringId(IDC_FEEDBACK, | |
629 chrome::send_feedback_experiment::UseAlternateText() ? | |
630 IDS_FEEDBACK_ALT : IDS_FEEDBACK); | |
631 } | |
615 | 632 |
616 AddGlobalErrorMenuItems(); | 633 AddGlobalErrorMenuItems(); |
617 | 634 |
618 if (is_new_menu) { | 635 if (is_new_menu) { |
619 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_MORE_TOOLS_MENU, | 636 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_MORE_TOOLS_MENU, |
620 tools_menu_model_.get()); | 637 tools_menu_model_.get()); |
621 } | 638 } |
622 | 639 |
623 bool show_exit_menu = browser_defaults::kShowExitMenuItem; | 640 if (browser_defaults::kShowExitMenuItem) |
624 #if defined(OS_WIN) && defined(USE_AURA) | 641 AddSeparator(ui::NORMAL_SEPARATOR); |
625 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) | 642 |
626 show_exit_menu = false; | 643 #if !defined(OS_CHROMEOS) |
644 // For Send Feedback Link experiment (crbug.com/169339). | |
645 if (chrome::send_feedback_experiment::UseAlternateLocation()) { | |
646 AddItemWithStringId(IDC_FEEDBACK, | |
647 chrome::send_feedback_experiment::UseAlternateText() ? | |
sky
2013/03/15 23:23:42
You have this text four times, how about a GetAlte
Harry McCleave
2013/03/19 03:11:32
Done.
| |
648 IDS_FEEDBACK_ALT : IDS_FEEDBACK); | |
649 AddSeparator(ui::NORMAL_SEPARATOR); | |
650 } | |
627 #endif | 651 #endif |
628 if (show_exit_menu) { | 652 |
629 AddSeparator(ui::NORMAL_SEPARATOR); | 653 if (browser_defaults::kShowExitMenuItem) |
sky
2013/03/15 23:23:42
Doesn't this miss the logic on 625 old?
Harry McCleave
2013/03/19 03:11:32
Ah re-base my old nemesis (done).
| |
630 AddItemWithStringId(IDC_EXIT, IDS_EXIT); | 654 AddItemWithStringId(IDC_EXIT, IDS_EXIT); |
631 } | |
632 | 655 |
633 if (is_new_menu && supports_new_separators && | 656 if (is_new_menu && supports_new_separators && |
634 !ui::NativeTheme::IsNewMenuStyleEnabled()) { | 657 !ui::NativeTheme::IsNewMenuStyleEnabled()) { |
635 AddSeparator(ui::SPACING_SEPARATOR); | 658 AddSeparator(ui::SPACING_SEPARATOR); |
636 } | 659 } |
637 } | 660 } |
638 | 661 |
639 void WrenchMenuModel::AddGlobalErrorMenuItems() { | 662 void WrenchMenuModel::AddGlobalErrorMenuItems() { |
640 // TODO(sail): Currently we only build the wrench menu once per browser | 663 // TODO(sail): Currently we only build the wrench menu once per browser |
641 // window. This means that if a new error is added after the menu is built | 664 // window. This means that if a new error is added after the menu is built |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
724 &enable_increment, &enable_decrement); | 747 &enable_increment, &enable_decrement); |
725 } | 748 } |
726 zoom_label_ = l10n_util::GetStringFUTF16( | 749 zoom_label_ = l10n_util::GetStringFUTF16( |
727 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 750 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
728 } | 751 } |
729 | 752 |
730 void WrenchMenuModel::OnZoomLevelChanged( | 753 void WrenchMenuModel::OnZoomLevelChanged( |
731 const content::HostZoomMap::ZoomLevelChange& change) { | 754 const content::HostZoomMap::ZoomLevelChange& change) { |
732 UpdateZoomControls(); | 755 UpdateZoomControls(); |
733 } | 756 } |
OLD | NEW |