2 * (C) Copyright 2008 Jeremy Maitin-Shepard
3 * (C) Copyright 2011 John Foerch
5 * Use, modification, and distribution are subject to the terms specified in the
9 // Register the Conkeror download_helper
11 const classID = Components.ID("{74FCB100-B972-11DC-95FF-0800200C9A66}");
12 const classDescription = "Unknown Content Type Dialog";
13 const contractID = "@mozilla.org/helperapplauncherdialog;1";
17 /* This firstTime trick is used to delay the registration. This
18 * is needed to ensure it overrides the built-in component for the
19 * same contractID (the built-in nsHelperAppDlg.js being
20 * overridden uses this as well, and as a result we have to). */
22 /* http://dietrich.ganx4.com/blog/?p=221#comment-14 */
23 /* https://bugzilla.mozilla.org/show_bug.cgi?id=253125 */
24 /* https://bugzilla.mozilla.org/show_bug.cgi?id=253136 */
26 /* We can't use XPCOMUtils because that doesn't provide this delay
31 // registerSelf: Register this component.
32 registerSelf: function (compMgr, fileSpec, location, type) {
33 if (this.prevTimes < 2) {
35 throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN;
37 compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
39 compMgr.registerFactoryLocation( classID,
47 // getClassObject: Return this component's factory object.
48 getClassObject: function (compMgr, cid, iid) {
49 if (!cid.equals(classID)) {
50 throw Components.results.NS_ERROR_NO_INTERFACE;
53 if (!iid.equals(Components.interfaces.nsIFactory)) {
54 throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
62 createInstance: function (outer, iid) {
64 throw Components.results.NS_ERROR_NO_AGGREGATION;
66 /* Return an instance of the Conkeror-scope download_helper object. */
67 var conkeror = Components.classes["@conkeror.mozdev.org/application;1"].getService().wrappedJSObject;
68 return (new conkeror.download_helper()).QueryInterface(iid);
72 canUnload: function(compMgr) { return true; }
75 function NSGetFactory (cid) { // XULRunner 2.0
76 return module.factory;
79 function NSGetModule(compMgr, fileSpec) {