aboutsummaryrefslogtreecommitdiffstats
path: root/embed/xulrunner/components/GeckoCookiePromptService.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'embed/xulrunner/components/GeckoCookiePromptService.cpp')
-rw-r--r--embed/xulrunner/components/GeckoCookiePromptService.cpp160
1 files changed, 0 insertions, 160 deletions
diff --git a/embed/xulrunner/components/GeckoCookiePromptService.cpp b/embed/xulrunner/components/GeckoCookiePromptService.cpp
deleted file mode 100644
index 722d9abd8..000000000
--- a/embed/xulrunner/components/GeckoCookiePromptService.cpp
+++ /dev/null
@@ -1,160 +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 <xpcom-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 <nsStringGlue.h>
-
-#include "ephy-debug.h"
-#include "ephy-gui.h"
-#include "ephy-stock-icons.h"
-
-#include "AutoJSContextStack.h"
-#include "AutoWindowModalState.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?
-
- GtkWidget *parent = EphyUtils::FindGtkParent (aParent);
- NS_ENSURE_TRUE(parent, NS_ERROR_INVALID_POINTER);
-
- nsresult rv;
- AutoJSContextStack stack;
- rv = stack.Init ();
- if (NS_FAILED (rv)) {
- return rv;
- }
-
- AutoWindowModalState modalState (aParent);
-
- nsCString host(aHostname);
-
- GtkWidget *dialog = gtk_message_dialog_new
- (GTK_WINDOW (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 = gtk_dialog_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;
-}