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::UseAlternateSendFeedbackLocation()) { |
206 AddSeparator(ui::NORMAL_SEPARATOR); | 208 AddItemWithStringId(IDC_FEEDBACK, |
| 209 chrome::GetSendFeedbackMenuLabelID()); |
| 210 AddSeparator(ui::NORMAL_SEPARATOR); |
| 211 } |
| 212 #else |
| 213 if (chrome::UseAlternateSendFeedbackLocation()) { |
| 214 AddItemWithStringId(IDC_FEEDBACK, |
| 215 chrome::GetSendFeedbackMenuLabelID()); |
| 216 AddSeparator(ui::NORMAL_SEPARATOR); |
| 217 } |
207 #endif | 218 #endif |
208 | 219 |
209 encoding_menu_model_.reset(new EncodingMenuModel(browser)); | 220 encoding_menu_model_.reset(new EncodingMenuModel(browser)); |
210 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, | 221 AddSubMenuWithStringId(IDC_ENCODING_MENU, IDS_ENCODING_MENU, |
211 encoding_menu_model_.get()); | 222 encoding_menu_model_.get()); |
212 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE); | 223 AddItemWithStringId(IDC_VIEW_SOURCE, IDS_VIEW_SOURCE); |
213 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); | 224 AddItemWithStringId(IDC_DEV_TOOLS, IDS_DEV_TOOLS); |
214 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE); | 225 AddItemWithStringId(IDC_DEV_TOOLS_CONSOLE, IDS_DEV_TOOLS_CONSOLE); |
215 | 226 |
216 #if defined(ENABLE_PROFILING) && !defined(NO_TCMALLOC) | 227 #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) { | 614 if (!is_new_menu) { |
604 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, IDS_HELP_PAGE); | 615 AddItemWithStringId(IDC_HELP_PAGE_VIA_MENU, IDS_HELP_PAGE); |
605 | 616 |
606 if (browser_defaults::kShowHelpMenuItemIcon) { | 617 if (browser_defaults::kShowHelpMenuItemIcon) { |
607 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 618 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
608 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), | 619 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE_VIA_MENU), |
609 rb.GetNativeImageNamed(IDR_HELP_MENU)); | 620 rb.GetNativeImageNamed(IDR_HELP_MENU)); |
610 } | 621 } |
611 } | 622 } |
612 | 623 |
613 if (browser_defaults::kShowFeedbackMenuItem) | 624 if (browser_defaults::kShowFeedbackMenuItem && |
614 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); | 625 !chrome::UseAlternateSendFeedbackLocation()) { |
| 626 AddItemWithStringId(IDC_FEEDBACK, |
| 627 chrome::GetSendFeedbackMenuLabelID()); |
| 628 } |
615 | 629 |
616 AddGlobalErrorMenuItems(); | 630 AddGlobalErrorMenuItems(); |
617 | 631 |
618 if (is_new_menu) { | 632 if (is_new_menu) { |
619 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_MORE_TOOLS_MENU, | 633 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_MORE_TOOLS_MENU, |
620 tools_menu_model_.get()); | 634 tools_menu_model_.get()); |
621 } | 635 } |
622 | 636 |
623 bool show_exit_menu = browser_defaults::kShowExitMenuItem; | 637 bool show_exit_menu = browser_defaults::kShowExitMenuItem; |
624 #if defined(OS_WIN) && defined(USE_AURA) | 638 #if defined(OS_WIN) && defined(USE_AURA) |
625 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) | 639 if (browser_->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH) |
626 show_exit_menu = false; | 640 show_exit_menu = false; |
627 #endif | 641 #endif |
628 if (show_exit_menu) { | 642 if (show_exit_menu) |
629 AddSeparator(ui::NORMAL_SEPARATOR); | 643 AddSeparator(ui::NORMAL_SEPARATOR); |
| 644 |
| 645 #if !defined(OS_CHROMEOS) |
| 646 // For Send Feedback Link experiment (crbug.com/169339). |
| 647 if (chrome::UseAlternateSendFeedbackLocation()) { |
| 648 AddItemWithStringId(IDC_FEEDBACK, |
| 649 chrome::GetSendFeedbackMenuLabelID()); |
| 650 AddSeparator(ui::NORMAL_SEPARATOR); |
| 651 } |
| 652 #endif |
| 653 |
| 654 if (show_exit_menu) |
630 AddItemWithStringId(IDC_EXIT, IDS_EXIT); | 655 AddItemWithStringId(IDC_EXIT, IDS_EXIT); |
631 } | |
632 | 656 |
633 if (is_new_menu && supports_new_separators && | 657 if (is_new_menu && supports_new_separators && |
634 !ui::NativeTheme::IsNewMenuStyleEnabled()) { | 658 !ui::NativeTheme::IsNewMenuStyleEnabled()) { |
635 AddSeparator(ui::SPACING_SEPARATOR); | 659 AddSeparator(ui::SPACING_SEPARATOR); |
636 } | 660 } |
637 } | 661 } |
638 | 662 |
639 void WrenchMenuModel::AddGlobalErrorMenuItems() { | 663 void WrenchMenuModel::AddGlobalErrorMenuItems() { |
640 // TODO(sail): Currently we only build the wrench menu once per browser | 664 // 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 | 665 // 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); | 748 &enable_increment, &enable_decrement); |
725 } | 749 } |
726 zoom_label_ = l10n_util::GetStringFUTF16( | 750 zoom_label_ = l10n_util::GetStringFUTF16( |
727 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 751 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
728 } | 752 } |
729 | 753 |
730 void WrenchMenuModel::OnZoomLevelChanged( | 754 void WrenchMenuModel::OnZoomLevelChanged( |
731 const content::HostZoomMap::ZoomLevelChange& change) { | 755 const content::HostZoomMap::ZoomLevelChange& change) { |
732 UpdateZoomControls(); | 756 UpdateZoomControls(); |
733 } | 757 } |
OLD | NEW |