Late last week, I checked in conversions of nsIEventQueue.h and nsIEventQueueService.h to .idl files, meaning that typelibs now get generated for them. nsIEventQueueService::getSpecialEventQueue() was also added, so that one can now get the current or UI threads from JavaScript (the non-scriptable resolveEventQueue is now deprecated). The upshot of all this is that it's now possible to use nsISupports proxies from JavaScript (or any other language that's suitably hooked up to IDL). Something like (eg) an RDF datasource can run mostly on some thread other than the UI thread and call results back to the UI thread via nsISupports proxies. Note that I didn't change any type signatures here, so only about 30-40% of the event queue related methods are currently scriptable. At some point in the future, it would probably be reasonable to change the various types to make many more (or even all?) of the methods scriptable. Dan --
