diff options
Diffstat (limited to 'embed/mozilla/GeckoCookiePromptService.cpp')
-rw-r--r-- | embed/mozilla/GeckoCookiePromptService.cpp | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/embed/mozilla/GeckoCookiePromptService.cpp b/embed/mozilla/GeckoCookiePromptService.cpp deleted file mode 100644 index b228e7c93..000000000 --- a/embed/mozilla/GeckoCookiePromptService.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright © 2003 Tommi Komulainen <tommi.komulainen@iki.fi> - * Copyright © 2004, 2007 Christian Persch - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * $Id$ - */ - -#include "mozilla-config.h" -#include "config.h" - -#include <glib/gi18n.h> - -#include <gtk/gtkbox.h> -#include <gtk/gtkcheckbutton.h> -#include <gtk/gtkdialog.h> -#include <gtk/gtkmessagedialog.h> -#include <gtk/gtkstock.h> -#include <gtk/gtkwindow.h> - -#include <nsStringAPI.h> - -#include "ephy-debug.h" -#include "ephy-gui.h" -#include "ephy-stock-icons.h" - -#include "AutoModalDialog.h" -#include "EphyUtils.h" - -#include "GeckoCookiePromptService.h" - -NS_IMPL_ISUPPORTS1 (GeckoCookiePromptService, nsICookiePromptService) - -GeckoCookiePromptService::GeckoCookiePromptService() -{ - LOG ("GeckoCookiePromptService ctor [%p]", this); -} - -GeckoCookiePromptService::~GeckoCookiePromptService() -{ - LOG ("GeckoCookiePromptService dtor [%p]", this); -} - -/* boolean cookieDialog (in nsIDOMWindow parent, in nsICookie cookie, in ACString hostname, in long cookiesFromHost, in boolean changingCookie, inout boolean checkValue); */ -NS_IMETHODIMP -GeckoCookiePromptService::CookieDialog (nsIDOMWindow *aParent, - nsICookie *aCookie, - const nsACString &aHostname, - PRInt32 aCookiesFromHost, - PRBool aChangingCookie, - PRBool *_checkValue, - PRBool *_retval) -{ - NS_ENSURE_ARG (aParent); - NS_ENSURE_ARG (aCookie); - NS_ENSURE_ARG_POINTER (_checkValue); - NS_ENSURE_ARG_POINTER (_retval); - - // TODO short-circuit and accept session cookies as per preference - // TODO until mozilla starts supporting it natively? - - AutoModalDialog modalDialog (aParent, PR_FALSE); - if (!modalDialog.ShouldShow ()) { - *_retval = PR_FALSE; - *_checkValue = PR_FALSE; - return NS_OK; - } - - GtkWindow *parent = modalDialog.GetParent (); - NS_ENSURE_TRUE(parent, NS_ERROR_INVALID_POINTER); - - nsCString host(aHostname); - - GtkWidget *dialog = gtk_message_dialog_new - (parent, - GTK_DIALOG_MODAL /* FIXME mozilla sucks! */, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, - _("Accept cookie from %s?"), - host.get()); - GtkWindow *window = GTK_WINDOW (dialog); - GtkDialog *gdialog = GTK_DIALOG (dialog); - GtkMessageDialog *message_dialog = GTK_MESSAGE_DIALOG (dialog); - - gtk_window_set_icon_name (window, EPHY_STOCK_EPHY); - gtk_window_set_title (window, _("Accept Cookie?")); - - if (aChangingCookie) { - gtk_message_dialog_format_secondary_text - (message_dialog, - _("The site wants to modify an existing cookie.")); - } else if (aCookiesFromHost == 0) { - gtk_message_dialog_format_secondary_text - (message_dialog, - _("The site wants to set a cookie.")); - } else if (aCookiesFromHost == 1) { - gtk_message_dialog_format_secondary_text - (message_dialog, - _("The site wants to set a second cookie.")); - } else { - char *num_text = g_strdup_printf - (ngettext ("You already have %d cookie from this site.", - "You already have %d cookies from this site.", - aCookiesFromHost), - aCookiesFromHost); - - gtk_message_dialog_format_secondary_text - (message_dialog, - "The site %s wants to set another cookie. %s", - host.get(), num_text); - g_free (num_text); - } - - GtkWidget *checkbutton; - checkbutton = gtk_check_button_new_with_mnemonic - (_("Apply this _decision to all cookies from this site")); - gtk_widget_show (checkbutton); - gtk_box_pack_start (GTK_BOX (ephy_gui_message_dialog_get_content_box (dialog)), - checkbutton, FALSE, FALSE, 0); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), *_checkValue); - - gtk_dialog_add_button (gdialog, - _("_Reject"), GTK_RESPONSE_REJECT); - gtk_dialog_add_button (gdialog, - _("_Accept"), GTK_RESPONSE_ACCEPT); - gtk_dialog_set_default_response (gdialog, GTK_RESPONSE_ACCEPT); - - int response = modalDialog.Run (gdialog); - - if (response == GTK_RESPONSE_ACCEPT || response == GTK_RESPONSE_REJECT) { - *_retval = (response == GTK_RESPONSE_ACCEPT); - *_checkValue = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)); - } else { - /* if the dialog was closed, but no button was pressed, - * consider it as 'Reject' but ignore the checkbutton - */ - *_retval = PR_FALSE; - *_checkValue = PR_FALSE; - } - - gtk_widget_destroy (dialog); - - return NS_OK; -} |