ewk_security_origin.cpp [plain text]
#include "config.h"
#include "ewk_security_origin.h"
#include "DatabaseTracker.h"
#include "SecurityOrigin.h"
#include "ewk_private.h"
#include <Eina.h>
#include <wtf/RefPtr.h>
#include <wtf/text/CString.h>
struct _Ewk_Security_Origin {
RefPtr<WebCore::SecurityOrigin> securityOrigin;
const char* protocol;
const char* host;
};
const char* ewk_security_origin_protocol_get(Ewk_Security_Origin* origin)
{
if (!origin->protocol)
origin->protocol = eina_stringshare_add(origin->securityOrigin->protocol().utf8().data());
return origin->protocol;
}
const char* ewk_security_origin_host_get(Ewk_Security_Origin* origin)
{
if (!origin->host)
origin->host = eina_stringshare_add(origin->securityOrigin->host().utf8().data());
return origin->host;
}
uint32_t ewk_security_origin_port_get(const Ewk_Security_Origin* origin)
{
return origin->securityOrigin->port();
}
uint64_t ewk_security_origin_web_database_usage_get(const Ewk_Security_Origin* origin)
{
#if ENABLE(SQL_DATABASE)
return WebCore::DatabaseTracker::tracker().usageForOrigin(origin->securityOrigin.get());
#else
return 0;
#endif
}
uint64_t ewk_security_origin_web_database_quota_get(const Ewk_Security_Origin* origin)
{
#if ENABLE(SQL_DATABASE)
return WebCore::DatabaseTracker::tracker().quotaForOrigin(origin->securityOrigin.get());
#else
return 0;
#endif
}
void ewk_security_origin_web_database_quota_set(const Ewk_Security_Origin* origin, uint64_t quota)
{
#if ENABLE(SQL_DATABASE)
WebCore::DatabaseTracker::tracker().setQuota(origin->securityOrigin.get(), quota);
#endif
}
void ewk_security_origin_free(Ewk_Security_Origin* origin)
{
origin->securityOrigin = 0;
eina_stringshare_del(origin->host);
eina_stringshare_del(origin->protocol);
delete origin;
}
Ewk_Security_Origin* ewk_security_origin_new(WebCore::SecurityOrigin* coreOrigin)
{
Ewk_Security_Origin* origin = new Ewk_Security_Origin;
origin->securityOrigin = coreOrigin;
origin->host = 0;
origin->protocol = 0;
return origin;
}