The Mozilla Toolkit is a set of APIs, built on top of Gecko, which provide advanced services to XUL applications. These services include Profile Management, Chrome Registration, Browsing History, Extension and Theme Management, Application Update Service, and Safe Mode. (More info)
We need more consistent semantics for errors. What's the right way to flag them (return value or exceptions)? Who can throw what kind of errors? Who can catch exceptions and how (e.g., can we have naked exception handlers)?