#include "config.h"
#include "CookieJarSoup.h"
#include "CString.h"
#include "KURL.h"
namespace WebCore {
static bool cookiesInitialized;
static SoupCookieJar* cookieJar;
SoupCookieJar* defaultCookieJar()
{
if (!cookiesInitialized) {
cookiesInitialized = true;
setDefaultCookieJar(soup_cookie_jar_new());
}
return cookieJar;
}
void setDefaultCookieJar(SoupCookieJar* jar)
{
cookiesInitialized = true;
if (cookieJar)
g_object_unref(cookieJar);
cookieJar = jar;
if (cookieJar)
g_object_ref(cookieJar);
}
void setCookies(Document* , const KURL& url, const KURL& , const String& value)
{
SoupCookieJar* jar = defaultCookieJar();
if (!jar)
return;
SoupURI* origin = soup_uri_new(url.string().utf8().data());
soup_cookie_jar_set_cookie(jar, origin, value.utf8().data());
soup_uri_free(origin);
}
String cookies(const Document* , const KURL& url)
{
SoupCookieJar* jar = defaultCookieJar();
if (!jar)
return String();
SoupURI* uri = soup_uri_new(url.string().utf8().data());
char* cookies = soup_cookie_jar_get_cookies(jar, uri, FALSE);
soup_uri_free(uri);
String result(String::fromUTF8(cookies));
g_free(cookies);
return result;
}
bool cookiesEnabled(const Document* )
{
return defaultCookieJar();
}
}