diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2006-01-18 23:53:54 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2006-01-18 23:53:54 +0800 |
commit | bc05ca2fb4d1d031e5ba4f081666bfcbec875872 (patch) | |
tree | bce80060063e65e63366c4063267802dc35cde61 /embed/mozilla | |
parent | 539426a9bd327676ad71b263e497ce19da1adde9 (diff) | |
download | gsoc2013-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.cpp | 3 | ||||
-rw-r--r-- | embed/mozilla/EphyContentPolicy.h | 3 | ||||
-rw-r--r-- | embed/mozilla/mozilla-embed-single.cpp | 22 |
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; |