[evolution] Teach EMailExtensionRegistry to find extensions.



commit 9a0b1266b5686d4985fec8a0dae7fdf00b1b8dd9
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Feb 1 08:44:50 2013 -0500

    Teach EMailExtensionRegistry to find extensions.
    
    Restore this commit with a proper bug fix to follow.

 em-format/Makefile.am                              |    2 -
 em-format/e-mail-extension-registry.c              |  152 +++++++++++++-------
 em-format/e-mail-extension-registry.h              |    9 +-
 em-format/e-mail-format-extensions.c               |  144 ------------------
 em-format/e-mail-format-extensions.h               |   88 -----------
 em-format/e-mail-formatter-attachment-bar.c        |    6 +-
 em-format/e-mail-formatter-attachment.c            |    3 +-
 em-format/e-mail-formatter-error.c                 |    3 +-
 em-format/e-mail-formatter-headers.c               |    3 +-
 em-format/e-mail-formatter-image.c                 |    3 +-
 em-format/e-mail-formatter-message-rfc822.c        |    3 +-
 em-format/e-mail-formatter-print-headers.c         |    3 +-
 em-format/e-mail-formatter-print.c                 |    6 +-
 em-format/e-mail-formatter-quote-attachment.c      |    3 +-
 em-format/e-mail-formatter-quote-headers.c         |    3 +-
 em-format/e-mail-formatter-quote-message-rfc822.c  |    3 +-
 em-format/e-mail-formatter-quote-text-enriched.c   |    3 +-
 em-format/e-mail-formatter-quote-text-html.c       |    3 +-
 em-format/e-mail-formatter-quote-text-plain.c      |    3 +-
 em-format/e-mail-formatter-quote.c                 |    6 +-
 em-format/e-mail-formatter-secure-button.c         |    3 +-
 em-format/e-mail-formatter-source.c                |    3 +-
 em-format/e-mail-formatter-text-enriched.c         |    3 +-
 em-format/e-mail-formatter-text-html.c             |    3 +-
 em-format/e-mail-formatter-text-plain.c            |    3 +-
 em-format/e-mail-formatter.c                       |    5 +-
 em-format/e-mail-parser-application-mbox.c         |    3 +-
 em-format/e-mail-parser-application-smime.c        |    3 +-
 em-format/e-mail-parser-attachment-bar.c           |    3 +-
 em-format/e-mail-parser-headers.c                  |    3 +-
 em-format/e-mail-parser-image.c                    |    3 +-
 em-format/e-mail-parser-inlinepgp-encrypted.c      |    3 +-
 em-format/e-mail-parser-inlinepgp-signed.c         |    3 +-
 em-format/e-mail-parser-message-deliverystatus.c   |    3 +-
 em-format/e-mail-parser-message-external.c         |    3 +-
 em-format/e-mail-parser-message-rfc822.c           |    3 +-
 em-format/e-mail-parser-message.c                  |    3 +-
 em-format/e-mail-parser-multipart-alternative.c    |    3 +-
 em-format/e-mail-parser-multipart-appledouble.c    |    3 +-
 em-format/e-mail-parser-multipart-digest.c         |    3 +-
 em-format/e-mail-parser-multipart-encrypted.c      |    3 +-
 em-format/e-mail-parser-multipart-mixed.c          |    3 +-
 em-format/e-mail-parser-multipart-related.c        |    3 +-
 em-format/e-mail-parser-multipart-signed.c         |    3 +-
 em-format/e-mail-parser-secure-button.c            |    3 +-
 em-format/e-mail-parser-source.c                   |    3 +-
 em-format/e-mail-parser-text-enriched.c            |    3 +-
 em-format/e-mail-parser-text-html.c                |    3 +-
 em-format/e-mail-parser-text-plain.c               |    3 +-
 em-format/e-mail-parser.c                          |    3 +-
 .../audio-inline/e-mail-formatter-audio-inline.c   |   41 ------
 modules/audio-inline/e-mail-parser-audio-inline.c  |   41 ------
 modules/itip-formatter/e-mail-formatter-itip.c     |   43 ------
 modules/itip-formatter/e-mail-parser-itip.c        |   41 ------
 modules/prefer-plain/e-mail-parser-prefer-plain.c  |   41 ------
 .../e-mail-formatter-text-highlight.c              |   41 ------
 .../text-highlight/e-mail-parser-text-highlight.c  |   41 ------
 .../e-mail-parser-tnef-attachment.c                |   41 ------
 .../vcard-inline/e-mail-formatter-vcard-inline.c   |   41 ------
 modules/vcard-inline/e-mail-parser-vcard-inline.c  |   41 ------
 60 files changed, 201 insertions(+), 752 deletions(-)
---
diff --git a/em-format/Makefile.am b/em-format/Makefile.am
index 51c7471..f26a004 100644
--- a/em-format/Makefile.am
+++ b/em-format/Makefile.am
@@ -40,8 +40,6 @@ libemformat_la_SOURCES =				\
 	$(emformatinclude_HEADERS)			\
 	e-mail-extension-registry.c			\
 	e-mail-inline-filter.c				\
-	e-mail-format-extensions.c			\
-	e-mail-format-extensions.h			\
 	e-mail-formatter.c				\
 	e-mail-formatter-print.c			\
 	e-mail-formatter-quote.c			\
diff --git a/em-format/e-mail-extension-registry.c b/em-format/e-mail-extension-registry.c
index 158951f..7e5f3a9 100644
--- a/em-format/e-mail-extension-registry.c
+++ b/em-format/e-mail-extension-registry.c
@@ -22,7 +22,6 @@
 
 #include <libebackend/libebackend.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-parser-extension.h"
 
@@ -58,6 +57,49 @@ destroy_queue (GQueue *queue)
 }
 
 static void
