aboutsummaryrefslogtreecommitdiffstats
path: root/embed/mozilla/MozRegisterComponents.cpp
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2004-04-18 18:24:48 +0800
committerChristian Persch <chpe@src.gnome.org>2004-04-18 18:24:48 +0800
commit4718a00482f6b2c952dd1cc6cd5abf20eda3365b (patch)
treeb353ce120bb60f1d2ea21f8c32b3fb8e2e707300 /embed/mozilla/MozRegisterComponents.cpp
parent9bdc474dcf39663bf28d5d7458d23aa71345a936 (diff)
downloadgsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.tar
gsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.tar.gz
gsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.tar.bz2
gsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.tar.lz
gsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.tar.xz
gsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.tar.zst
gsoc2013-epiphany-4718a00482f6b2c952dd1cc6cd5abf20eda3365b.zip
Don't override nsWebBrowserContentPolicy contract ID, just register our
2004-04-18 Christian Persch <chpe@cvs.gnome.org> * embed/mozilla/EphyContentPolicy.h: * embed/mozilla/MozRegisterComponents.cpp: Don't override nsWebBrowserContentPolicy contract ID, just register our own content policy with the category manager.
Diffstat (limited to 'embed/mozilla/MozRegisterComponents.cpp')
-rw-r--r--embed/mozilla/MozRegisterComponents.cpp46
1 files changed, 37 insertions, 9 deletions
diff --git a/embed/mozilla/MozRegisterComponents.cpp b/embed/mozilla/MozRegisterComponents.cpp
index 692fc1710..308098460 100644
--- a/embed/mozilla/MozRegisterComponents.cpp
+++ b/embed/mozilla/MozRegisterComponents.cpp
@@ -44,14 +44,12 @@
#endif
#include <nsIGenericFactory.h>
#include <nsIComponentRegistrar.h>
+#include <nsICategoryManager.h>
#include <nsCOMPtr.h>
#include <nsILocalFile.h>
#include <nsNetCID.h>
-#if MOZILLA_SNAPSHOT > 13
-#include <nsDocShellCID.h>
-#endif
-#include <glib.h>
+#include <glib/gmessages.h>
NS_GENERIC_FACTORY_CONSTRUCTOR(EphyAboutRedirector)
NS_GENERIC_FACTORY_CONSTRUCTOR(MozDownload)
@@ -74,6 +72,22 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(GtkNSSClientAuthDialogs)
NS_GENERIC_FACTORY_CONSTRUCTOR(GtkNSSDialogs)
NS_GENERIC_FACTORY_CONSTRUCTOR(GtkNSSKeyPairDialogs)
#endif
+
+static NS_METHOD
+RegisterContentPolicy(nsIComponentManager *aCompMgr, nsIFile *aPath,
+ const char *registryLocation, const char *componentType,
+ const nsModuleComponentInfo *info)
+{
+ nsCOMPtr<nsICategoryManager> cm =
+ do_GetService(NS_CATEGORYMANAGER_CONTRACTID);
+ NS_ENSURE_TRUE (cm, NS_ERROR_FAILURE);
+
+ nsXPIDLCString oldval;
+ return cm->AddCategoryEntry("content-policy",
+ EPHY_CONTENT_POLICY_CONTRACTID,
+ EPHY_CONTENT_POLICY_CONTRACTID,
+ PR_TRUE, PR_TRUE, getter_Copies (oldval));
+}
static const nsModuleComponentInfo sAppComps[] = {
#if MOZILLA_SNAPSHOT < 12
@@ -208,12 +222,11 @@ static const nsModuleComponentInfo sAppComps[] = {
EPHY_CONTENT_POLICY_CLASSNAME,
EPHY_CONTENT_POLICY_CID,
EPHY_CONTENT_POLICY_CONTRACTID,
- EphyContentPolicyConstructor
- }
+ EphyContentPolicyConstructor,
+ RegisterContentPolicy
+ },
};
-static const int sNumAppComps = sizeof(sAppComps) / sizeof(nsModuleComponentInfo);
-
static const nsModuleComponentInfo sFtpComps = {
G_FTP_PROTOCOL_CLASSNAME,
G_FTP_PROTOCOL_CID,
@@ -237,7 +250,11 @@ mozilla_register_components (void)
NS_GetComponentRegistrar(getter_AddRefs(cr));
NS_ENSURE_TRUE (cr, FALSE);
- for (int i = 0; i < sNumAppComps; i++)
+ nsCOMPtr<nsIComponentManager> cm;
+ NS_GetComponentManager (getter_AddRefs (cm));
+ NS_ENSURE_TRUE (cm, FALSE);
+
+ for (guint i = 0; i < G_N_ELEMENTS (sAppComps); i++)
{
nsCOMPtr<nsIGenericFactory> componentFactory;
rv = NS_NewGenericFactory(getter_AddRefs(componentFactory),
@@ -260,6 +277,17 @@ mozilla_register_components (void)
ret = FALSE;
}
+
+ if (sAppComps[i].mRegisterSelfProc)
+ {
+ rv = sAppComps[i].mRegisterSelfProc (cm, nsnull, nsnull, nsnull, &sAppComps[i]);
+
+ if (NS_FAILED (rv))
+ {
+ g_warning ("Failed to register-self for %s\n", sAppComps[i].mDescription);
+ ret = FALSE;
+ }
+ }
}
return ret;