#include "libcef_dll/ctocpp/scheme_handler_factory_ctocpp.h"
#include "libcef_dll/cpptoc/browser_cpptoc.h"
#include "libcef_dll/cpptoc/frame_cpptoc.h"
#include "libcef_dll/cpptoc/request_cpptoc.h"
#include "libcef_dll/ctocpp/resource_handler_ctocpp.h"
NO_SANITIZE("cfi-icall")
CefRefPtr<CefResourceHandler> CefSchemeHandlerFactoryCToCpp::Create(
CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
const CefString& scheme_name,
CefRefPtr<CefRequest> request) {
cef_scheme_handler_factory_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, create))
return nullptr;
DCHECK(!scheme_name.empty());
if (scheme_name.empty())
return nullptr;
DCHECK(request.get());
if (!request.get())
return nullptr;
cef_resource_handler_t* _retval = _struct->create(
_struct, CefBrowserCppToC::Wrap(browser), CefFrameCppToC::Wrap(frame),
scheme_name.GetStruct(), CefRequestCppToC::Wrap(request));
return CefResourceHandlerCToCpp::Wrap(_retval);
}
CefSchemeHandlerFactoryCToCpp::CefSchemeHandlerFactoryCToCpp() {}
CefSchemeHandlerFactoryCToCpp::~CefSchemeHandlerFactoryCToCpp() {}
template <>
cef_scheme_handler_factory_t* CefCToCppRefCounted<
CefSchemeHandlerFactoryCToCpp,
CefSchemeHandlerFactory,
cef_scheme_handler_factory_t>::UnwrapDerived(CefWrapperType type,
CefSchemeHandlerFactory* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefSchemeHandlerFactoryCToCpp,
CefSchemeHandlerFactory,
cef_scheme_handler_factory_t>::kWrapperType =
WT_SCHEME_HANDLER_FACTORY;