Starting Mozilla from XPCShell (revisited)
[email protected] (Ugen)
| Newsgroups | gmane.comp.mozilla.devel.xpcom |
|---|---|
| Organization | http://groups.google.com/ |
| Message-ID | <[email protected]> |
A while ago in a thread in this group the following code has been suggested to start mozilla from xpcshell: ----------- 8<--------------- cut here ----------- 8< ------------- var EventQClass = Components.classes['@mozilla.org/event-queue-service;1']; var EventQObj = EventQClass.getService(Components.interfaces.nsIEventQueueService); EventQObj.createThreadEventQueue(); var AppShellClass = Components.classes['@mozilla.org/appshell/appShellService;1']; var AppShellObj = AppShellClass.getService(Components.interfaces.nsIAppShellService); var URLClass = Components.classes['@mozilla.org/network/standard-url;1']; var URLObj = URLClass.createInstance(Components.interfaces.nsIURL); URLObj.scheme="file"; URLObj.path="/tmp/test.xul"; AppShellObj.Initialize(null,null); var test = new Object(); toto = AppShellObj.CreateTopLevelWindow(null,URLObj, true,true, Components.interfaces.nsIWebBrowserChrome.CHROME_ALL, 640,480,test); AppShellObj.Run(); ----------- 8<--------------- cut here ----------- 8< ------------- It seemed to work for some people judging by discussion. However, here is what i get with my freshly compiled mozilla-1.0 a) If i run the code as provided i get: :uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIURL.scheme]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: /tmp/test.js :: <TOP_LEVEL> :: line 14" data: no] b) removing URLObj.scheme="file" gets me just a bit further: TypeError: AppShellObj.Initialize is not a function Well, i can only assume that the provided interface to AppShell has changed or may be i need to use another object alltogether? In a nutshell, i will need to create an application here where i will be able to load and control mozilla from xpcshell using javascript or, ideally, using Python XPCOM (but that's for later). Advice?