Commit 8e350094 authored by Nico Weber's avatar Nico Weber Committed by Commit Bot

Reland "Make AppMenuModel keep most submenus in a vector."

This is a reland of 849315dd

Original change's description:
> Make AppMenuModel keep most submenus in a vector.
> 
> They are only needed for ownership, so no need to give them names and concrete
> types. Removes some forward declarations from the header and serendipitously
> happens to remove GOOGLE_CHROME_BUILD from the header as well.
> 
> No intended behavior change.
> 
> Bug: 961769
> Change-Id: Ibaaf3375bd9d367b4cc83b9a8ec3e64193750a69
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1894032
> Commit-Queue: Robert Sesek <rsesek@chromium.org>
> Auto-Submit: Nico Weber <thakis@chromium.org>
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#711431}

Bug: 961769
Change-Id: Ic076b82d89cdcb4dcf97e88a4e04b88e22e7e504
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1893003
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Robert Sesek <rsesek@chromium.org>
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#711512}
parent 4fc1ca59
...@@ -157,13 +157,12 @@ void ZoomMenuModel::Build() { ...@@ -157,13 +157,12 @@ void ZoomMenuModel::Build() {
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// HelpMenuModel // HelpMenuModel
// Only used in branded builds.
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
const base::Feature kIncludeBetaForumMenuItem{ const base::Feature kIncludeBetaForumMenuItem{
"IncludeBetaForumMenuItem", base::FEATURE_DISABLED_BY_DEFAULT}; "IncludeBetaForumMenuItem", base::FEATURE_DISABLED_BY_DEFAULT};
class AppMenuModel::HelpMenuModel : public ui::SimpleMenuModel { class HelpMenuModel : public ui::SimpleMenuModel {
public: public:
HelpMenuModel(ui::SimpleMenuModel::Delegate* delegate, Browser* browser) HelpMenuModel(ui::SimpleMenuModel::Delegate* delegate, Browser* browser)
: SimpleMenuModel(delegate) { : SimpleMenuModel(delegate) {
...@@ -200,8 +199,6 @@ class AppMenuModel::HelpMenuModel : public ui::SimpleMenuModel { ...@@ -200,8 +199,6 @@ class AppMenuModel::HelpMenuModel : public ui::SimpleMenuModel {
DISALLOW_COPY_AND_ASSIGN(HelpMenuModel); DISALLOW_COPY_AND_ASSIGN(HelpMenuModel);
}; };
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// ToolsMenuModel // ToolsMenuModel
...@@ -754,10 +751,10 @@ void AppMenuModel::Build() { ...@@ -754,10 +751,10 @@ void AppMenuModel::Build() {
AddSeparator(ui::NORMAL_SEPARATOR); AddSeparator(ui::NORMAL_SEPARATOR);
if (!browser_->profile()->IsOffTheRecord()) { if (!browser_->profile()->IsOffTheRecord()) {
recent_tabs_sub_menu_model_ = sub_menus_.push_back(
std::make_unique<RecentTabsSubMenuModel>(provider_, browser_); std::make_unique<RecentTabsSubMenuModel>(provider_, browser_));
AddSubMenuWithStringId(IDC_RECENT_TABS_MENU, IDS_HISTORY_MENU, AddSubMenuWithStringId(IDC_RECENT_TABS_MENU, IDS_HISTORY_MENU,
recent_tabs_sub_menu_model_.get()); sub_menus_.back().get());
} }
AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS); AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS);
if (!browser_->profile()->IsGuestSession()) { if (!browser_->profile()->IsGuestSession()) {
...@@ -804,9 +801,9 @@ void AppMenuModel::Build() { ...@@ -804,9 +801,9 @@ void AppMenuModel::Build() {
} }
#endif #endif
tools_menu_model_ = std::make_unique<ToolsMenuModel>(this, browser_); sub_menus_.push_back(std::make_unique<ToolsMenuModel>(this, browser_));
AddSubMenuWithStringId(IDC_MORE_TOOLS_MENU, IDS_MORE_TOOLS_MENU, AddSubMenuWithStringId(IDC_MORE_TOOLS_MENU, IDS_MORE_TOOLS_MENU,
tools_menu_model_.get()); sub_menus_.back().get());
AddSeparator(ui::LOWER_SEPARATOR); AddSeparator(ui::LOWER_SEPARATOR);
CreateCutCopyPasteMenu(); CreateCutCopyPasteMenu();
AddSeparator(ui::UPPER_SEPARATOR); AddSeparator(ui::UPPER_SEPARATOR);
...@@ -816,8 +813,8 @@ void AppMenuModel::Build() { ...@@ -816,8 +813,8 @@ void AppMenuModel::Build() {
// 'About' item has been moved to this submenu, it's reinstated here for // 'About' item has been moved to this submenu, it's reinstated here for
// Chromium builds. // Chromium builds.
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
help_menu_model_ = std::make_unique<HelpMenuModel>(this, browser_); sub_menus_.push_back(std::make_unique<HelpMenuModel>(this, browser_));
AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU, help_menu_model_.get()); AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU, sub_menus_.back().get());
#else #else
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
if (base::FeatureList::IsEnabled(chromeos::features::kSplitSettings)) if (base::FeatureList::IsEnabled(chromeos::features::kSplitSettings))
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
class AppMenuIconController; class AppMenuIconController;
class BookmarkSubMenuModel; class BookmarkSubMenuModel;
class Browser; class Browser;
class RecentTabsSubMenuModel;
namespace { namespace {
class MockAppMenuModel; class MockAppMenuModel;
...@@ -180,7 +179,6 @@ class AppMenuModel : public ui::SimpleMenuModel, ...@@ -180,7 +179,6 @@ class AppMenuModel : public ui::SimpleMenuModel,
void CreateZoomMenu(); void CreateZoomMenu();
private: private:
class HelpMenuModel;
friend class ::MockAppMenuModel; friend class ::MockAppMenuModel;
bool ShouldShowNewIncognitoWindowMenuItem(); bool ShouldShowNewIncognitoWindowMenuItem();
...@@ -213,19 +211,11 @@ class AppMenuModel : public ui::SimpleMenuModel, ...@@ -213,19 +211,11 @@ class AppMenuModel : public ui::SimpleMenuModel,
// Label of the zoom label in the zoom menu item. // Label of the zoom label in the zoom menu item.
base::string16 zoom_label_; base::string16 zoom_label_;
#if defined(GOOGLE_CHROME_BUILD)
// Help menu.
std::unique_ptr<HelpMenuModel> help_menu_model_;
#endif
// Tools menu.
std::unique_ptr<ToolsMenuModel> tools_menu_model_;
// Bookmark submenu. // Bookmark submenu.
std::unique_ptr<BookmarkSubMenuModel> bookmark_sub_menu_model_; std::unique_ptr<BookmarkSubMenuModel> bookmark_sub_menu_model_;
// Recent Tabs submenu. // Other submenus.
std::unique_ptr<RecentTabsSubMenuModel> recent_tabs_sub_menu_model_; std::vector<std::unique_ptr<ui::SimpleMenuModel>> sub_menus_;
ui::AcceleratorProvider* provider_; // weak ui::AcceleratorProvider* provider_; // weak
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment