Disable WebKit's authentication dialog if needed
We need to handle WebKit possibly having an authentication dialog more expressly. Obviously we only ever want to see one dialog and we choose our own simply because it is localized.
This commit is contained in:
parent
dc357a40aa
commit
ff9085b400
2 changed files with 22 additions and 6 deletions
|
@ -160,12 +160,29 @@ katze_http_auth_session_authenticate_cb (SoupSession* session,
|
|||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
katze_http_auth_session_request_queued_cb (SoupSession* session,
|
||||
SoupMessage* msg,
|
||||
gpointer data)
|
||||
{
|
||||
/* WebKit has its own authentication dialog in recent versions.
|
||||
We want only one, and we choose our own to have localization. */
|
||||
GType type = g_type_from_name ("WebKitSoupAuthDialog");
|
||||
if (type)
|
||||
soup_session_remove_feature_by_type (session, type);
|
||||
|
||||
g_signal_connect (session, "authenticate",
|
||||
G_CALLBACK (katze_http_auth_session_authenticate_cb), NULL);
|
||||
g_signal_handlers_disconnect_by_func (session,
|
||||
katze_http_auth_session_request_queued_cb, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
katze_http_auth_attach (SoupSessionFeature* feature,
|
||||
SoupSession* session)
|
||||
{
|
||||
g_signal_connect (session, "authenticate",
|
||||
G_CALLBACK (katze_http_auth_session_authenticate_cb), NULL);
|
||||
g_signal_connect (session, "request-queued",
|
||||
G_CALLBACK (katze_http_auth_session_request_queued_cb), NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -174,6 +191,8 @@ katze_http_auth_detach (SoupSessionFeature* feature,
|
|||
{
|
||||
g_signal_handlers_disconnect_by_func (session,
|
||||
katze_http_auth_session_authenticate_cb, NULL);
|
||||
g_signal_handlers_disconnect_by_func (session,
|
||||
katze_http_auth_session_request_queued_cb, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1354,10 +1354,7 @@ soup_session_constructed_cb (GObject* object)
|
|||
g_signal_connect (settings, "notify::ident-string",
|
||||
G_CALLBACK (soup_session_settings_notify_ident_string_cb), object);
|
||||
|
||||
/* Only add the Auth feature if WebKit didn't already */
|
||||
if (!g_signal_has_handler_pending (session,
|
||||
g_signal_lookup ("authenticate", SOUP_TYPE_SESSION), 0, FALSE))
|
||||
soup_session_add_feature_by_type (session, KATZE_TYPE_HTTP_AUTH);
|
||||
soup_session_add_feature_by_type (session, KATZE_TYPE_HTTP_AUTH);
|
||||
midori_soup_session_debug (session);
|
||||
|
||||
feature = g_object_new (KATZE_TYPE_HTTP_COOKIES, NULL);
|
||||
|
|
Loading…
Reference in a new issue