PRUnichar *u_url = URL.ToNewUnicode();
PRUnichar *u_url = ToNewUnicode(URL);
int main(int argc, char **argv) {  XtAppContext  app_context = nsnull;  XtSetLanguageProc(NULL, NULL, NULL);  sgTopLevel = XtAppInitialize(&app_context,   // app_context_return                              "Mozilla",      // application_class                              NULL,           // options                              0,              // num_options                              &argc,          // argc_in_out                              argv,           // argv_in_out                              NULL,           // fallback_resources                              NULL,           // args                              0);             // num_args    // XXX this is a hack, will replace with a service RSN  xlib_rgb_init(XtDisplay(sgTopLevel), XtScreen(sgTopLevel));    XtVaSetValues(sgTopLevel,				XmNwidth,  500,				XmNheight, 500,				NULL);  XtRealizeWidget(sgTopLevel);  //////////////////////////////////////////////////////////////////////  //  // Toolkit Service setup  //   // Note: This must happend before NS_SetupRegistry() is called so  //       that the toolkit specific xpcom components can be registered  //       as needed.  //  //////////////////////////////////////////////////////////////////////  nsIUnixToolkitService * unixToolkitService = nsnull;      nsresult rv =	nsComponentManager::CreateInstance(kCUnixToolkitServiceCID,									   nsnull,									   NS_GET_IID(nsIUnixToolkitService),									   (void **) &unixToolkitService);    NS_ASSERTION(NS_SUCCEEDED(rv),"Cannot obtain unix toolkit service.");  if (!NS_SUCCEEDED(rv))	return 1;  // Force the toolkit into "xlib" mode regardless of MOZ_TOOLKIT  unixToolkitService->SetToolkitName("xlib");  NS_RELEASE(unixToolkitService);  //////////////////////////////////////////////////////////////////////  // End toolkit service setup  //////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////  //  // Setup the registry  //  //////////////////////////////////////////////////////////////////////  NS_SetupRegistry();  printf("Creating event queue.\n");      nsIEventQueueService * eventQueueService = nsnull;  nsIEventQueue * eventQueue = nsnull;    // Create the Event Queue for the UI thread...    rv = nsServiceManager::GetService(kEventQueueServiceCID,									kIEventQueueServiceIID,									(nsISupports **)&eventQueueService);    NS_ASSERTION(NS_SUCCEEDED(rv),"Could not obtain the event queue service.");  if (!NS_SUCCEEDED(rv))	return 1;  rv = eventQueueService->CreateThreadEventQueue();    NS_ASSERTION(NS_SUCCEEDED(rv),"Could not create the event queue for the the thread.");    if (!NS_SUCCEEDED(rv))	return 1;    rv = eventQueueService->GetThreadEventQueue(NS_CURRENT_THREAD, &eventQueue);    NS_ASSERTION(NS_SUCCEEDED(rv),"Could not get the newly created thread event queue.\n");    if (!NS_SUCCEEDED(rv))	return 1;    NS_RELEASE(eventQueueService);    rv = nsServiceManager::GetService(kWindowServiceCID,				    kWindowServiceIID,				    (nsISupports **)&gsWindowService);  NS_ASSERTION(NS_SUCCEEDED(rv),"Couldn't obtain window service\n");  if (!NS_SUCCEEDED(rv))	return 1;  gsWindowService->SetWindowCreateCallback(WindowCreateCallback);  gsWindowService->SetWindowDestroyCallback(WindowDestroyCallback);  XtAppAddInput(app_context,                eventQueue->GetEventQueueSelectFD(),                (XtPointer) XtInputReadMask,                 event_processor_callback,                 eventQueue);  rv = nsRepository::CreateInstance(kWebShellCID, nsnull,				    kIWebShellIID,				    (void**)&sgWebShell);  NS_ASSERTION(NS_SUCCEEDED(rv),"Cannot create WebShell.\n");  if (!NS_SUCCEEDED(rv))	return 1;  sgWebShell->Init((nsNativeWidget *) XtWindow(sgTopLevel),				   0, 0,				   500, 500);  gsWindowService->GetEventDispatcher(&gsEventDispatcher);  rv = nsComponentManager::CreateInstance(kPrefCID, NULL, kIPrefIID,					  (void **) &sgPrefs);  if (NS_OK != rv) {    printf("failed to get prefs instance\n");    return rv;  }    sgPrefs->StartUp();  sgPrefs->ReadUserPrefs();  sgWebShell->SetPrefs(sgPrefs);  sgWebShell->Show();    char *url = "http://www.slashdot.org/";  nsString URL(url);  PRUnichar *u_url = URL.ToNewUnicode();  sgWebShell->LoadURL(u_url);    XtPopup(sgTopLevel,XtGrabNone);  XEvent event;  for (;;)   {    XtAppNextEvent(app_context, &event);	    XtDispatchEvent(&event);  }   return 0;}