#include "libcef_dll/ctocpp/frame_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 CefFrameHandlerCToCpp::OnFrameCreated(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame) {
shutdown_checker::AssertNotShutdown();
cef_frame_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_frame_created))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
_struct->on_frame_created(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame));
}
NO_SANITIZE("cfi-icall")
void CefFrameHandlerCToCpp::OnFrameAttached(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
bool reattached) {
shutdown_checker::AssertNotShutdown();
cef_frame_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_frame_attached))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
_struct->on_frame_attached(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame), reattached);
}
NO_SANITIZE("cfi-icall")
void CefFrameHandlerCToCpp::OnFrameDetached(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame) {
shutdown_checker::AssertNotShutdown();
cef_frame_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_frame_detached))
return;
DCHECK(browser.get());
if (!browser.get())
return;
DCHECK(frame.get());
if (!frame.get())
return;
_struct->on_frame_detached(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(frame));
}
NO_SANITIZE("cfi-icall")
void CefFrameHandlerCToCpp::OnMainFrameChanged(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> old_frame,
CefRefPtr<CefFrame> new_frame) {
shutdown_checker::AssertNotShutdown();
cef_frame_handler_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_main_frame_changed))
return;
DCHECK(browser.get());
if (!browser.get())
return;
_struct->on_main_frame_changed(_struct, CefBrowserCppToC::Wrap(browser),
CefFrameCppToC::Wrap(old_frame),
CefFrameCppToC::Wrap(new_frame));
}
CefFrameHandlerCToCpp::CefFrameHandlerCToCpp() {}
CefFrameHandlerCToCpp::~CefFrameHandlerCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_frame_handler_t*
CefCToCppRefCounted<CefFrameHandlerCToCpp,
CefFrameHandler,
cef_frame_handler_t>::UnwrapDerived(CefWrapperType type,
CefFrameHandler* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefFrameHandlerCToCpp,
CefFrameHandler,
cef_frame_handler_t>::kWrapperType =
WT_FRAME_HANDLER;