+mail_extension_registry_add_extension (EMailExtensionRegistry *registry,
+                                       const gchar **mime_types,
+                                       GType extension_type)
+{
+	GObject *extension;
+	gint ii;
+
+	if (mime_types == NULL) {
+		g_critical (
+			"%s does not define any MIME types",
+			g_type_name (extension_type));
+		return;
+	}
+
+	extension = g_object_new (extension_type, NULL);
+
+	for (ii = 0; mime_types[ii] != NULL; ii++) {
+		GQueue *queue;
+
+		queue = g_hash_table_lookup (
+			registry->priv->table, mime_types[ii]);
+		if (queue == NULL) {
+			queue = g_queue_new ();
+			g_hash_table_insert (
+				registry->priv->table,
+				(gpointer) mime_types[ii],
+				queue);
+		}
+
+		g_queue_push_head (queue, g_object_ref (extension));
+
+		if (camel_debug ("emformat:registry")) {
+			printf (
+				"Added extension '%s' for type '%s'\n",
+				g_type_name (extension_type),
+				mime_types[ii]);
+		}
+	}
+
+	g_object_unref (extension);
+}
+
+static void
 mail_extension_registry_finalize (GObject *object)
 {
 	EMailExtensionRegistryPrivate *priv;
@@ -96,55 +138,6 @@ e_mail_extension_registry_init (EMailExtensionRegistry *registry)
 }
 
 /**
- * e_mail_extension_registry_add_extension:
- * @registry: an #EMailExtensionRegistry
- * @mime_types: a %NULL-terminated array of MIME types
- * @extension_type: the #GType of the extension being added
- *
- * Creates an instance of @extension_type and registers the instance for
- * all provided MIME types.
- */
-void
-e_mail_extension_registry_add_extension (EMailExtensionRegistry *registry,
-                                         const gchar **mime_types,
-                                         GType extension_type)
-{
-	GObject *extension;
-	gint ii;
-
-	g_return_if_fail (E_IS_MAIL_EXTENSION_REGISTRY (registry));
-	g_return_if_fail (mime_types != NULL);
-	g_return_if_fail (extension_type != G_TYPE_INVALID);
-
-	extension = g_object_new (extension_type, NULL);
-
-	for (ii = 0; mime_types[ii] != NULL; ii++) {
-		GQueue *queue;
-
-		queue = g_hash_table_lookup (
-			registry->priv->table, mime_types[ii]);
-		if (queue == NULL) {
-			queue = g_queue_new ();
-			g_hash_table_insert (
-				registry->priv->table,
-				(gpointer) mime_types[ii],
-				queue);
-		}
-
-		g_queue_push_head (queue, g_object_ref (extension));
-
-		if (camel_debug ("emformat:registry")) {
-			printf (
-				"Added extension '%s' for type '%s'\n",
-				g_type_name (extension_type),
-				mime_types[ii]);
-		}
-	}
-
-	g_object_unref (extension);
-}
-
-/**
  * e_mail_extension_registry_get_for_mime_type:
  * @regstry: An #EMailExtensionRegistry
  * @mime_type: A string with mime-type to look up
@@ -224,6 +217,36 @@ e_mail_parser_extension_registry_init (EMailParserExtensionRegistry *registry)
 {
 }
 
+void
+e_mail_parser_extension_registry_load (EMailParserExtensionRegistry *registry)
+{
+	GType *children;
+	GType base_extension_type;
+	guint ii, n_children;
+
+	g_return_if_fail (E_IS_MAIL_PARSER_EXTENSION_REGISTRY (registry));
+
+	base_extension_type = E_TYPE_MAIL_PARSER_EXTENSION;
+	children = g_type_children (base_extension_type, &n_children);
+
+	for (ii = 0; ii < n_children; ii++) {
+		EMailParserExtensionClass *class;
+
+		if (G_TYPE_IS_ABSTRACT (children[ii]))
+			continue;
+
+		class = g_type_class_ref (children[ii]);
+
+		mail_extension_registry_add_extension (
+			E_MAIL_EXTENSION_REGISTRY (registry),
+			class->mime_types, children[ii]);
+
+		g_type_class_unref (class);
+	}
+
+	g_free (children);
+}
+
 /******************************************************************************/
 
 G_DEFINE_TYPE_WITH_CODE (
@@ -242,3 +265,32 @@ e_mail_formatter_extension_registry_init (EMailFormatterExtensionRegistry *regis
 {
 }
 
+void
+e_mail_formatter_extension_registry_load (EMailFormatterExtensionRegistry *registry,
+                                          GType base_extension_type)
+{
+	GType *children;
+	guint ii, n_children;
+
+	g_return_if_fail (E_IS_MAIL_FORMATTER_EXTENSION_REGISTRY (registry));
+
+	children = g_type_children (base_extension_type, &n_children);
+
+	for (ii = 0; ii < n_children; ii++) {
+		EMailFormatterExtensionClass *class;
+
+		if (G_TYPE_IS_ABSTRACT (children[ii]))
+			continue;
+
+		class = g_type_class_ref (children[ii]);
+
+		mail_extension_registry_add_extension (
+			E_MAIL_EXTENSION_REGISTRY (registry),
+			class->mime_types, children[ii]);
+
+		g_type_class_unref (class);
+	}
+
+	g_free (children);
+}
+
diff --git a/em-format/e-mail-extension-registry.h b/em-format/e-mail-extension-registry.h
index 21011ef..7002eb0 100644
--- a/em-format/e-mail-extension-registry.h
+++ b/em-format/e-mail-extension-registry.h
@@ -57,10 +57,6 @@ struct _EMailExtensionRegistryClass {
 
 GType		e_mail_extension_registry_get_type
 					(void) G_GNUC_CONST;
-void		e_mail_extension_registry_add_extension
-					(EMailExtensionRegistry *registry,
-					 const gchar **mime_types,
-					 GType extension_type);
 GQueue *	e_mail_extension_registry_get_for_mime_type
 					(EMailExtensionRegistry *registry,
 					 const gchar *mime_type);
@@ -108,6 +104,8 @@ struct _EMailParserExtensionRegistryClass {
 
 GType		e_mail_parser_extension_registry_get_type
 					(void) G_GNUC_CONST;
+void		e_mail_parser_extension_registry_load
+					(EMailParserExtensionRegistry *registry);
 
 G_END_DECLS
 
@@ -149,6 +147,9 @@ struct _EMailFormatterExtensionRegistryClass {
 
 GType		e_mail_formatter_extension_registry_get_type
 					(void) G_GNUC_CONST;
+void		e_mail_formatter_extension_registry_load
+					(EMailFormatterExtensionRegistry *registry,
+					 GType base_extension_type);
 
 G_END_DECLS
 
diff --git a/em-format/e-mail-formatter-attachment-bar.c b/em-format/e-mail-formatter-attachment-bar.c
index 5633f4f..4591501 100644
--- a/em-format/e-mail-formatter-attachment-bar.c
+++ b/em-format/e-mail-formatter-attachment-bar.c
@@ -20,15 +20,17 @@
 #include <config.h>
 #endif
 
+#include "e-mail-part-attachment-bar.h"
+
 #include <glib/gi18n-lib.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
-#include "e-mail-part-attachment-bar.h"
 
 typedef EMailFormatterExtension EMailFormatterAttachmentBar;
 typedef EMailFormatterExtensionClass EMailFormatterAttachmentBarClass;
 
+GType e_mail_formatter_attachment_bar_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterAttachmentBar,
 	e_mail_formatter_attachment_bar,
diff --git a/em-format/e-mail-formatter-attachment.c b/em-format/e-mail-formatter-attachment.c
index 993b261..f800ca2 100644
--- a/em-format/e-mail-formatter-attachment.c
+++ b/em-format/e-mail-formatter-attachment.c
@@ -25,7 +25,6 @@
 #include <shell/e-shell.h>
 #include <shell/e-shell-window.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-inline-filter.h"
 #include "e-mail-part-attachment-bar.h"
@@ -37,6 +36,8 @@
 typedef EMailFormatterExtension EMailFormatterAttachment;
 typedef EMailFormatterExtensionClass EMailFormatterAttachmentClass;
 
+GType e_mail_formatter_attachment_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterAttachment,
 	e_mail_formatter_attachment,
diff --git a/em-format/e-mail-formatter-error.c b/em-format/e-mail-formatter-error.c
index 1535bef..3adaab9 100644
--- a/em-format/e-mail-formatter-error.c
+++ b/em-format/e-mail-formatter-error.c
@@ -19,7 +19,6 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-#include "e-mail-format-extensions.h"
 
 #include <glib/gi18n-lib.h>
 
@@ -30,6 +29,8 @@
 typedef EMailFormatterExtension EMailFormatterError;
 typedef EMailFormatterExtensionClass EMailFormatterErrorClass;
 
+GType e_mail_formatter_error_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterError,
 	e_mail_formatter_error,
diff --git a/em-format/e-mail-formatter-headers.c b/em-format/e-mail-formatter-headers.c
index f64f161..3161d88 100644
--- a/em-format/e-mail-formatter-headers.c
+++ b/em-format/e-mail-formatter-headers.c
@@ -28,7 +28,6 @@
 #include <e-util/e-util.h>
 #include <shell/e-shell.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-formatter-utils.h"
 #include "e-mail-inline-filter.h"
@@ -36,6 +35,8 @@
 typedef EMailFormatterExtension EMailFormatterHeaders;
 typedef EMailFormatterExtensionClass EMailFormatterHeadersClass;
 
+GType e_mail_formatter_headers_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterHeaders,
 	e_mail_formatter_headers,
diff --git a/em-format/e-mail-formatter-image.c b/em-format/e-mail-formatter-image.c
index 7cfa85e..4cdd844 100644
--- a/em-format/e-mail-formatter-image.c
+++ b/em-format/e-mail-formatter-image.c
@@ -24,7 +24,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-inline-filter.h"
 #include "e-mail-parser-extension.h"
@@ -33,6 +32,8 @@
 typedef EMailFormatterExtension EMailFormatterImage;
 typedef EMailFormatterExtensionClass EMailFormatterImageClass;
 
+GType e_mail_formatter_image_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterImage,
 	e_mail_formatter_image,
diff --git a/em-format/e-mail-formatter-message-rfc822.c b/em-format/e-mail-formatter-message-rfc822.c
index 70c3d20..9e88986 100644
--- a/em-format/e-mail-formatter-message-rfc822.c
+++ b/em-format/e-mail-formatter-message-rfc822.c
@@ -25,7 +25,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-part-list.h"
 #include "e-mail-part-utils.h"
@@ -33,6 +32,8 @@
 typedef EMailFormatterExtension EMailFormatterMessageRFC822;
 typedef EMailFormatterExtensionClass EMailFormatterMessageRFC822Class;
 
+GType e_mail_formatter_message_rfc822_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterMessageRFC822,
 	e_mail_formatter_message_rfc822,
diff --git a/em-format/e-mail-formatter-print-headers.c b/em-format/e-mail-formatter-print-headers.c
index 1499837..c3f683f 100644
--- a/em-format/e-mail-formatter-print-headers.c
+++ b/em-format/e-mail-formatter-print-headers.c
@@ -28,7 +28,6 @@
 #include <e-util/e-util.h>
 #include <libemail-engine/e-mail-utils.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-print.h"
 #include "e-mail-formatter-utils.h"
 #include "e-mail-inline-filter.h"
@@ -36,6 +35,8 @@
 typedef EMailFormatterExtension EMailFormatterPrintHeaders;
 typedef EMailFormatterExtensionClass EMailFormatterPrintHeadersClass;
 
+GType e_mail_formatter_print_headers_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterPrintHeaders,
 	e_mail_formatter_print_headers,
diff --git a/em-format/e-mail-formatter-print.c b/em-format/e-mail-formatter-print.c
index 6ca9148..7e15b93 100644
--- a/em-format/e-mail-formatter-print.c
+++ b/em-format/e-mail-formatter-print.c
@@ -237,9 +237,9 @@ e_mail_formatter_print_base_init (EMailFormatterPrintClass *class)
 	/* Register internal extensions. */
 	g_type_ensure (e_mail_formatter_print_headers_get_type ());
 
-	e_mail_formatter_print_internal_extensions_load (
-		E_MAIL_EXTENSION_REGISTRY (
-			E_MAIL_FORMATTER_CLASS (class)->extension_registry));
+	e_mail_formatter_extension_registry_load (
+		E_MAIL_FORMATTER_CLASS (class)->extension_registry,
+		E_TYPE_MAIL_FORMATTER_PRINT_EXTENSION);
 
 	E_MAIL_FORMATTER_CLASS (class)->text_html_flags =
 		CAMEL_MIME_FILTER_TOHTML_CONVERT_NL |
diff --git a/em-format/e-mail-formatter-quote-attachment.c b/em-format/e-mail-formatter-quote-attachment.c
index df2977b..628ef97 100644
--- a/em-format/e-mail-formatter-quote-attachment.c
+++ b/em-format/e-mail-formatter-quote-attachment.c
@@ -26,7 +26,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-quote.h"
 #include "e-mail-part-attachment.h"
 #include "e-mail-part-utils.h"
@@ -36,6 +35,8 @@
 typedef EMailFormatterExtension EMailFormatterQuoteAttachment;
 typedef EMailFormatterExtensionClass EMailFormatterQuoteAttachmentClass;
 
+GType e_mail_formatter_quote_attachment_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterQuoteAttachment,
 	e_mail_formatter_quote_attachment,
diff --git a/em-format/e-mail-formatter-quote-headers.c b/em-format/e-mail-formatter-quote-headers.c
index 6a6a8b8..8fed82d 100644
--- a/em-format/e-mail-formatter-quote-headers.c
+++ b/em-format/e-mail-formatter-quote-headers.c
@@ -28,7 +28,6 @@
 #include <e-util/e-util.h>
 #include <libemail-engine/e-mail-utils.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-quote.h"
 #include "e-mail-formatter-utils.h"
 #include "e-mail-inline-filter.h"
@@ -36,6 +35,8 @@
 typedef EMailFormatterExtension EMailFormatterQuoteHeaders;
 typedef EMailFormatterExtensionClass EMailFormatterQuoteHeadersClass;
 
+GType e_mail_formatter_quote_headers_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterQuoteHeaders,
 	e_mail_formatter_quote_headers,
diff --git a/em-format/e-mail-formatter-quote-message-rfc822.c b/em-format/e-mail-formatter-quote-message-rfc822.c
index 2e885d5..42b3ba5 100644
--- a/em-format/e-mail-formatter-quote-message-rfc822.c
+++ b/em-format/e-mail-formatter-quote-message-rfc822.c
@@ -27,7 +27,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-quote.h"
 #include "e-mail-part-list.h"
 #include "e-mail-part-utils.h"
@@ -35,6 +34,8 @@
 typedef EMailFormatterExtension EMailFormatterQuoteMessageRFC822;
 typedef EMailFormatterExtensionClass EMailFormatterQuoteMessageRFC822Class;
 
+GType e_mail_formatter_quote_message_rfc822_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterQuoteMessageRFC822,
 	e_mail_formatter_quote_message_rfc822,
diff --git a/em-format/e-mail-formatter-quote-text-enriched.c b/em-format/e-mail-formatter-quote-text-enriched.c
index ce5170e..031cc66 100644
--- a/em-format/e-mail-formatter-quote-text-enriched.c
+++ b/em-format/e-mail-formatter-quote-text-enriched.c
@@ -26,13 +26,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-quote.h"
 #include "e-mail-inline-filter.h"
 
 typedef EMailFormatterExtension EMailFormatterQuoteTextEnriched;
 typedef EMailFormatterExtensionClass EMailFormatterQuoteTextEnrichedClass;
 
+GType e_mail_formatter_quote_text_enriched_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterQuoteTextEnriched,
 	e_mail_formatter_quote_text_enriched,
diff --git a/em-format/e-mail-formatter-quote-text-html.c b/em-format/e-mail-formatter-quote-text-html.c
index c4559a0..71c7d63 100644
--- a/em-format/e-mail-formatter-quote-text-html.c
+++ b/em-format/e-mail-formatter-quote-text-html.c
@@ -27,7 +27,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-quote.h"
 #include "e-mail-part-utils.h"
 #include "e-mail-stripsig-filter.h"
@@ -35,6 +34,8 @@
 typedef EMailFormatterExtension EMailFormatterQuoteTextHTML;
 typedef EMailFormatterExtensionClass EMailFormatterQuoteTextHTMLClass;
 
+GType e_mail_formatter_quote_text_html_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterQuoteTextHTML,
 	e_mail_formatter_quote_text_html,
diff --git a/em-format/e-mail-formatter-quote-text-plain.c b/em-format/e-mail-formatter-quote-text-plain.c
index e9383d4..71f1762 100644
--- a/em-format/e-mail-formatter-quote-text-plain.c
+++ b/em-format/e-mail-formatter-quote-text-plain.c
@@ -26,7 +26,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-quote.h"
 #include "e-mail-part-utils.h"
 #include "e-mail-stripsig-filter.h"
@@ -34,6 +33,8 @@
 typedef EMailFormatterExtension EMailFormatterQuoteTextPlain;
 typedef EMailFormatterExtensionClass EMailFormatterQuoteTextPlainClass;
 
+GType e_mail_formatter_quote_text_plain_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterQuoteTextPlain,
 	e_mail_formatter_quote_text_plain,
diff --git a/em-format/e-mail-formatter-quote.c b/em-format/e-mail-formatter-quote.c
index a8833ee..1a2d84d 100644
--- a/em-format/e-mail-formatter-quote.c
+++ b/em-format/e-mail-formatter-quote.c
@@ -170,9 +170,9 @@ e_mail_formatter_quote_base_init (EMailFormatterQuoteClass *class)
 	g_type_ensure (e_mail_formatter_quote_text_html_get_type ());
 	g_type_ensure (e_mail_formatter_quote_text_plain_get_type ());
 
-	e_mail_formatter_quote_internal_extensions_load (
-		E_MAIL_EXTENSION_REGISTRY (
-			E_MAIL_FORMATTER_CLASS (class)->extension_registry));
+	e_mail_formatter_extension_registry_load (
+		E_MAIL_FORMATTER_CLASS (class)->extension_registry,
+		E_TYPE_MAIL_FORMATTER_QUOTE_EXTENSION);
 
 	E_MAIL_FORMATTER_CLASS (class)->text_html_flags =
 		CAMEL_MIME_FILTER_TOHTML_PRE |
diff --git a/em-format/e-mail-formatter-secure-button.c b/em-format/e-mail-formatter-secure-button.c
index a3efbb2..8f66b2e 100644
--- a/em-format/e-mail-formatter-secure-button.c
+++ b/em-format/e-mail-formatter-secure-button.c
@@ -19,7 +19,6 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-#include "e-mail-format-extensions.h"
 
 #include <glib/gi18n-lib.h>
 
@@ -35,6 +34,8 @@
 typedef EMailFormatterExtension EMailFormatterSecureButton;
 typedef EMailFormatterExtensionClass EMailFormatterSecureButtonClass;
 
+GType e_mail_formatter_secure_button_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterSecureButton,
 	e_mail_formatter_secure_button,
diff --git a/em-format/e-mail-formatter-source.c b/em-format/e-mail-formatter-source.c
index 0753b48..e4ee288 100644
--- a/em-format/e-mail-formatter-source.c
+++ b/em-format/e-mail-formatter-source.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-inline-filter.h"
 
 typedef EMailFormatterExtension EMailFormatterSource;
 typedef EMailFormatterExtensionClass EMailFormatterSourceClass;
 
+GType e_mail_formatter_source_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterSource,
 	e_mail_formatter_source,
diff --git a/em-format/e-mail-formatter-text-enriched.c b/em-format/e-mail-formatter-text-enriched.c
index 86ee917..1ea46e8 100644
--- a/em-format/e-mail-formatter-text-enriched.c
+++ b/em-format/e-mail-formatter-text-enriched.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-inline-filter.h"
 
 typedef EMailFormatterExtension EMailFormatterTextEnriched;
 typedef EMailFormatterExtensionClass EMailFormatterTextEnrichedClass;
 
+GType e_mail_formatter_text_enriched_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterTextEnriched,
 	e_mail_formatter_text_enriched,
diff --git a/em-format/e-mail-formatter-text-html.c b/em-format/e-mail-formatter-text-html.c
index b7a0175..a70ec2b 100644
--- a/em-format/e-mail-formatter-text-html.c
+++ b/em-format/e-mail-formatter-text-html.c
@@ -26,7 +26,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-inline-filter.h"
 #include "e-mail-part-utils.h"
@@ -34,6 +33,8 @@
 typedef EMailFormatterExtension EMailFormatterTextHTML;
 typedef EMailFormatterExtensionClass EMailFormatterTextHTMLClass;
 
+GType e_mail_formatter_text_html_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterTextHTML,
 	e_mail_formatter_text_html,
diff --git a/em-format/e-mail-formatter-text-plain.c b/em-format/e-mail-formatter-text-plain.c
index bda6e53..278353b 100644
--- a/em-format/e-mail-formatter-text-plain.c
+++ b/em-format/e-mail-formatter-text-plain.c
@@ -24,7 +24,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-formatter-extension.h"
 #include "e-mail-inline-filter.h"
 #include "e-mail-part-utils.h"
@@ -32,6 +31,8 @@
 typedef EMailFormatterExtension EMailFormatterTextPlain;
 typedef EMailFormatterExtensionClass EMailFormatterTextPlainClass;
 
+GType e_mail_formatter_text_plain_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailFormatterTextPlain,
 	e_mail_formatter_text_plain,
diff --git a/em-format/e-mail-formatter.c b/em-format/e-mail-formatter.c
index 83ba48d..dcea081 100644
--- a/em-format/e-mail-formatter.c
+++ b/em-format/e-mail-formatter.c
@@ -526,8 +526,9 @@ e_mail_formatter_base_init (EMailFormatterClass *class)
 	class->extension_registry = g_object_new (
 		E_TYPE_MAIL_FORMATTER_EXTENSION_REGISTRY, NULL);
 
-	e_mail_formatter_internal_extensions_load (
-		E_MAIL_EXTENSION_REGISTRY (class->extension_registry));
+	e_mail_formatter_extension_registry_load (
+		class->extension_registry,
+		E_TYPE_MAIL_FORMATTER_EXTENSION);
 
 	e_extensible_load_extensions (
 		E_EXTENSIBLE (class->extension_registry));
diff --git a/em-format/e-mail-parser-application-mbox.c b/em-format/e-mail-parser-application-mbox.c
index c928deb..b0fde83 100644
--- a/em-format/e-mail-parser-application-mbox.c
+++ b/em-format/e-mail-parser-application-mbox.c
@@ -25,13 +25,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserApplicationMBox;
 typedef EMailParserExtensionClass EMailParserApplicationMBoxClass;
 
+GType e_mail_parser_application_mbox_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserApplicationMBox,
 	e_mail_parser_application_mbox,
diff --git a/em-format/e-mail-parser-application-smime.c b/em-format/e-mail-parser-application-smime.c
index a5ab047..13c3d73 100644
--- a/em-format/e-mail-parser-application-smime.c
+++ b/em-format/e-mail-parser-application-smime.c
@@ -25,13 +25,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserApplicationSMIME;
 typedef EMailParserExtensionClass EMailParserApplicationSMIMEClass;
 
+GType e_mail_parser_application_smime_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserApplicationSMIME,
 	e_mail_parser_application_smime,
diff --git a/em-format/e-mail-parser-attachment-bar.c b/em-format/e-mail-parser-attachment-bar.c
index ecc6be6..44fbb9c 100644
--- a/em-format/e-mail-parser-attachment-bar.c
+++ b/em-format/e-mail-parser-attachment-bar.c
@@ -19,7 +19,6 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-#include "e-mail-format-extensions.h"
 
 #include "e-mail-part-attachment-bar.h"
 
@@ -42,6 +41,8 @@ mail_part_attachment_bar_free (EMailPart *part)
 typedef EMailParserExtension EMailParserAttachmentBar;
 typedef EMailParserExtensionClass EMailParserAttachmentBarClass;
 
+GType e_mail_parser_attachment_bar_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserAttachmentBar,
 	e_mail_parser_attachment_bar,
diff --git a/em-format/e-mail-parser-headers.c b/em-format/e-mail-parser-headers.c
index 009371f..f290094 100644
--- a/em-format/e-mail-parser-headers.c
+++ b/em-format/e-mail-parser-headers.c
@@ -26,12 +26,13 @@
 #include <e-util/e-util.h>
 #include <libemail-engine/e-mail-utils.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 
 typedef EMailParserExtension EMailParserHeaders;
 typedef EMailParserExtensionClass EMailParserHeadersClass;
 
+GType e_mail_parser_headers_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserHeaders,
 	e_mail_parser_headers,
diff --git a/em-format/e-mail-parser-image.c b/em-format/e-mail-parser-image.c
index 5360bdb..741daa7 100644
--- a/em-format/e-mail-parser-image.c
+++ b/em-format/e-mail-parser-image.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserImage;
 typedef EMailParserExtensionClass EMailParserImageClass;
 
+GType e_mail_parser_image_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserImage,
 	e_mail_parser_image,
diff --git a/em-format/e-mail-parser-inlinepgp-encrypted.c b/em-format/e-mail-parser-inlinepgp-encrypted.c
index 99c7871..624452c 100644
--- a/em-format/e-mail-parser-inlinepgp-encrypted.c
+++ b/em-format/e-mail-parser-inlinepgp-encrypted.c
@@ -25,13 +25,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserInlinePGPEncrypted;
 typedef EMailParserExtensionClass EMailParserInlinePGPEncryptedClass;
 
+GType e_mail_parser_inline_pgp_encrypted_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserInlinePGPEncrypted,
 	e_mail_parser_inline_pgp_encrypted,
diff --git a/em-format/e-mail-parser-inlinepgp-signed.c b/em-format/e-mail-parser-inlinepgp-signed.c
index faf7be6..fb65e5c 100644
--- a/em-format/e-mail-parser-inlinepgp-signed.c
+++ b/em-format/e-mail-parser-inlinepgp-signed.c
@@ -25,13 +25,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserInlinePGPSigned;
 typedef EMailParserExtensionClass EMailParserInlinePGPSignedClass;
 
+GType e_mail_parser_inline_pgp_signed_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserInlinePGPSigned,
 	e_mail_parser_inline_pgp_signed,
diff --git a/em-format/e-mail-parser-message-deliverystatus.c b/em-format/e-mail-parser-message-deliverystatus.c
index 88fa8ce..d02bbf9 100644
--- a/em-format/e-mail-parser-message-deliverystatus.c
+++ b/em-format/e-mail-parser-message-deliverystatus.c
@@ -24,12 +24,13 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 
 typedef EMailParserExtension EMailParserMessageDeliveryStatus;
 typedef EMailParserExtensionClass EMailParserMessageDeliveryStatusClass;
 
+GType e_mail_parser_message_delivery_status_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMessageDeliveryStatus,
 	e_mail_parser_message_delivery_status,
diff --git a/em-format/e-mail-parser-message-external.c b/em-format/e-mail-parser-message-external.c
index c6b6de1..d24bb65 100644
--- a/em-format/e-mail-parser-message-external.c
+++ b/em-format/e-mail-parser-message-external.c
@@ -26,12 +26,13 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 
 typedef EMailParserExtension EMailParserMessageExternal;
 typedef EMailParserExtensionClass EMailParserMessageExternalClass;
 
+GType e_mail_parser_message_external_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMessageExternal,
 	e_mail_parser_message_external,
diff --git a/em-format/e-mail-parser-message-rfc822.c b/em-format/e-mail-parser-message-rfc822.c
index bafdd62..ca9dd67 100644
--- a/em-format/e-mail-parser-message-rfc822.c
+++ b/em-format/e-mail-parser-message-rfc822.c
@@ -25,7 +25,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-list.h"
 #include "e-mail-part-utils.h"
@@ -33,6 +32,8 @@
 typedef EMailParserExtension EMailParserMessageRFC822;
 typedef EMailParserExtensionClass EMailParserMessageRFC822Class;
 
+GType e_mail_parser_message_rfc822_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMessageRFC822,
 	e_mail_parser_message_rfc822,
diff --git a/em-format/e-mail-parser-message.c b/em-format/e-mail-parser-message.c
index 696c230..9cd0a2d 100644
--- a/em-format/e-mail-parser-message.c
+++ b/em-format/e-mail-parser-message.c
@@ -26,13 +26,14 @@
 #include <e-util/e-util.h>
 #include <libemail-engine/e-mail-utils.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserMessage;
 typedef EMailParserExtensionClass EMailParserMessageClass;
 
+GType e_mail_parser_message_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMessage,
 	e_mail_parser_message,
diff --git a/em-format/e-mail-parser-multipart-alternative.c b/em-format/e-mail-parser-multipart-alternative.c
index 2e78d06..cc1c872 100644
--- a/em-format/e-mail-parser-multipart-alternative.c
+++ b/em-format/e-mail-parser-multipart-alternative.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserMultipartAlternative;
 typedef EMailParserExtensionClass EMailParserMultipartAlternativeClass;
 
+GType e_mail_parser_multipart_alternative_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartAlternative,
 	e_mail_parser_multipart_alternative,
diff --git a/em-format/e-mail-parser-multipart-appledouble.c b/em-format/e-mail-parser-multipart-appledouble.c
index e27bb78..a866363 100644
--- a/em-format/e-mail-parser-multipart-appledouble.c
+++ b/em-format/e-mail-parser-multipart-appledouble.c
@@ -20,12 +20,13 @@
 #include <config.h>
 #endif
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 
 typedef EMailParserExtension EMailParserMultipartAppleDouble;
 typedef EMailParserExtensionClass EMailParserMultipartAppleDoubleClass;
 
+GType e_mail_parser_multipart_apple_double_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartAppleDouble,
 	e_mail_parser_multipart_apple_double,
diff --git a/em-format/e-mail-parser-multipart-digest.c b/em-format/e-mail-parser-multipart-digest.c
index df1b680..64d4882 100644
--- a/em-format/e-mail-parser-multipart-digest.c
+++ b/em-format/e-mail-parser-multipart-digest.c
@@ -24,12 +24,13 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 
 typedef EMailParserExtension EMailParserMultipartDigest;
 typedef EMailParserExtensionClass EMailParserMultipartDigestClass;
 
+GType e_mail_parser_multipart_digest_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartDigest,
 	e_mail_parser_multipart_digest,
diff --git a/em-format/e-mail-parser-multipart-encrypted.c b/em-format/e-mail-parser-multipart-encrypted.c
index f0e2e94..c815ab5 100644
--- a/em-format/e-mail-parser-multipart-encrypted.c
+++ b/em-format/e-mail-parser-multipart-encrypted.c
@@ -24,13 +24,14 @@
 
 #include <libedataserver/libedataserver.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserMultipartEncrypted;
 typedef EMailParserExtensionClass EMailParserMultipartEncryptedClass;
 
+GType e_mail_parser_multipart_encrypted_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartEncrypted,
 	e_mail_parser_multipart_encrypted,
diff --git a/em-format/e-mail-parser-multipart-mixed.c b/em-format/e-mail-parser-multipart-mixed.c
index 8fbd55f..9e876ee 100644
--- a/em-format/e-mail-parser-multipart-mixed.c
+++ b/em-format/e-mail-parser-multipart-mixed.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserMultipartMixed;
 typedef EMailParserExtensionClass EMailParserMultipartMixedClass;
 
+GType e_mail_parser_multipart_mixed_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartMixed,
 	e_mail_parser_multipart_mixed,
diff --git a/em-format/e-mail-parser-multipart-related.c b/em-format/e-mail-parser-multipart-related.c
index 5d94f65..a1cbbf7 100644
--- a/em-format/e-mail-parser-multipart-related.c
+++ b/em-format/e-mail-parser-multipart-related.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserMultipartRelated;
 typedef EMailParserExtensionClass EMailParserMultipartRelatedClass;
 
+GType e_mail_parser_multipart_related_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartRelated,
 	e_mail_parser_multipart_related,
diff --git a/em-format/e-mail-parser-multipart-signed.c b/em-format/e-mail-parser-multipart-signed.c
index dc3262d..514d40f 100644
--- a/em-format/e-mail-parser-multipart-signed.c
+++ b/em-format/e-mail-parser-multipart-signed.c
@@ -24,13 +24,14 @@
 
 #include <libedataserver/libedataserver.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserMultipartSigned;
 typedef EMailParserExtensionClass EMailParserMultipartSignedClass;
 
+GType e_mail_parser_multipart_signed_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserMultipartSigned,
 	e_mail_parser_multipart_signed,
diff --git a/em-format/e-mail-parser-secure-button.c b/em-format/e-mail-parser-secure-button.c
index 59d573c..3836859 100644
--- a/em-format/e-mail-parser-secure-button.c
+++ b/em-format/e-mail-parser-secure-button.c
@@ -19,7 +19,6 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-#include "e-mail-format-extensions.h"
 
 #include <glib/gi18n-lib.h>
 
@@ -30,6 +29,8 @@
 typedef EMailParserExtension EMailParserSecureButton;
 typedef EMailParserExtensionClass EMailParserSecureButtonClass;
 
+GType e_mail_parser_secure_button_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserSecureButton,
 	e_mail_parser_secure_button,
diff --git a/em-format/e-mail-parser-source.c b/em-format/e-mail-parser-source.c
index d20051d..ff8355d 100644
--- a/em-format/e-mail-parser-source.c
+++ b/em-format/e-mail-parser-source.c
@@ -24,12 +24,13 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 
 typedef EMailParserExtension EMailParserSource;
 typedef EMailParserExtensionClass EMailParserSourceClass;
 
+GType e_mail_parser_source_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserSource,
 	e_mail_parser_source,
diff --git a/em-format/e-mail-parser-text-enriched.c b/em-format/e-mail-parser-text-enriched.c
index 2c4edaa..024d160 100644
--- a/em-format/e-mail-parser-text-enriched.c
+++ b/em-format/e-mail-parser-text-enriched.c
@@ -24,13 +24,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserTextEnriched;
 typedef EMailParserExtensionClass EMailParserTextEnrichedClass;
 
+GType e_mail_parser_text_enriched_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserTextEnriched,
 	e_mail_parser_text_enriched,
diff --git a/em-format/e-mail-parser-text-html.c b/em-format/e-mail-parser-text-html.c
index 3fa17ac..ccfc5d6 100644
--- a/em-format/e-mail-parser-text-html.c
+++ b/em-format/e-mail-parser-text-html.c
@@ -25,13 +25,14 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
 
 typedef EMailParserExtension EMailParserTextHTML;
 typedef EMailParserExtensionClass EMailParserTextHTMLClass;
 
+GType e_mail_parser_text_html_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserTextHTML,
 	e_mail_parser_text_html,
diff --git a/em-format/e-mail-parser-text-plain.c b/em-format/e-mail-parser-text-plain.c
index bbe7e6e..f0b34e4 100644
--- a/em-format/e-mail-parser-text-plain.c
+++ b/em-format/e-mail-parser-text-plain.c
@@ -25,7 +25,6 @@
 
 #include <e-util/e-util.h>
 
-#include "e-mail-format-extensions.h"
 #include "e-mail-inline-filter.h"
 #include "e-mail-parser-extension.h"
 #include "e-mail-part-utils.h"
@@ -33,6 +32,8 @@
 typedef EMailParserExtension EMailParserTextPlain;
 typedef EMailParserExtensionClass EMailParserTextPlainClass;
 
+GType e_mail_parser_text_plain_get_type (void);
+
 G_DEFINE_TYPE (
 	EMailParserTextPlain,
 	e_mail_parser_text_plain,
diff --git a/em-format/e-mail-parser.c b/em-format/e-mail-parser.c
index 762302b..359efe7 100644
--- a/em-format/e-mail-parser.c
+++ b/em-format/e-mail-parser.c
@@ -233,8 +233,7 @@ e_mail_parser_base_init (EMailParserClass *class)
 	class->extension_registry = g_object_new (
 		E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY, NULL);
 
-	e_mail_parser_internal_extensions_load (
-		E_MAIL_EXTENSION_REGISTRY (class->extension_registry));
+	e_mail_parser_extension_registry_load (class->extension_registry);
 
 	e_extensible_load_extensions (E_EXTENSIBLE (class->extension_registry));
 }
diff --git a/modules/audio-inline/e-mail-formatter-audio-inline.c b/modules/audio-inline/e-mail-formatter-audio-inline.c
index 235315a..7abcf93 100644
--- a/modules/audio-inline/e-mail-formatter-audio-inline.c
+++ b/modules/audio-inline/e-mail-formatter-audio-inline.c
@@ -43,18 +43,12 @@ typedef EExtension EMailFormatterAudioInlineLoader;
 typedef EExtensionClass EMailFormatterAudioInlineLoaderClass;
 
 GType e_mail_formatter_audio_inline_get_type (void);
-GType e_mail_formatter_audio_inline_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailFormatterAudioInline,
 	e_mail_formatter_audio_inline,
 	E_TYPE_MAIL_FORMATTER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailFormatterAudioInlineLoader,
-	e_mail_formatter_audio_inline_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *formatter_mime_types[] = {
 	"application/vnd.evolution.widget.audio-inline",
 	"audio/ac3",
@@ -329,44 +323,9 @@ e_mail_formatter_audio_inline_init (EMailFormatterExtension *extension)
 {
 }
 
-static void
-mail_formatter_audio_inline_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		formatter_mime_types,
-		e_mail_formatter_audio_inline_get_type ());
-}
-
-static void
-e_mail_formatter_audio_inline_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_formatter_audio_inline_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_FORMATTER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_formatter_audio_inline_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_formatter_audio_inline_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_formatter_audio_inline_type_register (GTypeModule *type_module)
 {
 	e_mail_formatter_audio_inline_register_type (type_module);
-	e_mail_formatter_audio_inline_loader_register_type (type_module);
 }
 
diff --git a/modules/audio-inline/e-mail-parser-audio-inline.c b/modules/audio-inline/e-mail-parser-audio-inline.c
index a4ef834..1ebbf90 100644
--- a/modules/audio-inline/e-mail-parser-audio-inline.c
+++ b/modules/audio-inline/e-mail-parser-audio-inline.c
@@ -45,18 +45,12 @@ typedef EExtension EMailParserAudioInlineLoader;
 typedef EExtensionClass EMailParserAudioInlineLoaderClass;
 
 GType e_mail_parser_audio_inline_get_type (void);
-GType e_mail_parser_audio_inline_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailParserAudioInline,
 	e_mail_parser_audio_inline,
 	E_TYPE_MAIL_PARSER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailParserAudioInlineLoader,
-	e_mail_parser_audio_inline_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *parser_mime_types[] = {
 	"audio/ac3",
 	"audio/x-ac3",
@@ -164,44 +158,9 @@ e_mail_parser_audio_inline_init (EMailParserExtension *extension)
 {
 }
 
-static void
-mail_parser_audio_inline_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		parser_mime_types,
-		e_mail_parser_audio_inline_get_type ());
-}
-
-static void
-e_mail_parser_audio_inline_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_parser_audio_inline_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_parser_audio_inline_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_parser_audio_inline_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_parser_audio_inline_type_register (GTypeModule *type_module)
 {
 	e_mail_parser_audio_inline_register_type (type_module);
-	e_mail_parser_audio_inline_loader_register_type (type_module);
 }
 
diff --git a/modules/itip-formatter/e-mail-formatter-itip.c b/modules/itip-formatter/e-mail-formatter-itip.c
index 6d5a3f1..500810b 100644
--- a/modules/itip-formatter/e-mail-formatter-itip.c
+++ b/modules/itip-formatter/e-mail-formatter-itip.c
@@ -37,9 +37,6 @@
 typedef EMailFormatterExtension EMailFormatterItip;
 typedef EMailFormatterExtensionClass EMailFormatterItipClass;
 
-typedef EExtension EMailFormatterItipLoader;
-typedef EExtensionClass EMailFormatterItipLoaderClass;
-
 GType e_mail_formatter_itip_get_type (void);
 GType e_mail_formatter_itip_loader_get_type (void);
 
@@ -48,11 +45,6 @@ G_DEFINE_DYNAMIC_TYPE (
 	e_mail_formatter_itip,
 	E_TYPE_MAIL_FORMATTER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailFormatterItipLoader,
-	e_mail_formatter_itip_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *formatter_mime_types[] = {
 	"text/calendar",
 	"application/ics",
@@ -166,43 +158,8 @@ e_mail_formatter_itip_init (EMailFormatterExtension *extension)
 {
 }
 
-static void
-mail_formatter_itip_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		formatter_mime_types,
-		e_mail_formatter_itip_get_type ());
-}
-
-static void
-e_mail_formatter_itip_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_formatter_itip_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_FORMATTER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_formatter_itip_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_formatter_itip_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_formatter_itip_type_register (GTypeModule *type_module)
 {
 	e_mail_formatter_itip_register_type (type_module);
-	e_mail_formatter_itip_loader_register_type (type_module);
 }
diff --git a/modules/itip-formatter/e-mail-parser-itip.c b/modules/itip-formatter/e-mail-parser-itip.c
index 5d2cb45..9e5ff46 100644
--- a/modules/itip-formatter/e-mail-parser-itip.c
+++ b/modules/itip-formatter/e-mail-parser-itip.c
@@ -50,18 +50,12 @@ typedef EExtension EMailParserItipLoader;
 typedef EExtensionClass EMailParserItipLoaderClass;
 
 GType e_mail_parser_itip_get_type (void);
-GType e_mail_parser_itip_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailParserItip,
 	e_mail_parser_itip,
 	E_TYPE_MAIL_PARSER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailParserItipLoader,
-	e_mail_parser_itip_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *parser_mime_types[] = {
 	"text/calendar",
 	"application/ics",
@@ -265,44 +259,9 @@ e_mail_parser_itip_init (EMailParserExtension *class)
 {
 }
 
-static void
-mail_parser_itip_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		parser_mime_types,
-		e_mail_parser_itip_get_type ());
-}
-
-static void
-e_mail_parser_itip_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_parser_itip_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_parser_itip_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_parser_itip_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_parser_itip_type_register (GTypeModule *type_module)
 {
 	e_mail_parser_itip_register_type (type_module);
-	e_mail_parser_itip_loader_register_type (type_module);
 }
 
diff --git a/modules/prefer-plain/e-mail-parser-prefer-plain.c b/modules/prefer-plain/e-mail-parser-prefer-plain.c
index dfe4b22..914b969 100644
--- a/modules/prefer-plain/e-mail-parser-prefer-plain.c
+++ b/modules/prefer-plain/e-mail-parser-prefer-plain.c
@@ -51,7 +51,6 @@ struct _EMailParserPreferPlainClass {
 };
 
 GType e_mail_parser_prefer_plain_get_type (void);
-GType e_mail_parser_prefer_plain_loader_get_type (void);
 
 enum {
 	PREFER_HTML,
@@ -64,11 +63,6 @@ G_DEFINE_DYNAMIC_TYPE (
 	e_mail_parser_prefer_plain,
 	E_TYPE_MAIL_PARSER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailParserPreferPlainLoader,
-	e_mail_parser_prefer_plain_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *parser_mime_types[] = {
 	"multipart/alternative",
 	"text/html",
@@ -505,44 +499,9 @@ e_mail_parser_prefer_plain_init (EMailParserPreferPlain *parser)
 	parser->show_suppressed = g_settings_get_boolean (parser->settings, "show-suppressed");
 }
 
-static void
-mail_parser_prefer_plain_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		parser_mime_types,
-		e_mail_parser_prefer_plain_get_type ());
-}
-
-static void
-e_mail_parser_prefer_plain_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_parser_prefer_plain_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_parser_prefer_plain_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_parser_prefer_plain_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_parser_prefer_plain_type_register (GTypeModule *type_module)
 {
 	e_mail_parser_prefer_plain_register_type (type_module);
-	e_mail_parser_prefer_plain_loader_register_type (type_module);
 }
 
diff --git a/modules/text-highlight/e-mail-formatter-text-highlight.c b/modules/text-highlight/e-mail-formatter-text-highlight.c
index ea4cb6c..5e8c15c 100644
--- a/modules/text-highlight/e-mail-formatter-text-highlight.c
+++ b/modules/text-highlight/e-mail-formatter-text-highlight.c
@@ -45,18 +45,12 @@ typedef EExtension EMailFormatterTextHighlightLoader;
 typedef EExtensionClass EMailFormatterTextHighlightLoaderClass;
 
 GType e_mail_formatter_text_highlight_get_type (void);
-GType e_mail_formatter_text_highlight_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailFormatterTextHighlight,
 	e_mail_formatter_text_highlight,
 	E_TYPE_MAIL_FORMATTER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailFormatterTextHighlightLoader,
-	e_mail_formatter_text_highlight_loader,
-	E_TYPE_EXTENSION)
-
 static gchar *
 get_default_font (void)
 {
@@ -390,44 +384,9 @@ e_mail_formatter_text_highlight_init (EMailFormatterExtension *extension)
 {
 }
 
-static void
-mail_formatter_text_highlight_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		get_mime_types (),
-		e_mail_formatter_text_highlight_get_type ());
-}
-
-static void
-e_mail_formatter_text_highlight_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_formatter_text_highlight_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_FORMATTER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_formatter_text_highlight_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_formatter_text_highlight_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_formatter_text_highlight_type_register (GTypeModule *type_module)
 {
 	e_mail_formatter_text_highlight_register_type (type_module);
-	e_mail_formatter_text_highlight_loader_register_type (type_module);
 }
 
