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() {
////////////////////////////////////////////////////////////////////////////////
// HelpMenuModel
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
// Only used in branded builds.
const base::Feature kIncludeBetaForumMenuItem{
"IncludeBetaForumMenuItem", base::FEATURE_DISABLED_BY_DEFAULT};
class AppMenuModel::HelpMenuModel : public ui::SimpleMenuModel {
class HelpMenuModel : public ui::SimpleMenuModel {
public:
HelpMenuModel(ui::SimpleMenuModel::Delegate* delegate, Browser* browser)
: SimpleMenuModel(delegate) {
......@@ -200,8 +199,6 @@ class AppMenuModel::HelpMenuModel : public ui::SimpleMenuModel {
DISALLOW_COPY_AND_ASSIGN(HelpMenuModel);
};
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
////////////////////////////////////////////////////////////////////////////////
// ToolsMenuModel
......@@ -754,10 +751,10 @@ void AppMenuModel::Build() {
AddSeparator(ui::NORMAL_SEPARATOR);
if (!browser_->profile()->IsOffTheRecord()) {
recent_tabs_sub_menu_model_ =
std::make_unique<RecentTabsSubMenuModel>(provider_, browser_);
sub_menus_.push_back(
std::make_unique<RecentTabsSubMenuModel>(provider_, browser_));
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);
if (!browser_->profile()->IsGuestSession()) {
......@@ -804,9 +801,9 @@ void AppMenuModel::Build() {
}
#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,
tools_menu_model_.get());
sub_menus_.back().get());
AddSeparator(ui::LOWER_SEPARATOR);
CreateCutCopyPasteMenu();
AddSeparator(ui::UPPER_SEPARATOR);
......@@ -816,8 +813,8 @@ void AppMenuModel::Build() {
// 'About' item has been moved to this submenu, it's reinstated here for
// Chromium builds.
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
help_menu_model_ = std::make_unique<HelpMenuModel>(this, browser_);
AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU, help_menu_model_.get());
sub_menus_.push_back(std::make_unique<HelpMenuModel>(this, browser_));
AddSubMenuWithStringId(IDC_HELP_MENU, IDS_HELP_MENU, sub_menus_.back().get());
#else
#if defined(OS_CHROMEOS)
if (base::FeatureList::IsEnabled(chromeos::features::kSplitSettings))
......
......@@ -21,7 +21,6 @@
class AppMenuIconController;
class BookmarkSubMenuModel;
class Browser;
class RecentTabsSubMenuModel;
namespace {
class MockAppMenuModel;
......@@ -180,7 +179,6 @@ class AppMenuModel : public ui::SimpleMenuModel,
void CreateZoomMenu();
private:
class HelpMenuModel;
friend class ::MockAppMenuModel;
bool ShouldShowNewIncognitoWindowMenuItem();
......@@ -213,19 +211,11 @@ class AppMenuModel : public ui::SimpleMenuModel,
// Label of the zoom label in the zoom menu item.
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.
std::unique_ptr<BookmarkSubMenuModel> bookmark_sub_menu_model_;
// Recent Tabs submenu.
std::unique_ptr<RecentTabsSubMenuModel> recent_tabs_sub_menu_model_;
// Other submenus.
std::vector<std::unique_ptr<ui::SimpleMenuModel>> sub_menus_;
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