Ok, seems the XPCOM initialization method NS_InitXPCOM2/NS_InitXPCOM3
get's called twice when starting up. I've changed the code in the
viewer project to only get called once.

Change made to nsViewerApp.cpp:

nsresult
nsViewerApp::SetupRegistry()
{
  nsresult rv;

  nsCOMPtr<nsIServiceManager> servManager;

  rv = NS_GetServiceManager(getter_AddRefs(servManager));
  //rv = NS_InitXPCOM3(getter_AddRefs(servManager), nsnull, nsnull,
  //                   kPStaticModules, kStaticModuleCount);

  nsCOMPtr<nsIComponentRegistrar> registrar =
do_QueryInterface(servManager);
  NS_ASSERTION(registrar, "No nsIComponentRegistrar from get service.
see dougt");
  rv = registrar->AutoRegister(nsnull);

  // Register our browser window factory
  nsIFactory* bwf;
  NS_NewXPBaseWindowFactory(&bwf);
  registrar->RegisterFactory(kXPBaseWindowCID, 0, 0, bwf);
  NS_RELEASE(bwf);

  // register the cookie manager
  nsCOMPtr<nsICookieService> cookieService =
           do_GetService(kCookieServiceCID, &rv);
  if (NS_FAILED(rv) || (nsnull == cookieService)) {
#ifdef DEBUG
    printf("Unable to instantiate Cookie Manager\n");
#endif
  }

  return NS_OK;
}

Now I just have to figure out how to submit a defect change request...

Anywho, thanks for reading, hope this helps somebody else.

Stuart

_______________________________________________
mozilla-layout mailing list
[email protected]
http://mail.mozilla.org/listinfo/mozilla-layout

Reply via email to