[cr148] BookmarkContextMenuController added can_paste
This requires adding extra atgs on our own overrides of these classes. Chromium changes: https://chromium.googlesource.com/chromium/src/+/bca4b0a240b3c641d10a1518b232bc432c9f7472 commit bca4b0a240b3c641d10a1518b232bc432c9f7472 Author: Tom Anderson <thomasanderson@chromium.org> Date: Mon Mar 9 14:47:10 2026 -0700 [Reland] Fix BookmarkContextMenu paste menu enabled state BookmarkContextMenu::BookmarkContextMenu indirectly called BookmarkContextMenuController::IsCommandIdEnabled for IDC_PASTE. This breaks since can_paste_ is only set when showing the menu. This CL fixes the issue by passing can_paste to BookmarkContextMenu(). R=avi Bug: 40398800 Change-Id: I130da5d5fca333508bbde8e0b02c57f03adb5e78 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7640749 Reviewed-by: David Yeung <dayeung@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1596622}
This commit is contained in:
@@ -35,13 +35,15 @@ BraveBookmarkContextMenuController::BraveBookmarkContextMenuController(
|
||||
Profile* profile,
|
||||
BookmarkLaunchLocation opened_from,
|
||||
const std::vector<
|
||||
raw_ptr<const bookmarks::BookmarkNode, VectorExperimental>>& selection)
|
||||
raw_ptr<const bookmarks::BookmarkNode, VectorExperimental>>& selection,
|
||||
bool can_paste)
|
||||
: BookmarkContextMenuController(parent_window,
|
||||
delegate,
|
||||
browser,
|
||||
profile,
|
||||
opened_from,
|
||||
selection),
|
||||
selection,
|
||||
can_paste),
|
||||
browser_(browser),
|
||||
prefs_(browser_ ? browser_->profile()->GetPrefs() : nullptr) {
|
||||
if (!browser_) {
|
||||
|
||||
@@ -41,7 +41,8 @@ class BraveBookmarkContextMenuController
|
||||
Profile* profile,
|
||||
BookmarkLaunchLocation opened_from,
|
||||
const std::vector<raw_ptr<const bookmarks::BookmarkNode,
|
||||
VectorExperimental>>& selection);
|
||||
VectorExperimental>>& selection,
|
||||
bool can_paste);
|
||||
|
||||
BraveBookmarkContextMenuController(
|
||||
const BraveBookmarkContextMenuController&) = delete;
|
||||
|
||||
@@ -79,7 +79,7 @@ TEST_F(BraveBookmarkContextMenuControllerTest,
|
||||
BookmarkContextMenuController controller(
|
||||
gfx::NativeWindow(), nullptr, nullptr, profile_.get(),
|
||||
BookmarkLaunchLocation::kSidePanelContextMenu,
|
||||
{model_->bookmark_bar_node()});
|
||||
{model_->bookmark_bar_node()}, /*can_paste=*/false);
|
||||
|
||||
// Show apps command is not present by default.
|
||||
sync_preferences::TestingPrefServiceSyncable* prefs =
|
||||
@@ -116,7 +116,8 @@ TEST_F(BraveBookmarkContextMenuControllerTest,
|
||||
TEST_F(BraveBookmarkContextMenuControllerTest, AddBraveBookmarksSubmenu) {
|
||||
BraveBookmarkContextMenuController controller(
|
||||
gfx::NativeWindow(), nullptr, nullptr, profile_.get(),
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {model_->bookmark_bar_node()});
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {model_->bookmark_bar_node()},
|
||||
/*can_paste=*/false);
|
||||
EXPECT_FALSE(controller.menu_model()
|
||||
->GetIndexOfCommandId(IDC_BOOKMARK_BAR_ALWAYS_SHOW)
|
||||
.has_value());
|
||||
@@ -191,7 +192,8 @@ TEST_F(BraveBookmarkContextMenuControllerTest,
|
||||
model_->bookmark_bar_node(), 0, u"t", GURL("https://example.com"));
|
||||
BraveBookmarkContextMenuController controller(
|
||||
gfx::NativeWindow(), nullptr, nullptr, profile_.get(),
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {url_node});
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {url_node},
|
||||
/*can_paste=*/false);
|
||||
|
||||
EXPECT_FALSE(
|
||||
controller.menu_model()->GetIndexOfCommandId(IDC_OPEN_IN_CONTAINER));
|
||||
@@ -215,7 +217,8 @@ TEST_F(BraveBookmarkContextMenuContainersTest,
|
||||
model_->bookmark_bar_node(), 0, u"t", GURL("https://example.com"));
|
||||
BraveBookmarkContextMenuController controller(
|
||||
gfx::NativeWindow(), nullptr, nullptr, profile_.get(),
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {url_node});
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {url_node},
|
||||
/*can_paste=*/false);
|
||||
|
||||
ASSERT_TRUE(
|
||||
controller.menu_model()->GetIndexOfCommandId(IDC_OPEN_IN_CONTAINER));
|
||||
@@ -238,7 +241,7 @@ TEST_F(BraveBookmarkContextMenuContainersTest,
|
||||
model_->AddFolder(model_->bookmark_bar_node(), 0, u"f");
|
||||
BraveBookmarkContextMenuController controller(
|
||||
gfx::NativeWindow(), nullptr, nullptr, profile_.get(),
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {folder});
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {folder}, /*can_paste=*/false);
|
||||
|
||||
EXPECT_FALSE(
|
||||
controller.menu_model()->GetIndexOfCommandId(IDC_OPEN_IN_CONTAINER));
|
||||
@@ -253,7 +256,7 @@ TEST_F(BraveBookmarkContextMenuContainersTest,
|
||||
u"b", GURL("https://b.example/"));
|
||||
BraveBookmarkContextMenuController controller(
|
||||
gfx::NativeWindow(), nullptr, nullptr, profile_.get(),
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {a, b});
|
||||
BookmarkLaunchLocation::kSidePanelFolder, {a, b}, /*can_paste=*/false);
|
||||
|
||||
EXPECT_FALSE(
|
||||
controller.menu_model()->GetIndexOfCommandId(IDC_OPEN_IN_CONTAINER));
|
||||
|
||||
@@ -27,13 +27,15 @@ BraveBookmarkContextMenu::BraveBookmarkContextMenu(
|
||||
BookmarkLaunchLocation opened_from,
|
||||
const std::vector<
|
||||
raw_ptr<const bookmarks::BookmarkNode, VectorExperimental>>& selection,
|
||||
bool close_on_remove)
|
||||
bool close_on_remove,
|
||||
bool can_paste)
|
||||
: BookmarkContextMenu(parent_widget,
|
||||
browser,
|
||||
profile,
|
||||
opened_from,
|
||||
selection,
|
||||
close_on_remove) {
|
||||
close_on_remove,
|
||||
can_paste) {
|
||||
auto* submenu = menu()->GetMenuItemByID(IDC_BRAVE_BOOKMARK_BAR_SUBMENU);
|
||||
DCHECK(submenu);
|
||||
auto* submenu_model = controller_->GetBookmarkSubmenuModel();
|
||||
|
||||
@@ -21,7 +21,8 @@ class BraveBookmarkContextMenu : public BookmarkContextMenu {
|
||||
BookmarkLaunchLocation opened_from,
|
||||
const std::vector<raw_ptr<const bookmarks::BookmarkNode,
|
||||
VectorExperimental>>& selection,
|
||||
bool close_on_remove);
|
||||
bool close_on_remove,
|
||||
bool can_paste);
|
||||
|
||||
BraveBookmarkContextMenu(const BraveBookmarkContextMenu&) = delete;
|
||||
BraveBookmarkContextMenu& operator=(const BraveBookmarkContextMenu&) = delete;
|
||||
|
||||
@@ -66,7 +66,7 @@ class BraveBookmarkContextMenuTest : public testing::Test {
|
||||
model_->bookmark_bar_node()};
|
||||
auto menu = std::make_unique<BraveBookmarkContextMenu>(
|
||||
nullptr, nullptr, profile_.get(), BookmarkLaunchLocation::kNone, nodes,
|
||||
false);
|
||||
false, /*can_paste=*/false);
|
||||
menu->GetControllerForTesting()->SetPrefsForTesting(prefs_.get());
|
||||
return menu;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user