diff --git a/modules/text-highlight/e-mail-parser-text-highlight.c b/modules/text-highlight/e-mail-parser-text-highlight.c
index 99d920f..28d1040 100644
--- a/modules/text-highlight/e-mail-parser-text-highlight.c
+++ b/modules/text-highlight/e-mail-parser-text-highlight.c
@@ -41,18 +41,12 @@ typedef EExtension EMailParserTextHighlightLoader;
 typedef EExtensionClass EMailParserTextHighlightLoaderClass;
 
 GType e_mail_parser_text_highlight_get_type (void);
-GType e_mail_parser_text_highlight_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailParserTextHighlight,
 	e_mail_parser_text_highlight,
 	E_TYPE_MAIL_PARSER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailParserTextHighlightLoader,
-	e_mail_parser_text_highlight_loader,
-	E_TYPE_EXTENSION)
-
 static gboolean
 empe_text_highlight_parse (EMailParserExtension *extension,
                            EMailParser *parser,
@@ -110,44 +104,9 @@ e_mail_parser_text_highlight_init (EMailParserExtension *extension)
 {
 }
 
-static void
-mail_parser_text_highlight_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		get_mime_types (),
-		e_mail_parser_text_highlight_get_type ());
-}
-
-static void
-e_mail_parser_text_highlight_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_parser_text_highlight_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_parser_text_highlight_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_parser_text_highlight_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_parser_text_highlight_type_register (GTypeModule *type_module)
 {
 	e_mail_parser_text_highlight_register_type (type_module);
-	e_mail_parser_text_highlight_loader_register_type (type_module);
 }
 
