diff --git a/app/brave_generated_resources.grd b/app/brave_generated_resources.grd index 89bd8f39079..8f07c1780b8 100644 --- a/app/brave_generated_resources.grd +++ b/app/brave_generated_resources.grd @@ -950,6 +950,9 @@ Or change later at $2brave://settings/ext Open in container + + Open link in container + Manage containers @@ -985,6 +988,9 @@ Or change later at $2brave://settings/ext Open in Container + + Open Link in Container + Manage Containers diff --git a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc index 8c95b677f86..02e00c4d25d 100644 --- a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc @@ -8,6 +8,7 @@ #include #include "base/check.h" +#include "base/check_is_test.h" #include "base/containers/fixed_flat_map.h" #include "base/containers/fixed_flat_set.h" #include "base/feature_list.h" @@ -636,12 +637,26 @@ void RenderViewContextMenu::BuildContainersMenu() { return; } + std::optional first_separator_index; + for (size_t i = 0; i < menu_model_.GetItemCount(); ++i) { + if (menu_model_.GetTypeAt(i) == ui::MenuModel::TYPE_SEPARATOR) { + first_separator_index = i; + break; + } + } + containers_submenu_model_ = std::make_unique(*this, *service); - menu_model_.AddSubMenuWithStringId(IDC_OPEN_IN_CONTAINER, - IDS_CXMENU_OPEN_IN_CONTAINER, - containers_submenu_model_.get()); + if (first_separator_index.has_value()) { + menu_model_.InsertSubMenuWithStringIdAt( + *first_separator_index, IDC_OPEN_IN_CONTAINER, + IDS_CXMENU_OPEN_LINK_IN_CONTAINER, containers_submenu_model_.get()); + } else { + menu_model_.AddSubMenuWithStringId(IDC_OPEN_IN_CONTAINER, + IDS_CXMENU_OPEN_LINK_IN_CONTAINER, + containers_submenu_model_.get()); + } } Browser* RenderViewContextMenu::GetBrowserToOpenSettings() { @@ -652,7 +667,10 @@ float RenderViewContextMenu::GetScaleFactor() { auto* render_frame_host = GetRenderFrameHost(); CHECK(render_frame_host); auto* render_view = render_frame_host->GetView(); - CHECK(render_view); + if (!render_view) { + CHECK_IS_TEST(); + return 1.0f; + } return render_view->GetDeviceScaleFactor(); } #endif // BUILDFLAG(ENABLE_CONTAINERS)