WebKitCredential.cpp [plain text]
#include "config.h"
#include "WebKitCredential.h"
#include "WebCredential.h"
#include "WebKitCredentialPrivate.h"
#include <wtf/text/CString.h>
using namespace WebKit;
struct _WebKitCredential {
_WebKitCredential(const WebCore::Credential& coreCredential)
: credential(coreCredential)
{
}
WebCore::Credential credential;
CString username;
CString password;
};
G_DEFINE_BOXED_TYPE(WebKitCredential, webkit_credential, webkit_credential_copy, webkit_credential_free)
static inline WebKitCredentialPersistence toWebKitCredentialPersistence(WebCore::CredentialPersistence corePersistence)
{
switch (corePersistence) {
case WebCore::CredentialPersistenceNone:
return WEBKIT_CREDENTIAL_PERSISTENCE_NONE;
case WebCore::CredentialPersistenceForSession:
return WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION;
case WebCore::CredentialPersistencePermanent:
return WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT;
default:
ASSERT_NOT_REACHED();
return WEBKIT_CREDENTIAL_PERSISTENCE_NONE;
}
}
static inline WebCore::CredentialPersistence toWebCoreCredentialPersistence(WebKitCredentialPersistence kitPersistence)
{
switch (kitPersistence) {
case WEBKIT_CREDENTIAL_PERSISTENCE_NONE:
return WebCore::CredentialPersistenceNone;
case WEBKIT_CREDENTIAL_PERSISTENCE_FOR_SESSION:
return WebCore::CredentialPersistenceForSession;
case WEBKIT_CREDENTIAL_PERSISTENCE_PERMANENT:
return WebCore::CredentialPersistencePermanent;
default:
ASSERT_NOT_REACHED();
return WebCore::CredentialPersistenceNone;
}
}
WebKitCredential* webkitCredentialCreate(const WebCore::Credential& coreCredential)
{
WebKitCredential* credential = static_cast<WebKitCredential*>(fastMalloc(sizeof(WebKitCredential)));
new (credential) WebKitCredential(coreCredential);
return credential;
}
const WebCore::Credential& webkitCredentialGetCredential(WebKitCredential* credential)
{
ASSERT(credential);
return credential->credential;
}
WebKitCredential* webkit_credential_new(const gchar* username, const gchar* password, WebKitCredentialPersistence persistence)
{
g_return_val_if_fail(username, 0);
g_return_val_if_fail(password, 0);
return webkitCredentialCreate(WebCore::Credential(String::fromUTF8(username), String::fromUTF8(password), toWebCoreCredentialPersistence(persistence)));
}
WebKitCredential* webkit_credential_copy(WebKitCredential* credential)
{
g_return_val_if_fail(credential, 0);
return webkitCredentialCreate(credential->credential);
}
void webkit_credential_free(WebKitCredential* credential)
{
g_return_if_fail(credential);
credential->~WebKitCredential();
fastFree(credential);
}
const gchar* webkit_credential_get_username(WebKitCredential* credential)
{
g_return_val_if_fail(credential, 0);
if (credential->username.isNull())
credential->username = credential->credential.user().utf8();
return credential->username.data();
}
const gchar* webkit_credential_get_password(WebKitCredential* credential)
{
g_return_val_if_fail(credential, 0);
if (credential->password.isNull())
credential->password = credential->credential.password().utf8();
return credential->password.data();
}
gboolean webkit_credential_has_password(WebKitCredential* credential)
{
g_return_val_if_fail(credential, FALSE);
return credential->credential.hasPassword();
}
WebKitCredentialPersistence webkit_credential_get_persistence(WebKitCredential* credential)
{
g_return_val_if_fail(credential, WEBKIT_CREDENTIAL_PERSISTENCE_NONE);
return toWebKitCredentialPersistence(credential->credential.persistence());
}