#include "libcef_dll/ctocpp/display_handler_ctocpp.h"
#include "libcef_dll/cpptoc/browser_cpptoc.h"
#include "libcef_dll/cpptoc/frame_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
#include "libcef_dll/transfer_util.h"
NO_SANITIZE("cfi-icall")
void CefDisplayHandlerCToCpp::OnAddressChange(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
const CefString& url) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_address_change))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
DCHECK(!url.empty());
if (url.empty())
return;
_struct->on_address_change(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame), url.GetStruct());
}
NO_SANITIZE("cfi-icall")
void CefDisplayHandlerCToCpp::OnTitleChange(CefRefPtr<CefBrowser> browser,
const CefString& title) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_title_change))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_title_change(_struct, CefBrowserCppToC::Wrap(browser),
title.GetStruct());
}
NO_SANITIZE("cfi-icall")
void CefDisplayHandlerCToCpp::OnFaviconURLChange(
CefRefPtr<CefBrowser> browser,
const std::vector<CefString>& icon_urls) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_favicon_urlchange))
return;
DCHECK(browser.get());
if (!browser.get())
return;
cef_string_list_t icon_urlsList = cef_string_list_alloc();
DCHECK(icon_urlsList);
if (icon_urlsList)
transfer_string_list_contents(icon_urls, icon_urlsList);
_struct->on_favicon_urlchange(_struct, CefBrowserCppToC::Wrap(browser),
icon_urlsList);
if (icon_urlsList)
cef_string_list_free(icon_urlsList);
}
NO_SANITIZE("cfi-icall")
void CefDisplayHandlerCToCpp::OnFullscreenModeChange(
CefRefPtr<CefBrowser> browser,
bool fullscreen) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_fullscreen_mode_change))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_fullscreen_mode_change(_struct, CefBrowserCppToC::Wrap(browser),
fullscreen);
}
NO_SANITIZE("cfi-icall")
bool CefDisplayHandlerCToCpp::OnTooltip(CefRefPtr<CefBrowser> browser,
CefString& text) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_tooltip))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
int _retval = _struct->on_tooltip(_struct, CefBrowserCppToC::Wrap(browser),
text.GetWritableStruct());
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
void CefDisplayHandlerCToCpp::OnStatusMessage(CefRefPtr<CefBrowser> browser,
const CefString& value) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_status_message))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_status_message(_struct, CefBrowserCppToC::Wrap(browser),
value.GetStruct());
}
NO_SANITIZE("cfi-icall")
bool CefDisplayHandlerCToCpp::OnConsoleMessage(CefRefPtr<CefBrowser> browser,
cef_log_severity_t level,
const CefString& message,
const CefString& source,
int line) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_console_message))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
int _retval = _struct->on_console_message(
_struct, CefBrowserCppToC::Wrap(browser), level, message.GetStruct(),
source.GetStruct(), line);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefDisplayHandlerCToCpp::OnAutoResize(CefRefPtr<CefBrowser> browser,
const CefSize& new_size) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_auto_resize))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
int _retval = _struct->on_auto_resize(
_struct, CefBrowserCppToC::Wrap(browser), &new_size);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
void CefDisplayHandlerCToCpp::OnLoadingProgressChange(
CefRefPtr<CefBrowser> browser,
double progress) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_loading_progress_change))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_loading_progress_change(_struct, CefBrowserCppToC::Wrap(browser),
progress);
}
NO_SANITIZE("cfi-icall")
bool CefDisplayHandlerCToCpp::OnCursorChange(
CefRefPtr<CefBrowser> browser,
CefCursorHandle cursor,
cef_cursor_type_t type,
const CefCursorInfo& custom_cursor_info) {
shutdown_checker::AssertNotShutdown();
cef_display_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_cursor_change))
return false;
DCHECK(browser.get());
if (!browser.get())
return false;
int _retval =
_struct->on_cursor_change(_struct, CefBrowserCppToC::Wrap(browser),
cursor, type, &custom_cursor_info);
return _retval ? true : false;
}
CefDisplayHandlerCToCpp::CefDisplayHandlerCToCpp() {}
CefDisplayHandlerCToCpp::~CefDisplayHandlerCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_display_handler_t* CefCToCppRefCounted<
CefDisplayHandlerCToCpp,
CefDisplayHandler,
cef_display_handler_t>::UnwrapDerived(CefWrapperType type,
CefDisplayHandler* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefDisplayHandlerCToCpp,
CefDisplayHandler,
cef_display_handler_t>::kWrapperType =
WT_DISPLAY_HANDLER;