#include "libcef_dll/ctocpp/context_menu_handler_ctocpp.h"
#include "libcef_dll/cpptoc/browser_cpptoc.h"
#include "libcef_dll/cpptoc/context_menu_params_cpptoc.h"
#include "libcef_dll/cpptoc/frame_cpptoc.h"
#include "libcef_dll/cpptoc/menu_model_cpptoc.h"
#include "libcef_dll/cpptoc/run_context_menu_callback_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
void CefContextMenuHandlerCToCpp::OnBeforeContextMenu(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
CefRefPtr<CefMenuModel> model) {
shutdown_checker::AssertNotShutdown();
cef_context_menu_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_before_context_menu))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
DCHECK(params.get());
if (!params.get())
return;
DCHECK(model.get());
if (!model.get())
return;
_struct->on_before_context_menu(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame),
CefContextMenuParamsCppToC::Wrap(params),
CefMenuModelCppToC::Wrap(model));
}
NO_SANITIZE("cfi-icall")
bool CefContextMenuHandlerCToCpp::RunContextMenu(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
CefRefPtr<CefMenuModel> model,
CefRefPtr<CefRunContextMenuCallback> callback) {
shutdown_checker::AssertNotShutdown();
cef_context_menu_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, run_context_menu))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
DCHECK(frame.get());
if (!frame.get())
return false;
DCHECK(params.get());
if (!params.get())
return false;
DCHECK(model.get());
if (!model.get())
return false;
DCHECK(callback.get());
if (!callback.get())
return false;
int _retval = _struct->run_context_menu(
_struct, CefBrowserCppToC::Wrap(browser), CefFrameCppToC::Wrap(frame),
CefContextMenuParamsCppToC::Wrap(params), CefMenuModelCppToC::Wrap(model),
CefRunContextMenuCallbackCppToC::Wrap(callback));
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefContextMenuHandlerCToCpp::OnContextMenuCommand(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefContextMenuParams> params,
int command_id,
EventFlags event_flags) {
shutdown_checker::AssertNotShutdown();
cef_context_menu_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_context_menu_command))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
DCHECK(frame.get());
if (!frame.get())
return false;
DCHECK(params.get());
if (!params.get())
return false;
int _retval = _struct->on_context_menu_command(
_struct, CefBrowserCppToC::Wrap(browser), CefFrameCppToC::Wrap(frame),
CefContextMenuParamsCppToC::Wrap(params), command_id, event_flags);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
void CefContextMenuHandlerCToCpp::OnContextMenuDismissed(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame) {
shutdown_checker::AssertNotShutdown();
cef_context_menu_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_context_menu_dismissed))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
_struct->on_context_menu_dismissed(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame));
}
CefContextMenuHandlerCToCpp::CefContextMenuHandlerCToCpp() {}
CefContextMenuHandlerCToCpp::~CefContextMenuHandlerCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_context_menu_handler_t* CefCToCppRefCounted<
CefContextMenuHandlerCToCpp,
CefContextMenuHandler,
cef_context_menu_handler_t>::UnwrapDerived(CefWrapperType type,
CefContextMenuHandler* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefContextMenuHandlerCToCpp,
CefContextMenuHandler,
cef_context_menu_handler_t>::kWrapperType =
WT_CONTEXT_MENU_HANDLER;