diff --git a/modules/tnef-attachment/e-mail-parser-tnef-attachment.c b/modules/tnef-attachment/e-mail-parser-tnef-attachment.c
index cc9d024..dc93b91 100644
--- a/modules/tnef-attachment/e-mail-parser-tnef-attachment.c
+++ b/modules/tnef-attachment/e-mail-parser-tnef-attachment.c
@@ -64,18 +64,12 @@ typedef EExtension EMailParserTnefAttachmentLoader;
 typedef EExtensionClass EMailParserTnefAttachmentLoaderClass;
 
 GType e_mail_parser_tnef_attachment_get_type (void);
-GType e_mail_parser_tnef_attachment_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailParserTnefAttachment,
 	e_mail_parser_tnef_attachment,
 	E_TYPE_MAIL_PARSER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailParserTnefAttachmentLoader,
-	e_mail_parser_tnef_attachment_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *parser_mime_types[] = {
 	"application/vnd.ms-tnef",
 	"application/ms-tnefl",
@@ -280,45 +274,10 @@ e_mail_parser_tnef_attachment_init (EMailParserTnefAttachment *extension)
 {
 }
 
-static void
-mail_parser_tnef_attachment_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		parser_mime_types,
-		e_mail_parser_tnef_attachment_get_type ());
-}
-
-static void
-e_mail_parser_tnef_attachment_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_parser_tnef_attachment_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_parser_tnef_attachment_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_parser_tnef_attachment_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_parser_tnef_attachment_type_register (GTypeModule *type_module)
 {
 	e_mail_parser_tnef_attachment_register_type (type_module);
-	e_mail_parser_tnef_attachment_loader_register_type (type_module);
 }
 
 void
