#include "config.h"
#include "WebAuthDialog.h"
#include <WebCore/GtkAuthenticationDialog.h>
typedef struct {
GObject parent;
} WebAuthDialog;
typedef struct {
GObjectClass parent;
} WebAuthDialogClass;
static void webAuthDialogSessionFeatureInit(SoupSessionFeatureInterface*, gpointer);
G_DEFINE_TYPE_WITH_CODE(WebAuthDialog, web_auth_dialog, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE(SOUP_TYPE_SESSION_FEATURE,
webAuthDialogSessionFeatureInit))
static void web_auth_dialog_class_init(WebAuthDialogClass*)
{
}
static void web_auth_dialog_init(WebAuthDialog*)
{
}
static void sessionAuthenticate(SoupSession* session, SoupMessage* message, SoupAuth* auth, gboolean, gpointer)
{
WebCore::GtkAuthenticationDialog* authDialog = new WebCore::GtkAuthenticationDialog(0, session, message, auth);
authDialog->show();
}
static void attach(SoupSessionFeature*, SoupSession* session)
{
g_signal_connect(session, "authenticate", G_CALLBACK(sessionAuthenticate), 0);
}
static void detach(SoupSessionFeature*, SoupSession* session)
{
g_signal_handlers_disconnect_by_func(session, reinterpret_cast<gpointer>(sessionAuthenticate), 0);
}
static void webAuthDialogSessionFeatureInit(SoupSessionFeatureInterface* feature, gpointer)
{
feature->attach = attach;
feature->detach = detach;
}