#include "chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.h"
#include <string>
#include <utility>
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/observer_list.h"
#include "base/scoped_observation.h"
#include "base/task/current_thread.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/side_panel/side_panel_coordinator.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/grit/generated_resources.h"
#include "components/lens/buildflags.h"
#include "components/lens/lens_features.h"
#include "components/renderer_context_menu/views/toolkit_delegate_views.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/render_widget_host.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
#include "third_party/blink/public/common/context_menu_data/context_menu_data.h"
#include "ui/aura/client/screen_position_client.h"
#include "ui/aura/window.h"
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/events/keycodes/keyboard_codes.h"
#include "ui/strings/grit/ui_strings.h"
#include "ui/views/controls/menu/menu_host.h"
#include "ui/views/controls/menu/menu_item_view.h"
#include "ui/views/controls/menu/submenu_view.h"
#include "ui/views/view.h"
#include "ui/views/view_observer.h"
#include "ui/views/widget/widget.h"
WebContents;
class RenderViewContextMenuViews::SubmenuViewObserver
: public views::ViewObserver,
public views::WidgetObserver { … };
RenderViewContextMenuViews::RenderViewContextMenuViews(
content::RenderFrameHost& render_frame_host,
const content::ContextMenuParams& params)
: … { … }
RenderViewContextMenuViews::~RenderViewContextMenuViews() { … }
RenderViewContextMenuViews* RenderViewContextMenuViews::Create(
content::RenderFrameHost& render_frame_host,
const content::ContextMenuParams& params) { … }
void RenderViewContextMenuViews::RunMenuAt(views::Widget* parent,
const gfx::Point& point,
ui::MenuSourceType type) { … }
bool RenderViewContextMenuViews::GetAcceleratorForCommandId(
int command_id,
ui::Accelerator* accel) const { … }
void RenderViewContextMenuViews::ExecuteCommand(int command_id,
int event_flags) { … }
bool RenderViewContextMenuViews::IsCommandIdChecked(int command_id) const { … }
bool RenderViewContextMenuViews::IsCommandIdEnabled(int command_id) const { … }
ui::AcceleratorProvider*
RenderViewContextMenuViews::GetBrowserAcceleratorProvider() const { … }
void RenderViewContextMenuViews::AppendPlatformEditableItems() { … }
void RenderViewContextMenuViews::Show() { … }
views::Widget* RenderViewContextMenuViews::GetTopLevelWidget() { … }
aura::Window* RenderViewContextMenuViews::GetActiveNativeView() { … }
void RenderViewContextMenuViews::OnSubmenuViewBoundsChanged(
const gfx::Rect& new_bounds_in_screen) { … }
void RenderViewContextMenuViews::OnSubmenuClosed() { … }