aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-10-26 03:19:13 +0800
committerChristian Persch <chpe@src.gnome.org>2004-10-26 03:19:13 +0800
commitedd48d92ae634d1b32269ddb1d2b3152eb800169 (patch)
tree6e065fb9b6e4bc023b5e62376fe74d8cc0de7623 /src
parentda7d0959009b472233de886affce4ed9a81b2475 (diff)
downloadgsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.tar
gsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.tar.gz
gsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.tar.bz2
gsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.tar.lz
gsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.tar.xz
gsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.tar.zst
gsoc2013-epiphany-edd48d92ae634d1b32269ddb1d2b3152eb800169.zip
De-couple instantiation and initialisation of the extensions manager.
2004-10-25 Christian Persch <chpe@cvs.gnome.org> * src/ephy-extensions-manager.c: (ephy_extensions_manager_init), (ephy_extensions_manager_startup): * src/ephy-extensions-manager.h: * src/ephy-shell.c: (ephy_shell_get_extensions_manager): De-couple instantiation and initialisation of the extensions manager. Fixes double-instance and weirdness and double-type-registration on startup when extensions use the session in their instance_init.
Diffstat (limited to 'src')
-rw-r--r--src/ephy-extensions-manager.c12
-rw-r--r--src/ephy-extensions-manager.h2
-rw-r--r--src/ephy-shell.c2
3 files changed, 14 insertions, 2 deletions
diff --git a/src/ephy-extensions-manager.c b/src/ephy-extensions-manager.c
index f39283abe..6139051df 100644
--- a/src/ephy-extensions-manager.c
+++ b/src/ephy-extensions-manager.c
@@ -887,11 +887,19 @@ init_schema_ctxt (EphyExtensionsManager *manager)
static void
ephy_extensions_manager_init (EphyExtensionsManager *manager)
{
- char *path;
-
manager->priv = EPHY_EXTENSIONS_MANAGER_GET_PRIVATE (manager);
LOG ("EphyExtensionsManager initialising")
+}
+
+void
+ephy_extensions_manager_startup (EphyExtensionsManager *manager)
+{
+ char *path;
+
+ g_return_if_fail (EPHY_IS_EXTENSIONS_MANAGER (manager));
+
+ LOG ("EphyExtensionsManager startup")
init_schema_ctxt (manager);
diff --git a/src/ephy-extensions-manager.h b/src/ephy-extensions-manager.h
index d7bc81dcd..d9efb730f 100644
--- a/src/ephy-extensions-manager.h
+++ b/src/ephy-extensions-manager.h
@@ -70,6 +70,8 @@ struct _EphyExtensionsManager
GType ephy_extensions_manager_get_type (void);
+void ephy_extensions_manager_startup (EphyExtensionsManager *manager);
+
void ephy_extensions_manager_load (EphyExtensionsManager *manager,
const char *identifier);
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index 9703ac719..49ff5d9a7 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -694,6 +694,8 @@ ephy_shell_get_extensions_manager (EphyShell *es)
/* Instantiate extensions manager */
es->priv->extensions_manager =
g_object_new (EPHY_TYPE_EXTENSIONS_MANAGER, NULL);
+
+ ephy_extensions_manager_startup (es->priv->extensions_manager);
}
return G_OBJECT (es->priv->extensions_manager);