#include "libcef_dll/cpptoc/cookie_manager_cpptoc.h"
#include "libcef_dll/ctocpp/completion_callback_ctocpp.h"
#include "libcef_dll/ctocpp/cookie_visitor_ctocpp.h"
#include "libcef_dll/ctocpp/delete_cookies_callback_ctocpp.h"
#include "libcef_dll/ctocpp/set_cookie_callback_ctocpp.h"
CEF_EXPORT cef_cookie_manager_t* cef_cookie_manager_get_global_manager(
cef_completion_callback_t* callback) {
CefRefPtr<CefCookieManager> _retval = CefCookieManager::GetGlobalManager(
CefCompletionCallbackCToCpp::Wrap(callback));
return CefCookieManagerCppToC::Wrap(_retval);
}
namespace {
int CEF_CALLBACK
cookie_manager_visit_all_cookies(struct _cef_cookie_manager_t* self,
struct _cef_cookie_visitor_t* visitor) {
DCHECK(self);
if (!self)
return 0;
DCHECK(visitor);
if (!visitor)
return 0;
bool _retval = CefCookieManagerCppToC::Get(self)->VisitAllCookies(
CefCookieVisitorCToCpp::Wrap(visitor));
return _retval;
}
int CEF_CALLBACK
cookie_manager_visit_url_cookies(struct _cef_cookie_manager_t* self,
const cef_string_t* url,
int includeHttpOnly,
struct _cef_cookie_visitor_t* visitor) {
DCHECK(self);
if (!self)
return 0;
DCHECK(url);
if (!url)
return 0;
DCHECK(visitor);
if (!visitor)
return 0;
bool _retval = CefCookieManagerCppToC::Get(self)->VisitUrlCookies(
CefString(url), includeHttpOnly ? true : false,
CefCookieVisitorCToCpp::Wrap(visitor));
return _retval;
}
int CEF_CALLBACK
cookie_manager_set_cookie(struct _cef_cookie_manager_t* self,
const cef_string_t* url,
const struct _cef_cookie_t* cookie,
struct _cef_set_cookie_callback_t* callback) {
DCHECK(self);
if (!self)
return 0;
DCHECK(url);
if (!url)
return 0;
DCHECK(cookie);
if (!cookie)
return 0;
CefCookie cookieObj;
if (cookie)
cookieObj.Set(*cookie, false);
bool _retval = CefCookieManagerCppToC::Get(self)->SetCookie(
CefString(url), cookieObj, CefSetCookieCallbackCToCpp::Wrap(callback));
return _retval;
}
int CEF_CALLBACK
cookie_manager_delete_cookies(struct _cef_cookie_manager_t* self,
const cef_string_t* url,
const cef_string_t* cookie_name,
struct _cef_delete_cookies_callback_t* callback) {
DCHECK(self);
if (!self)
return 0;
bool _retval = CefCookieManagerCppToC::Get(self)->DeleteCookies(
CefString(url), CefString(cookie_name),
CefDeleteCookiesCallbackCToCpp::Wrap(callback));
return _retval;
}
int CEF_CALLBACK
cookie_manager_flush_store(struct _cef_cookie_manager_t* self,
cef_completion_callback_t* callback) {
DCHECK(self);
if (!self)
return 0;
bool _retval = CefCookieManagerCppToC::Get(self)->FlushStore(
CefCompletionCallbackCToCpp::Wrap(callback));
return _retval;
}
}
CefCookieManagerCppToC::CefCookieManagerCppToC() {
GetStruct()->visit_all_cookies = cookie_manager_visit_all_cookies;
GetStruct()->visit_url_cookies = cookie_manager_visit_url_cookies;
GetStruct()->set_cookie = cookie_manager_set_cookie;
GetStruct()->delete_cookies = cookie_manager_delete_cookies;
GetStruct()->flush_store = cookie_manager_flush_store;
}
CefCookieManagerCppToC::~CefCookieManagerCppToC() {}
template <>
CefRefPtr<CefCookieManager> CefCppToCRefCounted<
CefCookieManagerCppToC,
CefCookieManager,
cef_cookie_manager_t>::UnwrapDerived(CefWrapperType type,
cef_cookie_manager_t* s) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCppToCRefCounted<CefCookieManagerCppToC,
CefCookieManager,
cef_cookie_manager_t>::kWrapperType =
WT_COOKIE_MANAGER;