#include "libcef_dll/ctocpp/v8context_ctocpp.h"
#include "libcef_dll/ctocpp/browser_ctocpp.h"
#include "libcef_dll/ctocpp/frame_ctocpp.h"
#include "libcef_dll/ctocpp/task_runner_ctocpp.h"
#include "libcef_dll/ctocpp/v8exception_ctocpp.h"
#include "libcef_dll/ctocpp/v8value_ctocpp.h"
NO_SANITIZE("cfi-icall")
CefRefPtr<CefV8Context> CefV8Context::GetCurrentContext() {
cef_v8context_t* _retval = cef_v8context_get_current_context();
return CefV8ContextCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefV8Context> CefV8Context::GetEnteredContext() {
cef_v8context_t* _retval = cef_v8context_get_entered_context();
return CefV8ContextCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall") bool CefV8Context::InContext() {
int _retval = cef_v8context_in_context();
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefTaskRunner> CefV8ContextCToCpp::GetTaskRunner() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_task_runner))
return nullptr;
cef_task_runner_t* _retval = _struct->get_task_runner(_struct);
return CefTaskRunnerCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall") bool CefV8ContextCToCpp::IsValid() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, is_valid))
return false;
int _retval = _struct->is_valid(_struct);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
CefRefPtr<CefBrowser> CefV8ContextCToCpp::GetBrowser() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_browser))
return nullptr;
cef_browser_t* _retval = _struct->get_browser(_struct);
return CefBrowserCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall") CefRefPtr<CefFrame> CefV8ContextCToCpp::GetFrame() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_frame))
return nullptr;
cef_frame_t* _retval = _struct->get_frame(_struct);
return CefFrameCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall") CefRefPtr<CefV8Value> CefV8ContextCToCpp::GetGlobal() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, get_global))
return nullptr;
cef_v8value_t* _retval = _struct->get_global(_struct);
return CefV8ValueCToCpp::Wrap(_retval);
}
NO_SANITIZE("cfi-icall") bool CefV8ContextCToCpp::Enter() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, enter))
return false;
int _retval = _struct->enter(_struct);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall") bool CefV8ContextCToCpp::Exit() {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, exit))
return false;
int _retval = _struct->exit(_struct);
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefV8ContextCToCpp::IsSame(CefRefPtr<CefV8Context> that) {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, is_same))
return false;
DCHECK(that.get());
if (!that.get())
return false;
int _retval = _struct->is_same(_struct, CefV8ContextCToCpp::Unwrap(that));
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefV8ContextCToCpp::Eval(const CefString& code,
const CefString& script_url,
int start_line,
CefRefPtr<CefV8Value>& retval,
CefRefPtr<CefV8Exception>& exception) {
cef_v8context_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, eval))
return false;
DCHECK(!code.empty());
if (code.empty())
return false;
cef_v8value_t* retvalStruct = NULL;
if (retval.get())
retvalStruct = CefV8ValueCToCpp::Unwrap(retval);
cef_v8value_t* retvalOrig = retvalStruct;
cef_v8exception_t* exceptionStruct = NULL;
if (exception.get())
exceptionStruct = CefV8ExceptionCToCpp::Unwrap(exception);
cef_v8exception_t* exceptionOrig = exceptionStruct;
int _retval = _struct->eval(_struct, code.GetStruct(), script_url.GetStruct(),
start_line, &retvalStruct, &exceptionStruct);
if (retvalStruct) {
if (retvalStruct != retvalOrig) {
retval = CefV8ValueCToCpp::Wrap(retvalStruct);
}
} else {
retval = nullptr;
}
if (exceptionStruct) {
if (exceptionStruct != exceptionOrig) {
exception = CefV8ExceptionCToCpp::Wrap(exceptionStruct);
}
} else {
exception = nullptr;
}
return _retval ? true : false;
}
CefV8ContextCToCpp::CefV8ContextCToCpp() {}
CefV8ContextCToCpp::~CefV8ContextCToCpp() {}
template <>
cef_v8context_t*
CefCToCppRefCounted<CefV8ContextCToCpp, CefV8Context, cef_v8context_t>::
UnwrapDerived(CefWrapperType type, CefV8Context* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefV8ContextCToCpp,
CefV8Context,
cef_v8context_t>::kWrapperType =
WT_V8CONTEXT;