#include "libcef_dll/ctocpp/jsdialog_handler_ctocpp.h"
#include "libcef_dll/cpptoc/browser_cpptoc.h"
#include "libcef_dll/cpptoc/jsdialog_callback_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
bool CefJSDialogHandlerCToCpp::OnJSDialog(
CefRefPtr<CefBrowser> browser,
const CefString& origin_url,
JSDialogType dialog_type,
const CefString& message_text,
const CefString& default_prompt_text,
CefRefPtr<CefJSDialogCallback> callback,
bool& suppress_message) {
shutdown_checker::AssertNotShutdown();
cef_jsdialog_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_jsdialog))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
DCHECK(callback.get());
if (!callback.get())
return false;
int suppress_messageInt = suppress_message;
int _retval = _struct->on_jsdialog(
_struct, CefBrowserCppToC::Wrap(browser), origin_url.GetStruct(),
dialog_type, message_text.GetStruct(), default_prompt_text.GetStruct(),
CefJSDialogCallbackCppToC::Wrap(callback), &suppress_messageInt);
suppress_message = suppress_messageInt ? true : false;
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefJSDialogHandlerCToCpp::OnBeforeUnloadDialog(
CefRefPtr<CefBrowser> browser,
const CefString& message_text,
bool is_reload,
CefRefPtr<CefJSDialogCallback> callback) {
shutdown_checker::AssertNotShutdown();
cef_jsdialog_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_before_unload_dialog))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
DCHECK(callback.get());
if (!callback.get())
return false;
int _retval = _struct->on_before_unload_dialog(
_struct, CefBrowserCppToC::Wrap(browser), message_text.GetStruct(),
is_reload, CefJSDialogCallbackCppToC::Wrap(callback));
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
void CefJSDialogHandlerCToCpp::OnResetDialogState(
CefRefPtr<CefBrowser> browser) {
shutdown_checker::AssertNotShutdown();
cef_jsdialog_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_reset_dialog_state))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_reset_dialog_state(_struct, CefBrowserCppToC::Wrap(browser));
}
NO_SANITIZE("cfi-icall")
void CefJSDialogHandlerCToCpp::OnDialogClosed(CefRefPtr<CefBrowser> browser) {
shutdown_checker::AssertNotShutdown();
cef_jsdialog_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_dialog_closed))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_dialog_closed(_struct, CefBrowserCppToC::Wrap(browser));
}
CefJSDialogHandlerCToCpp::CefJSDialogHandlerCToCpp() {}
CefJSDialogHandlerCToCpp::~CefJSDialogHandlerCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_jsdialog_handler_t* CefCToCppRefCounted<
CefJSDialogHandlerCToCpp,
CefJSDialogHandler,
cef_jsdialog_handler_t>::UnwrapDerived(CefWrapperType type,
CefJSDialogHandler* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefJSDialogHandlerCToCpp,
CefJSDialogHandler,
cef_jsdialog_handler_t>::kWrapperType =
WT_JSDIALOG_HANDLER;