Ejemplo n.º 1
0
/* 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;
}
Ejemplo n.º 2
0
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;
	}