diff --git a/modules/vcard-inline/e-mail-formatter-vcard-inline.c b/modules/vcard-inline/e-mail-formatter-vcard-inline.c
index 3032f23..bcced23 100644
--- a/modules/vcard-inline/e-mail-formatter-vcard-inline.c
+++ b/modules/vcard-inline/e-mail-formatter-vcard-inline.c
@@ -43,18 +43,12 @@ typedef EExtension EMailFormatterVCardInlineLoader;
 typedef EExtensionClass EMailFormatterVCardInlineLoaderClass;
 
 GType e_mail_formatter_vcard_inline_get_type (void);
-GType e_mail_formatter_vcard_inline_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailFormatterVCardInline,
 	e_mail_formatter_vcard_inline,
 	E_TYPE_MAIL_FORMATTER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailFormatterVCardInlineLoader,
-	e_mail_formatter_vcard_inline_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *formatter_mime_types[] = {
 	"text/vcard",
 	"text/x-vcard",
@@ -223,44 +217,9 @@ e_mail_formatter_vcard_inline_init (EMailFormatterExtension *extension)
 {
 }
 
-static void
-mail_formatter_vcard_inline_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		formatter_mime_types,
-		e_mail_formatter_vcard_inline_get_type ());
-}
-
-static void
-e_mail_formatter_vcard_inline_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_formatter_vcard_inline_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_FORMATTER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_formatter_vcard_inline_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_formatter_vcard_inline_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_formatter_vcard_inline_type_register (GTypeModule *type_module)
 {
 	e_mail_formatter_vcard_inline_register_type (type_module);
-	e_mail_formatter_vcard_inline_loader_register_type (type_module);
 }
 
