| 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 |