aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/GtkNSSDialogs.cpp
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2006-02-03 06:25:18 +0800
committerChristian Persch <chpe@src.gnome.org>2006-02-03 06:25:18 +0800
commitb5d229937e31e9cec6cf599ae816e22888237aa0 (patch)
tree9b62c3b002838151fb7383f874cc29502a447eac /embed/mozilla/GtkNSSDialogs.cpp
parentfd6923b630ae9629a99fa527baabb47d4454913a (diff)
downloadgsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.tar
gsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.tar.gz
gsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.tar.bz2
gsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.tar.lz
gsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.tar.xz
gsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.tar.zst
gsoc2013-epiphany-b5d229937e31e9cec6cf599ae816e22888237aa0.zip
Helper class that pushes a null JS context on the stack, and pops it in
2006-02-02 Christian Persch <chpe@cvs.gnome.org> * embed/mozilla/Makefile.am: * embed/mozilla/AutoJSContextStack.cpp: * embed/mozilla/AutoJSContextStack.h: Helper class that pushes a null JS context on the stack, and pops it in the destructor. * embed/mozilla/ContentHandler.cpp: * embed/mozilla/EphyPromptService.cpp: * embed/mozilla/FilePicker.cpp: * embed/mozilla/GtkNSSClientAuthDialogs.cpp: * embed/mozilla/GtkNSSDialogs.cpp: * embed/mozilla/GtkNSSKeyPairDialogs.cpp: * embed/mozilla/GtkNSSSecurityWarningDialogs.cpp: * embed/mozilla/PrintingPromptService.cpp: Push a null JS context on the stack when we run a recursive mainloop. Fixes the epiphany equivalend of camino bug https://bugzilla.mozilla.org/show_bug.cgi?id=179307.
Diffstat (limited to 'embed/mozilla/GtkNSSDialogs.cpp')
-rw-r--r--embed/mozilla/GtkNSSDialogs.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/embed/mozilla/GtkNSSDialogs.cpp b/embed/mozilla/GtkNSSDialogs.cpp
index a9c4f4c25..b9dfca829 100644
--- a/embed/mozilla/GtkNSSDialogs.cpp
+++ b/embed/mozilla/GtkNSSDialogs.cpp
@@ -31,6 +31,7 @@
#include "config.h"
#include "EphyUtils.h"
+#include "AutoJSContextStack.h"
#include <nsCOMPtr.h>
#include <nsMemory.h>
@@ -207,6 +208,11 @@ display_cert_warning_box (nsIInterfaceRequestor *ctx,
GtkWidget *dialog, *label, *checkbox, *vbox, *button;
int res;
+ nsresult rv;
+ AutoJSContextStack stack;
+ rv = stack.Init ();
+ if (NS_FAILED (rv)) return rv;
+
/* NOTE: Due to a mozilla bug [https://bugzilla.mozilla.org/show_bug.cgi?id=306288],
* we will always end up without a parent!
*/
@@ -539,6 +545,11 @@ GtkNSSDialogs::ConfirmDownloadCACert(nsIInterfaceRequestor *ctx,
GtkWidget *dialog, *label;
char *msg, *primary;
+ nsresult rv;
+ AutoJSContextStack stack;
+ rv = stack.Init ();
+ if (NS_FAILED (rv)) return rv;
+
nsCOMPtr<nsIDOMWindow> parent = do_GetInterface (ctx);
GtkWindow *gparent = GTK_WINDOW (EphyUtils::FindGtkParent (parent));
@@ -751,6 +762,11 @@ GtkNSSDialogs::SetPKCS12FilePassword(nsIInterfaceRequestor *ctx,
GtkWidget *progress;
char *msg;
+ nsresult rv;
+ AutoJSContextStack stack;
+ rv = stack.Init ();
+ if (NS_FAILED (rv)) return rv;
+
nsCOMPtr<nsIDOMWindow> parent = do_GetInterface (ctx);
GtkWindow *gparent = GTK_WINDOW (EphyUtils::FindGtkParent (parent));
@@ -869,6 +885,11 @@ GtkNSSDialogs::GetPKCS12FilePassword(nsIInterfaceRequestor *ctx,
GtkWidget *dialog, *hbox, *label, *entry, *vbox;
char *msg;
+ nsresult rv;
+ AutoJSContextStack stack;
+ rv = stack.Init ();
+ if (NS_FAILED (rv)) return rv;
+
nsCOMPtr<nsIDOMWindow> parent = do_GetInterface (ctx);
GtkWindow *gparent = GTK_WINDOW (EphyUtils::FindGtkParent (parent));
@@ -1313,11 +1334,15 @@ GtkNSSDialogs::ViewCert(nsIInterfaceRequestor *ctx,
GtkWidget *dialog, *widget;
GladeXML *gxml;
nsEmbedString value;
- nsresult rv;
PRUint32 verifystate, count;
PRUnichar ** usage;
GtkSizeGroup * sizegroup;
+ nsresult rv;
+ AutoJSContextStack stack;
+ rv = stack.Init ();
+ if (NS_FAILED (rv)) return rv;
+
gxml = glade_xml_new (ephy_file ("certificate-dialogs.glade"),
"viewcert_dialog", NULL);
g_return_val_if_fail (gxml != NULL, NS_ERROR_FAILURE);