diff --git a/modules/vcard-inline/e-mail-parser-vcard-inline.c b/modules/vcard-inline/e-mail-parser-vcard-inline.c
index 00fed5b..e59c254 100644
--- a/modules/vcard-inline/e-mail-parser-vcard-inline.c
+++ b/modules/vcard-inline/e-mail-parser-vcard-inline.c
@@ -54,18 +54,12 @@ typedef EExtension EMailParserVCardInlineLoader;
 typedef EExtensionClass EMailParserVCardInlineLoaderClass;
 
 GType e_mail_parser_vcard_inline_get_type (void);
-GType e_mail_parser_vcard_inline_loader_get_type (void);
 
 G_DEFINE_DYNAMIC_TYPE (
 	EMailParserVCardInline,
 	e_mail_parser_vcard_inline,
 	E_TYPE_MAIL_PARSER_EXTENSION)
 
-G_DEFINE_DYNAMIC_TYPE (
-	EMailParserVCardInlineLoader,
-	e_mail_parser_vcard_inline_loader,
-	E_TYPE_EXTENSION)
-
 static const gchar *parser_mime_types[] = {
 	"text/vcard",
 	"text/x-vcard",
@@ -387,44 +381,9 @@ e_mail_parser_vcard_inline_init (EMailParserExtension *extension)
 {
 }
 
-static void
-mail_parser_vcard_inline_loader_constructed (GObject *object)
-{
-	EExtensible *extensible;
-
-	extensible = e_extension_get_extensible (E_EXTENSION (object));
-
-	e_mail_extension_registry_add_extension (
-		E_MAIL_EXTENSION_REGISTRY (extensible),
-		parser_mime_types,
-		e_mail_parser_vcard_inline_get_type ());
-}
-
-static void
-e_mail_parser_vcard_inline_loader_class_init (EExtensionClass *class)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (class);
-	object_class->constructed = mail_parser_vcard_inline_loader_constructed;
-
-	class->extensible_type = E_TYPE_MAIL_PARSER_EXTENSION_REGISTRY;
-}
-
-static void
-e_mail_parser_vcard_inline_loader_class_finalize (EExtensionClass *class)
-{
-}
-
-static void
-e_mail_parser_vcard_inline_loader_init (EExtension *extension)
-{
-}
-
 void
 e_mail_parser_vcard_inline_type_register (GTypeModule *type_module)
 {
 	e_mail_parser_vcard_inline_register_type (type_module);
-	e_mail_parser_vcard_inline_loader_register_type (type_module);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]