#include "libcef_dll/cpptoc/navigation_entry_cpptoc.h"
#include "libcef_dll/cpptoc/sslstatus_cpptoc.h"
#include "libcef_dll/shutdown_checker.h"
namespace {
int CEF_CALLBACK
navigation_entry_is_valid(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefNavigationEntryCppToC::Get(self)->IsValid();
return _retval;
}
cef_string_userfree_t CEF_CALLBACK
navigation_entry_get_url(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefNavigationEntryCppToC::Get(self)->GetURL();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
navigation_entry_get_display_url(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefNavigationEntryCppToC::Get(self)->GetDisplayURL();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
navigation_entry_get_original_url(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefNavigationEntryCppToC::Get(self)->GetOriginalURL();
return _retval.DetachToUserFree();
}
cef_string_userfree_t CEF_CALLBACK
navigation_entry_get_title(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefString _retval = CefNavigationEntryCppToC::Get(self)->GetTitle();
return _retval.DetachToUserFree();
}
cef_transition_type_t CEF_CALLBACK
navigation_entry_get_transition_type(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return TT_EXPLICIT;
cef_transition_type_t _retval =
CefNavigationEntryCppToC::Get(self)->GetTransitionType();
return _retval;
}
int CEF_CALLBACK
navigation_entry_has_post_data(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
bool _retval = CefNavigationEntryCppToC::Get(self)->HasPostData();
return _retval;
}
cef_time_t CEF_CALLBACK
navigation_entry_get_completion_time(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return CefTime();
cef_time_t _retval = CefNavigationEntryCppToC::Get(self)->GetCompletionTime();
return _retval;
}
int CEF_CALLBACK
navigation_entry_get_http_status_code(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return 0;
int _retval = CefNavigationEntryCppToC::Get(self)->GetHttpStatusCode();
return _retval;
}
struct _cef_sslstatus_t* CEF_CALLBACK
navigation_entry_get_sslstatus(struct _cef_navigation_entry_t* self) {
shutdown_checker::AssertNotShutdown();
DCHECK(self);
if (!self)
return NULL;
CefRefPtr<CefSSLStatus> _retval =
CefNavigationEntryCppToC::Get(self)->GetSSLStatus();
return CefSSLStatusCppToC::Wrap(_retval);
}
}
CefNavigationEntryCppToC::CefNavigationEntryCppToC() {
GetStruct()->is_valid = navigation_entry_is_valid;
GetStruct()->get_url = navigation_entry_get_url;
GetStruct()->get_display_url = navigation_entry_get_display_url;
GetStruct()->get_original_url = navigation_entry_get_original_url;
GetStruct()->get_title = navigation_entry_get_title;
GetStruct()->get_transition_type = navigation_entry_get_transition_type;
GetStruct()->has_post_data = navigation_entry_has_post_data;
GetStruct()->get_completion_time = navigation_entry_get_completion_time;
GetStruct()->get_http_status_code = navigation_entry_get_http_status_code;
GetStruct()->get_sslstatus = navigation_entry_get_sslstatus;
}
CefNavigationEntryCppToC::~CefNavigationEntryCppToC() {
shutdown_checker::AssertNotShutdown();
}
template <>
CefRefPtr<CefNavigationEntry> CefCppToCRefCounted<
CefNavigationEntryCppToC,
CefNavigationEntry,
cef_navigation_entry_t>::UnwrapDerived(CefWrapperType type,
cef_navigation_entry_t* s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCppToCRefCounted<CefNavigationEntryCppToC,
CefNavigationEntry,
cef_navigation_entry_t>::kWrapperType =
WT_NAVIGATION_ENTRY;