/* static */ nsresult EmbedPrivate::RegisterAppComponents(void) { nsCOMPtr<nsIComponentRegistrar> cr; nsresult rv = NS_GetComponentRegistrar(getter_AddRefs(cr)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIComponentManager> cm; rv = NS_GetComponentManager (getter_AddRefs (cm)); NS_ENSURE_SUCCESS (rv, rv); for (int i = 0; i < sNumAppComps; ++i) { nsCOMPtr<nsIGenericFactory> componentFactory; rv = NS_NewGenericFactory(getter_AddRefs(componentFactory), &(sAppComps[i])); if (NS_FAILED(rv)) { NS_WARNING("Unable to create factory for component"); continue; // don't abort registering other components } rv = cr->RegisterFactory(sAppComps[i].mCID, sAppComps[i].mDescription, sAppComps[i].mContractID, componentFactory); NS_ASSERTION(NS_SUCCEEDED(rv), "Unable to register factory for component"); // Call the registration hook of the component, if any if (sAppComps[i].mRegisterSelfProc) { rv = sAppComps[i].mRegisterSelfProc(cm, nsnull, nsnull, nsnull, &(sAppComps[i])); NS_ASSERTION(NS_SUCCEEDED(rv), "Unable to self-register component"); } } return rv; }
JSBool xpc_InitJSxIDClassObjects() { if(gClassObjectsWereInited) return JS_TRUE; nsresult rv = NS_OK; if(!NS_CLASSINFO_NAME(nsJSIID)) { nsCOMPtr<nsIGenericFactory> factory; rv = NS_NewGenericFactory(getter_AddRefs(factory), &CI_nsJSIID); if(NS_FAILED(rv)) goto return_failure; rv = factory->QueryInterface(NS_GET_IID(nsIClassInfo), (void**)&NS_CLASSINFO_NAME(nsJSIID)); if(NS_FAILED(rv)) goto return_failure; } if(!NS_CLASSINFO_NAME(nsJSCID)) { nsCOMPtr<nsIGenericFactory> factory; rv = NS_NewGenericFactory(getter_AddRefs(factory), &CI_nsJSCID); if(NS_FAILED(rv)) goto return_failure; rv = factory->QueryInterface(NS_GET_IID(nsIClassInfo), (void**)&NS_CLASSINFO_NAME(nsJSCID)); if(NS_FAILED(rv)) goto return_failure; } gSharedScriptableHelperForJSIID = new SharedScriptableHelperForJSIID(); if(!gSharedScriptableHelperForJSIID) goto return_failure; NS_ADDREF(gSharedScriptableHelperForJSIID); gClassObjectsWereInited = JS_TRUE; return JS_TRUE; return_failure: return JS_FALSE; }
int Init_nsUnknownContentTypeHandler_Factory( ) { nsresult rv; // create a generic factory for UnkHandler nsCOMPtr<nsIGenericFactory> factory; rv = NS_NewGenericFactory( getter_AddRefs(factory), info ); if (NS_FAILED(rv)) return rv; // register this factory with the component registrar. nsCOMPtr<nsIComponentRegistrar> registrar; rv = NS_GetComponentRegistrar(getter_AddRefs(registrar)); if (NS_FAILED(rv)) return rv; rv = registrar->RegisterFactory( kCID, "nsUnknownContentTypeHandler", NS_IHELPERAPPLAUNCHERDLG_CONTRACTID, factory); return NS_OK; }