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
) {