| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_WEB_CONTENT_UI_CONTENT_CONTEXT_MENU_CONTROLLER_H_ |
| #define IOS_WEB_CONTENT_UI_CONTENT_CONTEXT_MENU_CONTROLLER_H_ |
| |
| #import <memory> |
| |
| #import "base/memory/ref_counted.h" |
| |
| namespace content { |
| struct ContextMenuParams; |
| class RenderFrameHost; |
| } // namespace content |
| |
| class IOSWebContentsUIButtonHolder; |
| |
| class ContentContextMenuController |
| : public base::RefCountedThreadSafe<ContentContextMenuController> { |
| public: |
| ContentContextMenuController(); |
| |
| ContentContextMenuController(const ContentContextMenuController&) = delete; |
| ContentContextMenuController& operator=(const ContentContextMenuController&) = |
| delete; |
| |
| void ShowContextMenu(content::RenderFrameHost& render_frame_host, |
| const content::ContextMenuParams& params); |
| |
| private: |
| friend class base::RefCountedThreadSafe<ContentContextMenuController>; |
| virtual ~ContentContextMenuController(); |
| |
| // A hidden button used for displaying context menus. |
| std::unique_ptr<IOSWebContentsUIButtonHolder> hidden_button_; |
| }; |
| |
| #endif // IOS_WEB_CONTENT_UI_CONTENT_CONTEXT_MENU_CONTROLLER_H_ |