aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2006-01-18 23:53:54 +0800
committerChristian Persch <chpe@src.gnome.org>2006-01-18 23:53:54 +0800
commitbc05ca2fb4d1d031e5ba4f081666bfcbec875872 (patch)
treebce80060063e65e63366c4063267802dc35cde61 /embed/mozilla
parent539426a9bd327676ad71b263e497ce19da1adde9 (diff)
downloadgsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.tar
gsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.tar.gz
gsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.tar.bz2
gsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.tar.lz
gsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.tar.xz
gsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.tar.zst
gsoc2013-epiphany-bc05ca2fb4d1d031e5ba4f081666bfcbec875872.zip
Decouple embed single instantiation and initialisation. Prevents
2006-01-18 Christian Persch <chpe@cvs.gnome.org> * embed/ephy-embed-shell.c: (impl_get_embed_single): * embed/ephy-embed-single.c: (ephy_embed_single_init): * embed/ephy-embed-single.h: * embed/mozilla/mozilla-embed-single.cpp: Decouple embed single instantiation and initialisation. Prevents double-initialisation on startup. * embed/mozilla/EphyContentPolicy.cpp: * embed/mozilla/EphyContentPolicy.h: Remove embed single variable, it was unused.
Diffstat (limited to 'embed/mozilla')
-rw-r--r--embed/mozilla/EphyContentPolicy.cpp3
-rw-r--r--embed/mozilla/EphyContentPolicy.h3
-rw-r--r--embed/mozilla/mozilla-embed-single.cpp22
3 files changed, 6 insertions, 22 deletions
diff --git a/embed/mozilla/EphyContentPolicy.cpp b/embed/mozilla/EphyContentPolicy.cpp
index b5910063b..930e39e86 100644
--- a/embed/mozilla/EphyContentPolicy.cpp
+++ b/embed/mozilla/EphyContentPolicy.cpp
@@ -55,9 +55,6 @@ EphyContentPolicy::EphyContentPolicy()
mLocked = eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_UNSAFE_PROTOCOLS);
mSafeProtocols = eel_gconf_get_string_list (CONF_LOCKDOWN_ADDITIONAL_SAFE_PROTOCOLS);
-
- mEmbedSingle = ephy_embed_shell_get_embed_single (embed_shell);
- g_return_if_fail (mEmbedSingle);
}
EphyContentPolicy::~EphyContentPolicy()
diff --git a/embed/mozilla/EphyContentPolicy.h b/embed/mozilla/EphyContentPolicy.h
index 3c4813a17..7639a6d00 100644
--- a/embed/mozilla/EphyContentPolicy.h
+++ b/embed/mozilla/EphyContentPolicy.h
@@ -50,9 +50,8 @@ public:
EphyContentPolicy();
virtual ~EphyContentPolicy();
private:
- GtkWidget *GetEmbedFromContext (nsISupports *aContext);
+ static GtkWidget *GetEmbedFromContext (nsISupports *aContext);
- GObject *mEmbedSingle;
gboolean mLocked;
GSList *mSafeProtocols;
};
diff --git a/embed/mozilla/mozilla-embed-single.cpp b/embed/mozilla/mozilla-embed-single.cpp
index 0c7d04e0a..a7b3b0d49 100644
--- a/embed/mozilla/mozilla-embed-single.cpp
+++ b/embed/mozilla/mozilla-embed-single.cpp
@@ -783,8 +783,10 @@ mozilla_stylesheet_shutdown (MozillaEmbedSingle *single)
#endif /* HAVE_GECKO_1_8 */
static gboolean
-init_services (MozillaEmbedSingle *single)
+impl_init (EphyEmbedSingle *esingle)
{
+ MozillaEmbedSingle *single = MOZILLA_EMBED_SINGLE (esingle);
+
/* Pre initialization */
mozilla_init_plugin_path ();
mozilla_init_home ();
@@ -803,6 +805,7 @@ init_services (MozillaEmbedSingle *single)
/* Fire up the beast */
gtk_moz_embed_push_startup ();
+ /* FIXME check that it succeeded! */
mozilla_register_components ();
@@ -864,22 +867,6 @@ mozilla_embed_single_init (MozillaEmbedSingle *mes)
MOZILLA_PROFILE_FILE,
NULL);
- if (!init_services (mes))
- {
- GtkWidget *dialog;
-
- dialog = gtk_message_dialog_new
- (NULL,
- GTK_DIALOG_MODAL,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- _("Epiphany can't be used now. "
- "Mozilla initialization failed."));
- gtk_dialog_run (GTK_DIALOG (dialog));
-
- exit (0);
- }
-
g_signal_connect_object (embed_shell, "prepare-close",
G_CALLBACK (prepare_close_cb), mes,
(GConnectFlags) 0);
@@ -1506,6 +1493,7 @@ mozilla_embed_single_class_init (MozillaEmbedSingleClass *klass)
static void
ephy_embed_single_iface_init (EphyEmbedSingleIface *iface)
{
+ iface->init = impl_init;
iface->clear_cache = impl_clear_cache;
iface->clear_auth_cache = impl_clear_auth_cache;
iface->set_network_status = impl_set_network_status;