#include "libcef_dll/ctocpp/load_handler_ctocpp.h"
#include "libcef_dll/cpptoc/browser_cpptoc.h"
#include "libcef_dll/cpptoc/frame_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
NO_SANITIZE("cfi-icall")
void CefLoadHandlerCToCpp::OnLoadingStateChange(CefRefPtr<CefBrowser> browser,
bool isLoading,
bool canGoBack,
bool canGoForward) {
shutdown_checker::AssertNotShutdown();
cef_load_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_loading_state_change))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_loading_state_change(_struct, CefBrowserCppToC::Wrap(browser),
isLoading, canGoBack, canGoForward);
}
NO_SANITIZE("cfi-icall")
void CefLoadHandlerCToCpp::OnLoadStart(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
TransitionType transition_type) {
shutdown_checker::AssertNotShutdown();
cef_load_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_load_start))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
_struct->on_load_start(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame), transition_type);
}
NO_SANITIZE("cfi-icall")
void CefLoadHandlerCToCpp::OnLoadEnd(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int httpStatusCode) {
shutdown_checker::AssertNotShutdown();
cef_load_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_load_end))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
_struct->on_load_end(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame), httpStatusCode);
}
NO_SANITIZE("cfi-icall")
void CefLoadHandlerCToCpp::OnLoadError(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
ErrorCode errorCode,
const CefString& errorText,
const CefString& failedUrl) {
shutdown_checker::AssertNotShutdown();
cef_load_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_load_error))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
DCHECK(!failedUrl.empty());
if (failedUrl.empty())
return;
_struct->on_load_error(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame), errorCode,
errorText.GetStruct(), failedUrl.GetStruct());
}
CefLoadHandlerCToCpp::CefLoadHandlerCToCpp() {}
CefLoadHandlerCToCpp::~CefLoadHandlerCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_load_handler_t*
CefCToCppRefCounted<CefLoadHandlerCToCpp, CefLoadHandler, cef_load_handler_t>::
UnwrapDerived(CefWrapperType type, CefLoadHandler* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefLoadHandlerCToCpp,
CefLoadHandler,
cef_load_handler_t>::kWrapperType =
WT_LOAD_HANDLER;