910e62b5创建于 1月15日历史提交
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome_selection_dropdown_menu_delegate.h"

#include "content/public/browser/context_menu_params.h"
#include "content/public/browser/render_frame_host.h"
#include "extensions/buildflags/buildflags.h"

#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
#include "chrome/browser/extensions/extension_menu_model_android.h"
#endif  // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)

namespace android {

ChromeSelectionDropdownMenuDelegate::ChromeSelectionDropdownMenuDelegate() =
    default;

ChromeSelectionDropdownMenuDelegate::~ChromeSelectionDropdownMenuDelegate() =
    default;

// SelectionPopupDelegate implementation.
std::unique_ptr<ui::MenuModel>
ChromeSelectionDropdownMenuDelegate::GetSelectionPopupExtraItems(
    content::RenderFrameHost& render_frame_host,
    const content::ContextMenuParams& params) {
#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
  std::unique_ptr<extensions::ExtensionMenuModel> extension_menu_model =
      std::make_unique<extensions::ExtensionMenuModel>(render_frame_host,
                                                       params);
  extension_menu_model->PopulateModel();
  return std::move(extension_menu_model);
#else
  return nullptr;
#endif  // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
}
}  // namespace android