2 * (C) Copyright 2008 Jeremy Maitin-Shepard
4 * Use, modification, and distribution are subject to the terms specified in the
8 // Register the Conkeror download_manager_ui, which doesn't really do anything at all
10 const classID = Components.ID("{7770E0D0-C4A0-11DC-95FF-0800200C9A66}");
11 const classDescription = "Conkeror Download Manager UI";
12 const contractID = "@mozilla.org/download-manager-ui;1";
16 /* This firstTime trick is used to delay the registration. This
17 * is needed to ensure it overrides the built-in component for the
18 * same contractID (the built-in nsHelperAppDlg.js being
19 * overridden uses this as well, and as a result we have to). */
21 /* http://dietrich.ganx4.com/blog/?p=221#comment-14 */
22 /* https://bugzilla.mozilla.org/show_bug.cgi?id=253125 */
23 /* https://bugzilla.mozilla.org/show_bug.cgi?id=253136 */
25 /* We can't use XPCOMUtils because that doesn't provide this delay
30 // registerSelf: Register this component.
31 registerSelf: function (compMgr, fileSpec, location, type) {
33 this.firstTime = false;
34 throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN;
36 compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
38 compMgr.registerFactoryLocation( classID,
46 // getClassObject: Return this component's factory object.
47 getClassObject: function (compMgr, cid, iid) {
48 if (!cid.equals(classID)) {
49 throw Components.results.NS_ERROR_NO_INTERFACE;
52 if (!iid.equals(Components.interfaces.nsIFactory)) {
53 throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
61 createInstance: function (outer, iid) {
63 throw Components.results.NS_ERROR_NO_AGGREGATION;
65 /* Return an instance of the Conkeror-scope download_helper object. */
66 var conkeror = Components.classes["@conkeror.mozdev.org/application;1"].getService().wrappedJSObject;
67 return (new conkeror.download_manager_ui()).QueryInterface(iid);
71 canUnload: function(compMgr) { return true; }
74 function NSGetModule(compMgr, fileSpec) {