From belaviyo at gmail.com Sun Feb 1 05:10:16 2009 From: belaviyo at gmail.com (joe ertaba) Date: Sun, 1 Feb 2009 16:40:16 +0330 Subject: [Project_owners] XPCOM call local function In-Reply-To: <498498C9.6080005@gmail.com> References: <23d9f6b20901301222o42bdd6b2rc480276ac3303afe@mail.gmail.com> <498498C9.6080005@gmail.com> Message-ID: <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> Thanks Anton Second method looks great, but I have few problems with it or you may implement any interface in your extension's object, it may be > somethink like > > // xpcom .idl > ... > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > Is it possible to declare object variable into the idl file? something like interface YourComponent: nsISupports { void init (in object obj); }; As I think it doesnt mean to declare object in idl! so I should use your trick, but I think I should reverse them, something like // xpcom .idl ... interface YourComponentCallback: nsISupports { ... void foo (); ... }; interface YourComponent: nsISupports { ... void init (in YourComponentCallback obj); ... }; > > // xpcom > ... > extobject: null, > ... > init: function (obj) { this. extobject = obj; }, > ... > bar: function () { this. extobject. foo (); }, // call extension's function > ... > > // extension > var yourextensionobject = > { > ... > init: function () { > var mycomponent = Components. classes ["@yourcomponent.cid"]. > createInstance (Components. interfaces. YourComponent); > mycomponent. init (this); > }, > ... > foo: function () { ... }, > ... > QueryIntrface: function (iid) > { > if ((!iid. equals (Components. interfaces. nsISupprots) && (!iid. equals > (Components. interfaces. nsIYourComponentCallback)) Components. results. > NS_ERROR_NO_INTERFACE; > return this; > } I don't exactly know why I need QueryIntrface here in my extension js file beside in component, if it helps to declare object (YourComponentCallback) then is it enough or some other things also needed (in xpcom we need lots of other thing like Factories, Modules,... ) Maybe I am somehow confized! because I never see idl & QueryIntrface for normal js (not compont) Would you please give me a sample extension file or at least some toturial which explain these concepts :) Thanks in advance Joe -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonglv at gmail.com Sun Feb 1 12:32:36 2009 From: antonglv at gmail.com (Anton Glazatov) Date: Mon, 02 Feb 2009 03:32:36 +0700 Subject: [Project_owners] XPCOM call local function In-Reply-To: <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> References: <23d9f6b20901301222o42bdd6b2rc480276ac3303afe@mail.gmail.com> <498498C9.6080005@gmail.com> <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> Message-ID: <498606E4.8000601@gmail.com> >> Is it possible to declare object variable into the idl file? No, it isn't possible. Component method's argument should implement any interface. >> but I think I should reverse them, something like Yes, you are right. >> I don't exactly know why I need QueryIntrface here in my extension js file beside in component If you will use wrappedJSObject in your component constructor (see here: https://developer.mozilla.org/en/How_to_Build_an_XPCOM_Component_in_Javascript), you need not to define extra interface for callback. >> Would you please give me a sample extension file You can see attached files. The ext1 doesn't use wrappedJSObject, and ext2 use wrappedJSObject. Btw, there is third way to call extension's function from xpcom component - you may use global notifications (see nsIObserverService / nsIObserver). joe ertaba wrote: > Thanks Anton > > Second method looks great, but I have few problems with it > > > or you may implement any interface in your extension's object, it > may be somethink like > > // xpcom .idl > ... > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > > > > Is it possible to declare object variable into the idl file? > something like > > interface YourComponent: nsISupports { void init (in object obj); }; > > As I think it doesnt mean to declare object in idl! so I should use > your trick, but I think I should reverse them, something like > > // xpcom .idl > ... > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > > > // xpcom > ... > extobject: null, > ... > init: function (obj) { this. extobject = obj; }, > ... > bar: function () { this. extobject. foo (); }, // call extension's > function > ... > > // extension > var yourextensionobject = > { > ... > init: function () { > var mycomponent = Components. classes ["@yourcomponent.cid"]. > createInstance (Components. interfaces. YourComponent); > mycomponent. init (this); > }, > ... > foo: function () { ... }, > ... > QueryIntrface: function (iid) > { > if ((!iid. equals (Components. interfaces. nsISupprots) && > (!iid. equals (Components. interfaces. nsIYourComponentCallback)) > Components. results. NS_ERROR_NO_INTERFACE; > return this; > } > > > I don't exactly know why I need QueryIntrface here in my extension js > file beside in component, if it helps to declare object > (YourComponentCallback) then is it enough or some other things also > needed (in xpcom we need lots of other thing like Factories, Modules,... ) > > Maybe I am somehow confized! because I never see idl & QueryIntrface > for normal js (not compont) > > Would you please give me a sample extension file or at least some > toturial which explain these concepts :) > > Thanks in advance > Joe > > ------------------------------------------------------------------------ > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > -------------- next part -------------- A non-text attachment was scrubbed... Name: ext2.xpi Type: application/x-xpinstall Size: 3098 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ext1.xpi Type: application/x-xpinstall Size: 3188 bytes Desc: not available URL: From silfreed at silfreed.net Sun Feb 1 18:58:42 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Sun, 01 Feb 2009 21:58:42 -0500 Subject: [Project_owners] Updated project membership pages and new user overview page In-Reply-To: <92c3c29d0901312133g57b6aff4v95fb37eff762ae97@mail.gmail.com> References: <49836675.1070409@silfreed.net> <92c3c29d0901312133g57b6aff4v95fb37eff762ae97@mail.gmail.com> Message-ID: <49866162.2020209@silfreed.net> Wallace Araujo wrote: > when I can work in the project? > If you're talking about your mozlan project, it should be all setup for you. Feel free to contact me off-list if you need some help getting started. -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From belaviyo at gmail.com Mon Feb 2 01:25:33 2009 From: belaviyo at gmail.com (joe ertaba) Date: Mon, 2 Feb 2009 12:55:33 +0330 Subject: [Project_owners] XPCOM call local function In-Reply-To: <498606E4.8000601@gmail.com> References: <23d9f6b20901301222o42bdd6b2rc480276ac3303afe@mail.gmail.com> <498498C9.6080005@gmail.com> <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> <498606E4.8000601@gmail.com> Message-ID: <23d9f6b20902020125l76015dcdr3cb18e3116f3d593@mail.gmail.com> Thank you very much Anton, examples helps me a lot. In order for future reference for other developers I have one modification in (/components/ext1component.js) for both ext1 & ext2 instead of: function ext1Component () { this. wrappedJSObject = this; } ext1Component. prototype = { QueryInterface: function (iid) { if (!iid. equals (Components. interfaces. ext1Component) && !iid. equals (Components. interfaces. nsISupports)) throw Components. results. NS_ERROR_NO_INTERFACE; return this; }, _obj: null, init: function (obj) { this. _obj = obj; // ... this. _obj. foo (); } }; use this one: *var _obj;* function ext1Component () { this. wrappedJSObject = this; } ext1Component. prototype = { QueryInterface: function (iid) { if (!iid. equals (Components. interfaces. ext1Component) && !iid. equals (Components. interfaces. nsISupports)) throw Components. results. NS_ERROR_NO_INTERFACE; return this; }, init: function (obj) { * _obj = obj;* // ... *_obj. foo ();* } }; In this case _obj. foo (); can be used in other functions in ext1Component too, in original case this._obj will be null if it is used in other functions than init() -Joe On Mon, Feb 2, 2009 at 12:02 AM, Anton Glazatov wrote: > >> Is it possible to declare object variable into the idl file? > No, it isn't possible. Component method's argument should implement any > interface. > > >> but I think I should reverse them, something like > Yes, you are right. > > >> I don't exactly know why I need QueryIntrface here in my extension js > file beside in component > If you will use wrappedJSObject in your component constructor (see here: > https://developer.mozilla.org/en/How_to_Build_an_XPCOM_Component_in_Javascript), > you need not to define extra interface for callback. > > >> Would you please give me a sample extension file > You can see attached files. The ext1 doesn't use wrappedJSObject, and ext2 > use wrappedJSObject. > > Btw, there is third way to call extension's function from xpcom component - > you may use global notifications (see nsIObserverService / nsIObserver). > > joe ertaba wrote: > >> Thanks Anton >> >> Second method looks great, but I have few problems with it >> >> >> or you may implement any interface in your extension's object, it >> may be somethink like >> >> // xpcom .idl >> ... >> interface YourComponent: nsISupports >> { >> ... >> void init (in YourComponentCallback obj); >> ... >> }; >> >> interface YourComponentCallback: nsISupports >> { >> ... >> void foo (); >> ... >> }; >> >> >> >> Is it possible to declare object variable into the idl file? >> something like >> >> interface YourComponent: nsISupports { void init (in object obj); }; >> >> As I think it doesnt mean to declare object in idl! so I should use your >> trick, but I think I should reverse them, something like >> >> // xpcom .idl >> ... >> >> interface YourComponentCallback: nsISupports >> { >> ... >> void foo (); >> ... >> }; >> >> interface YourComponent: nsISupports >> { >> ... >> void init (in YourComponentCallback obj); >> ... >> }; >> >> >> // xpcom >> ... >> extobject: null, >> ... >> init: function (obj) { this. extobject = obj; }, >> ... >> bar: function () { this. extobject. foo (); }, // call extension's >> function >> ... >> >> // extension >> var yourextensionobject = >> { >> ... >> init: function () { >> var mycomponent = Components. classes ["@yourcomponent.cid"]. >> createInstance (Components. interfaces. YourComponent); >> mycomponent. init (this); >> }, >> ... >> foo: function () { ... }, >> ... >> QueryIntrface: function (iid) >> { >> if ((!iid. equals (Components. interfaces. nsISupprots) && >> (!iid. equals (Components. interfaces. nsIYourComponentCallback)) >> Components. results. NS_ERROR_NO_INTERFACE; >> return this; >> } >> >> >> I don't exactly know why I need QueryIntrface here in my extension js file >> beside in component, if it helps to declare object (YourComponentCallback) >> then is it enough or some other things also needed (in xpcom we need lots of >> other thing like Factories, Modules,... ) >> >> Maybe I am somehow confized! because I never see idl & QueryIntrface for >> normal js (not compont) >> >> Would you please give me a sample extension file or at least some toturial >> which explain these concepts :) >> >> Thanks in advance >> Joe >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Project_owners mailing list >> Project_owners at mozdev.org >> https://www.mozdev.org/mailman/listinfo/project_owners >> >> > > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From belaviyo at gmail.com Mon Feb 2 01:30:23 2009 From: belaviyo at gmail.com (joe ertaba) Date: Mon, 2 Feb 2009 13:00:23 +0330 Subject: [Project_owners] Saving another url by pressing bookmaks button in addressbar Message-ID: <23d9f6b20902020130x1cc5d286ufaba093dab419adf@mail.gmail.com> Hi I want to know if it is possible to change default url of page in some way that addressbar show original address but when user try to bookmark it something else will be saved Joe- -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonglv at gmail.com Mon Feb 2 03:50:33 2009 From: antonglv at gmail.com (Anton Glazatov) Date: Mon, 02 Feb 2009 18:50:33 +0700 Subject: [Project_owners] XPCOM call local function In-Reply-To: <23d9f6b20902020125l76015dcdr3cb18e3116f3d593@mail.gmail.com> References: <23d9f6b20901301222o42bdd6b2rc480276ac3303afe@mail.gmail.com> <498498C9.6080005@gmail.com> <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> <498606E4.8000601@gmail.com> <23d9f6b20902020125l76015dcdr3cb18e3116f3d593@mail.gmail.com> Message-ID: <4986DE09.3080701@gmail.com> joe, >> In this case _obj. foo (); can be used in other functions in ext1Component too, in original case this._obj will be null if it is used in other functions than init() It is because 'createInstance' method makes new instance of 'ext1Component' object each time it is called. There is yet another two ways to avoid 'null' value of '_obj' object field. 1) 'getService' method may be used istead of 'createInstance' method, so only one instance of 'ext1Component' object will be created for all windows; it is analogue of way you has proposed (global variable), and here may be cross-windows 'callbacks': for example, window1 calls 'init', then window2 calls another component's method, but '_obj' points to window1. 2) extension's object can have field to store 'ext1Component' instance, for example: var extobject = { mc: null, init: function () { this. mc = Components. classes... this. mc. init (this); }, go: function () { this. mc. bar (); } }; In case 2) each window can have its own instance of 'ext1Component' object. joe ertaba wrote: > Thank you very much Anton, examples helps me a lot. > In order for future reference for other developers I have one > modification in (/components/ext1component.js) for both ext1 & ext2 > > instead of: > function ext1Component () > { > this. wrappedJSObject = this; > } > ext1Component. prototype = > { > QueryInterface: function (iid) > { > if (!iid. equals (Components. interfaces. ext1Component) && > !iid. equals (Components. interfaces. nsISupports)) > throw Components. results. NS_ERROR_NO_INTERFACE; > return this; > }, > > _obj: null, > > init: function (obj) > { > this. _obj = obj; > // ... > this. _obj. foo (); > } > }; > > use this one: > > *var _obj;* > > function ext1Component () > { > this. wrappedJSObject = this; > } > ext1Component. prototype = > { > QueryInterface: function (iid) > { > if (!iid. equals (Components. interfaces. ext1Component) && > !iid. equals (Components. interfaces. nsISupports)) > throw Components. results. NS_ERROR_NO_INTERFACE; > return this; > }, > > > init: function (obj) > { > * _obj = obj;* > // ... > *_obj. foo ();* > } > }; > > In this case _obj. foo (); can be used in other functions in > ext1Component too, in original case this._obj will be null if it is > used in other functions than init() > > -Joe > > > On Mon, Feb 2, 2009 at 12:02 AM, Anton Glazatov > wrote: > > >> Is it possible to declare object variable into the idl file? > No, it isn't possible. Component method's argument should > implement any interface. > > > >> but I think I should reverse them, something like > Yes, you are right. > > > >> I don't exactly know why I need QueryIntrface here in my > extension js file beside in component > If you will use wrappedJSObject in your component constructor (see > here: > https://developer.mozilla.org/en/How_to_Build_an_XPCOM_Component_in_Javascript), > you need not to define extra interface for callback. > > > >> Would you please give me a sample extension file > You can see attached files. The ext1 doesn't use wrappedJSObject, > and ext2 use wrappedJSObject. > > Btw, there is third way to call extension's function from xpcom > component - you may use global notifications (see > nsIObserverService / nsIObserver). > > joe ertaba wrote: > > Thanks Anton > > Second method looks great, but I have few problems with it > > > or you may implement any interface in your extension's > object, it > may be somethink like > > // xpcom .idl > ... > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > > > > Is it possible to declare object variable into the idl file? > something like > > interface YourComponent: nsISupports { void init (in object > obj); }; > > As I think it doesnt mean to declare object in idl! so I > should use your trick, but I think I should reverse them, > something like > > // xpcom .idl > ... > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > > // xpcom > ... > extobject: null, > ... > init: function (obj) { this. extobject = obj; }, > ... > bar: function () { this. extobject. foo (); }, // call > extension's > function > ... > > // extension > var yourextensionobject = > { > ... > init: function () { > var mycomponent = Components. classes ["@yourcomponent.cid"]. > createInstance (Components. interfaces. YourComponent); > mycomponent. init (this); > }, > ... > foo: function () { ... }, > ... > QueryIntrface: function (iid) > { > if ((!iid. equals (Components. interfaces. nsISupprots) && > (!iid. equals (Components. interfaces. > nsIYourComponentCallback)) > Components. results. NS_ERROR_NO_INTERFACE; > return this; > } > > > I don't exactly know why I need QueryIntrface here in my > extension js file beside in component, if it helps to declare > object (YourComponentCallback) then is it enough or some other > things also needed (in xpcom we need lots of other thing like > Factories, Modules,... ) > > Maybe I am somehow confized! because I never see idl & > QueryIntrface for normal js (not compont) > > Would you please give me a sample extension file or at least > some toturial which explain these concepts :) > > Thanks in advance > Joe > > ------------------------------------------------------------------------ > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > > > > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > > > ------------------------------------------------------------------------ > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > From belaviyo at gmail.com Mon Feb 2 07:33:04 2009 From: belaviyo at gmail.com (joe ertaba) Date: Mon, 2 Feb 2009 19:03:04 +0330 Subject: [Project_owners] XPCOM call local function In-Reply-To: <4986DE09.3080701@gmail.com> References: <23d9f6b20901301222o42bdd6b2rc480276ac3303afe@mail.gmail.com> <498498C9.6080005@gmail.com> <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> <498606E4.8000601@gmail.com> <23d9f6b20902020125l76015dcdr3cb18e3116f3d593@mail.gmail.com> <4986DE09.3080701@gmail.com> Message-ID: <23d9f6b20902020733g43fbab8ch5c0ad3dd8d70e1cc@mail.gmail.com> Thanks, Second method look great, I have another question, maybe not fully related to this topic! See this XPCOM for example: Adding a New Protocol to Mozilla If in component I have a observer (like protocol observer), it will fire some function (in this case newChannel function), I dont know how can I find which window & which tab send this request ? --------- If I use global variable then it refer to final window! Also because observer fire a function always it creates new instance so above methods are suitable for cases which local function fire XPCOM functions, not in this case! On Mon, Feb 2, 2009 at 3:20 PM, Anton Glazatov wrote: > joe, > >> In this case _obj. foo (); can be used in other functions in > ext1Component too, in original case this._obj will be null if it is used in > other functions than init() > > It is because 'createInstance' method makes new instance of 'ext1Component' > object each time it is called. > There is yet another two ways to avoid 'null' value of '_obj' object field. > 1) 'getService' method may be used istead of 'createInstance' method, so > only one instance of 'ext1Component' object will be created for all windows; > it is analogue of way you has proposed (global variable), and here may be > cross-windows 'callbacks': for example, window1 calls 'init', then window2 > calls another component's method, but '_obj' points to window1. > 2) extension's object can have field to store 'ext1Component' instance, for > example: > var extobject = > { > mc: null, > > init: function () > { > this. mc = Components. classes... > this. mc. init (this); > }, > go: function () > { > this. mc. bar (); > } > }; > In case 2) each window can have its own instance of 'ext1Component' object. > > joe ertaba wrote: > >> Thank you very much Anton, examples helps me a lot. >> In order for future reference for other developers I have one modification >> in (/components/ext1component.js) for both ext1 & ext2 >> >> instead of: >> function ext1Component () >> { >> this. wrappedJSObject = this; >> } >> ext1Component. prototype = >> { >> QueryInterface: function (iid) >> { >> if (!iid. equals (Components. interfaces. ext1Component) && >> !iid. equals (Components. interfaces. nsISupports)) >> throw Components. results. NS_ERROR_NO_INTERFACE; >> return this; >> }, >> _obj: null, >> init: function (obj) >> { >> this. _obj = obj; >> // ... >> this. _obj. foo (); >> } >> }; >> >> use this one: >> >> *var _obj;* >> >> function ext1Component () >> { >> this. wrappedJSObject = this; >> } >> ext1Component. prototype = >> { >> QueryInterface: function (iid) >> { >> if (!iid. equals (Components. interfaces. ext1Component) && >> !iid. equals (Components. interfaces. nsISupports)) >> throw Components. results. NS_ERROR_NO_INTERFACE; >> return this; >> }, >> init: function (obj) >> { >> * _obj = obj;* >> // ... >> *_obj. foo ();* >> } >> }; >> >> In this case _obj. foo (); can be used in other functions in ext1Component >> too, in original case this._obj will be null if it is used in other >> functions than init() >> >> -Joe >> >> >> On Mon, Feb 2, 2009 at 12:02 AM, Anton Glazatov > antonglv at gmail.com>> wrote: >> >> >> Is it possible to declare object variable into the idl file? >> No, it isn't possible. Component method's argument should >> implement any interface. >> >> >> >> but I think I should reverse them, something like >> Yes, you are right. >> >> >> >> I don't exactly know why I need QueryIntrface here in my >> extension js file beside in component >> If you will use wrappedJSObject in your component constructor (see >> here: >> >> https://developer.mozilla.org/en/How_to_Build_an_XPCOM_Component_in_Javascript >> ), >> you need not to define extra interface for callback. >> >> >> >> Would you please give me a sample extension file >> You can see attached files. The ext1 doesn't use wrappedJSObject, >> and ext2 use wrappedJSObject. >> >> Btw, there is third way to call extension's function from xpcom >> component - you may use global notifications (see >> nsIObserverService / nsIObserver). >> >> joe ertaba wrote: >> >> Thanks Anton >> >> Second method looks great, but I have few problems with it >> >> >> or you may implement any interface in your extension's >> object, it >> may be somethink like >> >> // xpcom .idl >> ... >> interface YourComponent: nsISupports >> { >> ... >> void init (in YourComponentCallback obj); >> ... >> }; >> >> interface YourComponentCallback: nsISupports >> { >> ... >> void foo (); >> ... >> }; >> >> >> >> Is it possible to declare object variable into the idl file? >> something like >> >> interface YourComponent: nsISupports { void init (in object >> obj); }; >> >> As I think it doesnt mean to declare object in idl! so I >> should use your trick, but I think I should reverse them, >> something like >> >> // xpcom .idl >> ... >> >> interface YourComponentCallback: nsISupports >> { >> ... >> void foo (); >> ... >> }; >> >> interface YourComponent: nsISupports >> { >> ... >> void init (in YourComponentCallback obj); >> ... >> }; >> >> // xpcom >> ... >> extobject: null, >> ... >> init: function (obj) { this. extobject = obj; }, >> ... >> bar: function () { this. extobject. foo (); }, // call >> extension's >> function >> ... >> >> // extension >> var yourextensionobject = >> { >> ... >> init: function () { >> var mycomponent = Components. classes ["@yourcomponent.cid"]. >> createInstance (Components. interfaces. YourComponent); >> mycomponent. init (this); >> }, >> ... >> foo: function () { ... }, >> ... >> QueryIntrface: function (iid) >> { >> if ((!iid. equals (Components. interfaces. nsISupprots) && >> (!iid. equals (Components. interfaces. >> nsIYourComponentCallback)) >> Components. results. NS_ERROR_NO_INTERFACE; >> return this; >> } >> >> >> I don't exactly know why I need QueryIntrface here in my >> extension js file beside in component, if it helps to declare >> object (YourComponentCallback) then is it enough or some other >> things also needed (in xpcom we need lots of other thing like >> Factories, Modules,... ) >> >> Maybe I am somehow confized! because I never see idl & >> QueryIntrface for normal js (not compont) >> >> Would you please give me a sample extension file or at least >> some toturial which explain these concepts :) >> >> Thanks in advance >> Joe >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Project_owners mailing list >> Project_owners at mozdev.org >> https://www.mozdev.org/mailman/listinfo/project_owners >> >> >> >> _______________________________________________ >> Project_owners mailing list >> Project_owners at mozdev.org >> https://www.mozdev.org/mailman/listinfo/project_owners >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Project_owners mailing list >> Project_owners at mozdev.org >> https://www.mozdev.org/mailman/listinfo/project_owners >> >> > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > -------------- next part -------------- An HTML attachment was scrubbed... URL: From antonglv at gmail.com Tue Feb 3 04:38:08 2009 From: antonglv at gmail.com (Anton Glazatov) Date: Tue, 03 Feb 2009 19:38:08 +0700 Subject: [Project_owners] XPCOM call local function In-Reply-To: <23d9f6b20902020733g43fbab8ch5c0ad3dd8d70e1cc@mail.gmail.com> References: <23d9f6b20901301222o42bdd6b2rc480276ac3303afe@mail.gmail.com> <498498C9.6080005@gmail.com> <23d9f6b20902010510t627ac997ye461615f82a79e71@mail.gmail.com> <498606E4.8000601@gmail.com> <23d9f6b20902020125l76015dcdr3cb18e3116f3d593@mail.gmail.com> <4986DE09.3080701@gmail.com> <23d9f6b20902020733g43fbab8ch5c0ad3dd8d70e1cc@mail.gmail.com> Message-ID: <49883AB0.6010702@gmail.com> >> If in component I have a observer (like protocol observer), it will fire some function (in this case newChannel function), I dont know how can I find which window & which tab send this request ? I think protocol handler is not suitable object to search for request owner. Protocol handler has not enough info (in his method's arguments) to do it by itself. joe ertaba wrote: > Thanks, Second method look great, > > I have another question, maybe not fully related to this topic! > > See this XPCOM for example: Adding a New Protocol to Mozilla > > If in component I have a observer (like protocol observer), it will > fire some function (in this case newChannel function), I dont know how > can I find which window & which tab send this request ? > > --------- > > If I use global variable then it refer to final window! > Also because observer fire a function always it creates new instance > so above methods are suitable for cases which local function fire > XPCOM functions, not in this case! > > > > > > On Mon, Feb 2, 2009 at 3:20 PM, Anton Glazatov > wrote: > > joe, > > >> In this case _obj. foo (); can be used in other functions in > ext1Component too, in original case this._obj will be null if it > is used in other functions than init() > > It is because 'createInstance' method makes new instance of > 'ext1Component' object each time it is called. > There is yet another two ways to avoid 'null' value of '_obj' > object field. > 1) 'getService' method may be used istead of 'createInstance' > method, so only one instance of 'ext1Component' object will be > created for all windows; it is analogue of way you has proposed > (global variable), and here may be cross-windows 'callbacks': for > example, window1 calls 'init', then window2 calls another > component's method, but '_obj' points to window1. > 2) extension's object can have field to store 'ext1Component' > instance, for example: > var extobject = > { > mc: null, > > init: function () > { > this. mc = Components. classes... > this. mc. init (this); > }, > go: function () > { > this. mc. bar (); > } > }; > In case 2) each window can have its own instance of > 'ext1Component' object. > > joe ertaba wrote: > > Thank you very much Anton, examples helps me a lot. > In order for future reference for other developers I have one > modification in (/components/ext1component.js) for both ext1 & > ext2 > > instead of: > function ext1Component () > { > this. wrappedJSObject = this; > } > ext1Component. prototype = > { > QueryInterface: function (iid) > { > if (!iid. equals (Components. interfaces. ext1Component) && > !iid. equals (Components. interfaces. nsISupports)) > throw Components. results. NS_ERROR_NO_INTERFACE; > return this; > }, > _obj: null, > init: function (obj) > { > this. _obj = obj; > // ... > this. _obj. foo (); > } > }; > > use this one: > > *var _obj;* > > function ext1Component () > { > this. wrappedJSObject = this; > } > ext1Component. prototype = > { > QueryInterface: function (iid) > { > if (!iid. equals (Components. interfaces. ext1Component) && > !iid. equals (Components. interfaces. nsISupports)) > throw Components. results. NS_ERROR_NO_INTERFACE; > return this; > }, > init: function (obj) > { > * _obj = obj;* > // ... > *_obj. foo ();* > } > }; > > In this case _obj. foo (); can be used in other functions in > ext1Component too, in original case this._obj will be null if > it is used in other functions than init() > > -Joe > > > On Mon, Feb 2, 2009 at 12:02 AM, Anton Glazatov > > >> wrote: > > >> Is it possible to declare object variable into the idl file? > No, it isn't possible. Component method's argument should > implement any interface. > > > >> but I think I should reverse them, something like > Yes, you are right. > > > >> I don't exactly know why I need QueryIntrface here in my > extension js file beside in component > If you will use wrappedJSObject in your component > constructor (see > here: > > https://developer.mozilla.org/en/How_to_Build_an_XPCOM_Component_in_Javascript), > you need not to define extra interface for callback. > > > >> Would you please give me a sample extension file > You can see attached files. The ext1 doesn't use > wrappedJSObject, > and ext2 use wrappedJSObject. > > Btw, there is third way to call extension's function from xpcom > component - you may use global notifications (see > nsIObserverService / nsIObserver). > > joe ertaba wrote: > > Thanks Anton > > Second method looks great, but I have few problems with it > > > or you may implement any interface in your extension's > object, it > may be somethink like > > // xpcom .idl > ... > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > > > > Is it possible to declare object variable into the idl > file? > something like > > interface YourComponent: nsISupports { void init (in > object > obj); }; > > As I think it doesnt mean to declare object in idl! so I > should use your trick, but I think I should reverse them, > something like > > // xpcom .idl > ... > > interface YourComponentCallback: nsISupports > { > ... > void foo (); > ... > }; > > interface YourComponent: nsISupports > { > ... > void init (in YourComponentCallback obj); > ... > }; > > // xpcom > ... > extobject: null, > ... > init: function (obj) { this. extobject = obj; }, > ... > bar: function () { this. extobject. foo (); }, // call > extension's > function > ... > > // extension > var yourextensionobject = > { > ... > init: function () { > var mycomponent = Components. classes > ["@yourcomponent.cid"]. > createInstance (Components. interfaces. YourComponent); > mycomponent. init (this); > }, > ... > foo: function () { ... }, > ... > QueryIntrface: function (iid) > { > if ((!iid. equals (Components. interfaces. > nsISupprots) && > (!iid. equals (Components. interfaces. > nsIYourComponentCallback)) > Components. results. NS_ERROR_NO_INTERFACE; > return this; > } > > > I don't exactly know why I need QueryIntrface here in my > extension js file beside in component, if it helps to > declare > object (YourComponentCallback) then is it enough or > some other > things also needed (in xpcom we need lots of other > thing like > Factories, Modules,... ) > > Maybe I am somehow confized! because I never see idl & > QueryIntrface for normal js (not compont) > > Would you please give me a sample extension file or at > least > some toturial which explain these concepts :) > > Thanks in advance > Joe > > > ------------------------------------------------------------------------ > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > > > > > https://www.mozdev.org/mailman/listinfo/project_owners > > > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > > > > > https://www.mozdev.org/mailman/listinfo/project_owners > > > ------------------------------------------------------------------------ > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > > > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > > > ------------------------------------------------------------------------ > > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > From dorgan at donaldorgan.com Tue Feb 3 07:16:40 2009 From: dorgan at donaldorgan.com (Donald J. Organ IV) Date: Tue, 3 Feb 2009 10:16:40 -0500 (EST) Subject: [Project_owners] Thunderbird Extension Development In-Reply-To: <21856993.441233674102449.JavaMail.root@twoguyshosting.com.> Message-ID: <6086910.461233674200438.JavaMail.root@twoguyshosting.com.> I've noticed there is not alot of documenation out there for thunderbird extension development. I really useful set of pages would be overlays. Currently I am looking to create an extension that will allow the user to right click on an attachment and fill out a form with information pertaining to that file then the extension will save the file to a specified folder(assigned via preferences), and also create a txt document with the information from the form. I have been able to add an icon to the status bar, but that has been it. Right now I am looking for what file i need to overlay in order to change the context menu for attachments. I am developing this extension under thunderbird 3 beta 1. Besides the overlay I need to figure out how to interact with the attachments. Any and all help is greatly appreciated. -------------- next part -------------- An HTML attachment was scrubbed... URL: From belaviyo at gmail.com Tue Feb 3 23:31:48 2009 From: belaviyo at gmail.com (joe ertaba) Date: Wed, 4 Feb 2009 11:01:48 +0330 Subject: [Project_owners] mirror elements in XUL Message-ID: <23d9f6b20902032331l26cecef1t9c6781d865cbf456@mail.gmail.com> Hi, How is it possible to use same element in 2 different places in same window What I want is a label be a mirror of another label,... here is sample code but it doesn't work -------------- next part -------------- An HTML attachment was scrubbed... URL: From ajvincent at gmail.com Tue Feb 3 23:36:46 2009 From: ajvincent at gmail.com (Alex Vincent) Date: Tue, 3 Feb 2009 23:36:46 -0800 Subject: [Project_owners] mirror elements in XUL In-Reply-To: <23d9f6b20902032331l26cecef1t9c6781d865cbf456@mail.gmail.com> References: <23d9f6b20902032331l26cecef1t9c6781d865cbf456@mail.gmail.com> Message-ID: <9301ed6b0902032336h206faa02i3613181d69660e15@mail.gmail.com> The reason is that l can only have one parent node at a time. What you want, in a simple case, is this: document.getElementById('bigbox').appendChild(l); document.getElementById('bbigbox').appendChild(l.cloneNode(true)); If you want to *keep* the labels synchronized - that is, one node updating means the other updates - that's a whole new ball o' wax. I wrote some code up for that a while ago, but it is probably overkill for this. Alex On Tue, Feb 3, 2009 at 11:31 PM, joe ertaba wrote: > Hi, > > How is it possible to use same element in 2 different places in same window -- "The first step in confirming there is a bug in someone else's work is confirming there are no bugs in your own." -- Alexander J. Vincent, June 30, 2001 From neil at parkwaycc.co.uk Wed Feb 4 03:29:16 2009 From: neil at parkwaycc.co.uk (Neil) Date: Wed, 04 Feb 2009 11:29:16 +0000 Subject: [Project_owners] mirror elements in XUL In-Reply-To: References: Message-ID: joe ertaba wrote: > > > > > Create a broadcaster for the value and have the labels observe the broadcaster? From godmar at gmail.com Wed Feb 4 05:18:04 2009 From: godmar at gmail.com (Godmar Back) Date: Wed, 4 Feb 2009 08:18:04 -0500 Subject: [Project_owners] Q: how to access calling XUL window from XPCOM component code? Message-ID: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> Hi, I have an XPCOM component which is accessed from different XUL windows in Firefox 3 via the wrappedJSObject property of a service, as described in [1]. Would anybody happen to know how I can access/find out the calling XUL window within a method defined in global component code? (I could pass in 'window' into each method, but I'm hoping for a simpler way.) - Godmar [1] https://developer.mozilla.org/en/How_to_Build_an_XPCOM_Component_in_Javascript#Using_wrappedJSObject From firefox at maltekraus.de Wed Feb 4 05:59:17 2009 From: firefox at maltekraus.de (Malte Kraus) Date: Wed, 04 Feb 2009 14:59:17 +0100 Subject: [Project_owners] Q: how to access calling XUL window from XPCOM component code? In-Reply-To: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> References: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> Message-ID: <49899F35.3050600@maltekraus.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Godmar Back schrieb: > Would anybody happen to know how I can access/find out the calling XUL > window within a method defined in global component code? (I could pass > in 'window' into each method, but I'm hoping for a simpler way.) As long as the caller used wrappedJSObject, you can do this: function name() { var win = name.caller.__parent__; } -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmJnzEACgkQU9AX8TCX8cs9VgCfScBiy6r1G+E37YZb9X++Cpi4 QE0AoKdhTrPenHSEQ4F0uo9gfopJDkrs =1Yge -----END PGP SIGNATURE----- From godmar at gmail.com Wed Feb 4 09:14:28 2009 From: godmar at gmail.com (Godmar Back) Date: Wed, 4 Feb 2009 12:14:28 -0500 Subject: [Project_owners] Q: how to access calling XUL window from XPCOM component code? In-Reply-To: <49899F35.3050600@maltekraus.de> References: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> <49899F35.3050600@maltekraus.de> Message-ID: <719dced30902040914k535538acy6e4e03830b18d5b7@mail.gmail.com> On Wed, Feb 4, 2009 at 8:59 AM, Malte Kraus wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Godmar Back schrieb: >> Would anybody happen to know how I can access/find out the calling XUL >> window within a method defined in global component code? (I could pass >> in 'window' into each method, but I'm hoping for a simpler way.) > As long as the caller used wrappedJSObject, you can do this: > > function name() { > var win = name.caller.__parent__; > } Thank you! Is it possible to walk the stack in some way in case the function is called indirectly along a chain of calls, as in 'name.caller.caller....' until a __parent__ property is found? Also, can name.caller be replaced with arguments.caller? (I find conflicting information in MDC - it says that arguments.caller is no longer supported for security reasons, though this wouldn't make sense for XUL code.) - Godmar From firefox at maltekraus.de Wed Feb 4 09:39:17 2009 From: firefox at maltekraus.de (Malte Kraus) Date: Wed, 04 Feb 2009 18:39:17 +0100 Subject: [Project_owners] Q: how to access calling XUL window from XPCOM component code? In-Reply-To: <719dced30902040914k535538acy6e4e03830b18d5b7@mail.gmail.com> References: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> <49899F35.3050600@maltekraus.de> <719dced30902040914k535538acy6e4e03830b18d5b7@mail.gmail.com> Message-ID: <4989D2C5.20901@maltekraus.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Godmar Back schrieb: > Also, can name.caller be replaced with arguments.caller? (I find > conflicting information in MDC - it says that arguments.caller is no > longer supported for security reasons, though this wouldn't make sense > for XUL code.) You can use arguments.callee.caller, I think. > Is it possible to walk the stack in some way in case the function is > called indirectly along a chain of calls, as in > 'name.caller.caller....' until a __parent__ property is found? Sure: var caller = arguments.callee.caller; var globalObject = {}.__parent__; while(caller.__parent__ != globalObject) { caller = caller.caller; } With recursive functions, this loop will never stop though. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmJ0sAACgkQU9AX8TCX8csCwQCfZ7Hc+2Gkdc+2nKG382rOo9Ns KNgAn3ZUCIGGWBweYK0ts54yLXabvaiR =5buO -----END PGP SIGNATURE----- From silfreed at silfreed.net Wed Feb 4 11:31:30 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Wed, 04 Feb 2009 14:31:30 -0500 Subject: [Project_owners] User profile update page Message-ID: <4989ED12.2040100@silfreed.net> We have added a page to allow users to update some basic information about themselves such as their displayed name, email address, and whether their email address is displayed on members or overview pages. https://www.mozdev.org/profile/profile.html Let us know if you have any problems using this tool or have any questions about the features provided. -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From dorgan at donaldorgan.com Wed Feb 4 11:43:53 2009 From: dorgan at donaldorgan.com (Donald J. Organ IV) Date: Wed, 4 Feb 2009 14:43:53 -0500 (EST) Subject: [Project_owners] TB Extension Message-ID: <33345507.101233776633086.JavaMail.root@twoguyshosting.com.> I have now been able to get as far as possible on my project but have hit a bit of a wall because of the lack of available tutorials and/or documentation. I am creating an extension for thunderbird that allows the downloading of attachments to a preference define folder..But first the user will have to fill out a form then the attachments will be downloaded and a txt file with the information on the form contained within. If some one could point me in the correct direction for the following things that would be great. 1) Downloading attachments and renaming them (no user input, information will come from form) 2) Creating a text file on the local filesystem -------------- next part -------------- An HTML attachment was scrubbed... URL: From godmar at gmail.com Thu Feb 5 05:55:57 2009 From: godmar at gmail.com (Godmar Back) Date: Thu, 5 Feb 2009 08:55:57 -0500 Subject: [Project_owners] Q: how to access calling XUL window from XPCOM component code? In-Reply-To: <4989D2C5.20901@maltekraus.de> References: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> <49899F35.3050600@maltekraus.de> <719dced30902040914k535538acy6e4e03830b18d5b7@mail.gmail.com> <4989D2C5.20901@maltekraus.de> Message-ID: <719dced30902050555h61eb6664kcc97ff808efd01b2@mail.gmail.com> On Wed, Feb 4, 2009 at 12:39 PM, Malte Kraus wrote: > >> Is it possible to walk the stack in some way in case the function is >> called indirectly along a chain of calls, as in >> 'name.caller.caller....' until a __parent__ property is found? > Sure: > var caller = arguments.callee.caller; > var globalObject = {}.__parent__; > while(caller.__parent__ != globalObject) { > caller = caller.caller; > } Turns out this approach is not very useful since 'caller' appears to be defined only if the calling function is defined via a 'function name() { }' statement. If the calling function is defined via variable assignment as in name = function (), or if the call occurs in a top-level context, caller is null and no parent property can be obtained. Aside from that, I don't understand the intent of "caller.__parent__ != globalObject" - are you trying to walk up the call chain until the function's __parent__ is equal to the current function's global object? I also tried using the nsIStackFrame http://www.xulplanet.com/references/xpcomref/ifaces/nsIStackFrame.html interface, but it appears that these stack frames do not have a __parent__, nor do they contain a reference to the Function object that's being associated with each frame. - Godmar From myfirstnamehere at gawab.com Thu Feb 5 09:44:58 2009 From: myfirstnamehere at gawab.com (Benoit Renard, msnmsgr) Date: Thu, 05 Feb 2009 18:44:58 +0100 Subject: [Project_owners] User profile update page In-Reply-To: References: Message-ID: Douglas E. Warner wrote: > https://www.mozdev.org/profile/profile.html Why the choice for this URL? "profile" twice is redundant. From silfreed at silfreed.net Thu Feb 5 10:05:49 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Thu, 05 Feb 2009 13:05:49 -0500 Subject: [Project_owners] User profile update page In-Reply-To: References: Message-ID: <498B2A7D.7050802@silfreed.net> Benoit Renard, msnmsgr wrote: > Douglas E. Warner wrote: >> https://www.mozdev.org/profile/profile.html > > Why the choice for this URL? "profile" twice is redundant. Well, it's the *actual* page to make profile changes, and the profile directory was already there. -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From m.testi at gmail.com Sat Feb 7 15:33:26 2009 From: m.testi at gmail.com (Marcello Testi) Date: Sun, 8 Feb 2009 00:33:26 +0100 Subject: [Project_owners] Removal of archived mailing-list messages Message-ID: I'm the admin for a Mozdev-hosted project and I've been asked by a member to remove or edit entries (i.e. messages) about himself from the list archives. I'd like to know if this is feasible. Then, we can discuss if it's acceptable. BTW, from a strictly practical point of view, I'm OK with deleting those posts, because they are of no particular value for today's list members. Thanks. Ciao. Marcello Testi. From firefox at maltekraus.de Sat Feb 7 16:43:40 2009 From: firefox at maltekraus.de (Malte Kraus) Date: Sun, 08 Feb 2009 01:43:40 +0100 Subject: [Project_owners] Q: how to access calling XUL window from XPCOM component code? In-Reply-To: <719dced30902050555h61eb6664kcc97ff808efd01b2@mail.gmail.com> References: <719dced30902040518id89dda3t4e55f05e9baf48c6@mail.gmail.com> <49899F35.3050600@maltekraus.de> <719dced30902040914k535538acy6e4e03830b18d5b7@mail.gmail.com> <4989D2C5.20901@maltekraus.de> <719dced30902050555h61eb6664kcc97ff808efd01b2@mail.gmail.com> Message-ID: <498E2ABC.1070808@maltekraus.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Godmar Back schrieb: > Turns out this approach is not very useful since 'caller' appears to > be defined only if the calling function is defined via a 'function > name() { }' statement. If the calling function is defined via > variable assignment as in name = function (), or if the call occurs in > a top-level context, caller is null and no parent property can be > obtained. Yes, this is approach is rather limited. However, you can also write function assignments like this: name = function name() {}; > Aside from that, I don't understand the intent of "caller.__parent__ > != globalObject" - are you trying to walk up the call chain until the > function's __parent__ is equal to the current function's global > object? I actually meant "==" instead of "!=", which would walk up the call chain until a caller from another window (or component) is found. - -- Malte Kraus -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmOKrYACgkQU9AX8TCX8csEvgCgkyxOylfkUu/cIBcXTiDCJouv 0PMAoIzakgTvS8mOOwgpjdi+EWh/dXJr =gTs5 -----END PGP SIGNATURE----- From silfreed at silfreed.net Sun Feb 8 11:41:18 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Sun, 08 Feb 2009 14:41:18 -0500 Subject: [Project_owners] Removal of archived mailing-list messages In-Reply-To: References: Message-ID: <498F355E.7070402@silfreed.net> Marcello Testi wrote: > I'm the admin for a Mozdev-hosted project and I've been asked by a > member to remove or edit entries (i.e. messages) about himself from the > list archives. > I'd like to know if this is feasible. Then, we can discuss if it's > acceptable. > BTW, from a strictly practical point of view, I'm OK with deleting those > posts, because they are of no particular value for today's list members. > Feel free to send an email to feedback at mozdev.org about this. -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From silfreed at silfreed.net Tue Feb 10 08:21:57 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Tue, 10 Feb 2009 11:21:57 -0500 Subject: [Project_owners] Changes in Firefox 3.1 that might affect extensions Message-ID: <4991A9A5.8000501@silfreed.net> This came across in #mozdev and I thought I'd share it here in case it affects your extension: http://blog.mozilla.com/addons/2009/02/10/iid-changes-to-some-gecko-191-interfaces/ -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From loveleeyoungae at yahoo.com Sat Feb 14 09:57:13 2009 From: loveleeyoungae at yahoo.com (NGUYEN-Manh Hung) Date: Sat, 14 Feb 2009 09:57:13 -0800 (PST) Subject: [Project_owners] Drupal errors Message-ID: <336421.81439.qm@web38001.mail.mud.yahoo.com> Hello, I've seen some errors with Drupal, are they mozdev's bugs? 1. Get to the main drupal page of vi.mozdev.org. You'll notice that when you click on the "Login/Register" link, nothing happens. http://vi.mozdev.org/drupal/ Or you can go to the "create a new page" page, click on, for instance, "Authoring Information", it will be expanded. But when you click on it again in order to collapse the menu, nothing happens. http://vi.mozdev.org/drupal/node/add/page 2. Get to this page, you'll see this warning "The following enabled modules are incompatible with aggressive mode caching and might not function properly: liquid": http://vi.mozdev.org/drupal/admin/settings/performance 3. In the modules list page, there is this module "CCK Fields". However, it is unselectable because its required module '"Content" is missing. ----- NGUYEN-Manh Hung From silfreed at silfreed.net Mon Feb 16 05:30:35 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Mon, 16 Feb 2009 08:30:35 -0500 Subject: [Project_owners] Drupal errors In-Reply-To: <336421.81439.qm@web38001.mail.mud.yahoo.com> References: <336421.81439.qm@web38001.mail.mud.yahoo.com> Message-ID: <49996A7B.3020607@silfreed.net> NGUYEN-Manh Hung wrote: > Hello, > > I've seen some errors with Drupal, are they mozdev's bugs? > > 1. Get to the main drupal page of vi.mozdev.org. You'll notice that when you click on the "Login/Register" link, nothing happens. > http://vi.mozdev.org/drupal/ It looks like you disabled the "User login" block that the "User login/logout link" block controls to show the block. I've added it back in so the link should show/hide the block again. > Or you can go to the "create a new page" page, click on, for instance, "Authoring Information", it will be expanded. But when you click on it again in order to collapse the menu, nothing happens. > http://vi.mozdev.org/drupal/node/add/page This seems common to Drupal; once these areas are expanded they don't collapse so you don't accidentally change something then close it and forget about it. > 2. Get to this page, you'll see this warning "The following enabled modules are incompatible with aggressive mode caching and might not function properly: liquid": > http://vi.mozdev.org/drupal/admin/settings/performance This is because you enabled aggressive caching in the performance tab. In newer Drupal setups I haven't been using the Liquid module; the only thing it seems to provide in our current setup is an automatic "wiki" link, so you could disable the module and add the link to the menu manually. > 3. In the modules list page, there is this module "CCK Fields". However, it is unselectable because its required module '"Content" is missing. > This "CCK Fields" module is part of the Subscriptions module. We don't have CCK installed so it's not selectable. -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From bournecr at yahoo.com Thu Feb 19 12:50:19 2009 From: bournecr at yahoo.com (Christina Bourne) Date: Thu, 19 Feb 2009 12:50:19 -0800 (PST) Subject: [Project_owners] Gemstone download page offline? Message-ID: <741668.72700.qm@web30507.mail.mud.yahoo.com> I am a new user and trying to download Gemstone installation from http://grid-devel.sdsc.edu/downloads/gemstone/frontend/latest/ but there's no response. Is the server down? Is there a mirror site? If not, anyone know when it might be back up? Thanks, Christina -------------- next part -------------- An HTML attachment was scrubbed... URL: From silfreed at silfreed.net Thu Feb 19 12:54:12 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Thu, 19 Feb 2009 15:54:12 -0500 Subject: [Project_owners] Gemstone download page offline? In-Reply-To: <741668.72700.qm@web30507.mail.mud.yahoo.com> References: <741668.72700.qm@web30507.mail.mud.yahoo.com> Message-ID: <499DC6F4.5070001@silfreed.net> Christina Bourne wrote: > I am a new user and trying to download Gemstone installation from > http://grid-devel.sdsc.edu/downloads/gemstone/frontend/latest/ > but there's no response. > > Is the server down? Is there a mirror site? If not, anyone know when > it might be back up? > > Thanks, > Christina Christina, You may want to try contacting the gemstone project developers directly; either through their list [1] or their member list [2]. -Doug [1] http://gemstone.mozdev.org/list.html [2] http://gemstone.mozdev.org/members.html -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From belaviyo at gmail.com Wed Feb 25 22:45:27 2009 From: belaviyo at gmail.com (joe ertaba) Date: Thu, 26 Feb 2009 10:15:27 +0330 Subject: [Project_owners] Run JS function of another window Message-ID: <23d9f6b20902252245m400120bbw9d99cdc49fe536b2@mail.gmail.com> Hi Here is a sample structure -Firefox window -Ovarlay.xul -Overlay.js -setting window -setting.js --MyFunction() {...} I want to call MyFunction() from Overlay.js Any idea? -------------- next part -------------- An HTML attachment was scrubbed... URL: From brian at mozdev.org Thu Feb 26 08:47:16 2009 From: brian at mozdev.org (Brian King) Date: Thu, 26 Feb 2009 17:47:16 +0100 Subject: [Project_owners] Run JS function of another window In-Reply-To: <23d9f6b20902252245m400120bbw9d99cdc49fe536b2@mail.gmail.com> References: <23d9f6b20902252245m400120bbw9d99cdc49fe536b2@mail.gmail.com> Message-ID: <49A6C794.2060905@mozdev.org> joe ertaba wrote: > Hi > > Here is a sample structure > > -Firefox window > -Ovarlay.xul > -Overlay.js > > -setting window > -setting.js > --MyFunction() {...} > > > I want to call MyFunction() from Overlay.js Get the settings window (xWin say) using nsIWindowWatcher, and then call xWin.MyFunction() - Brian From jacksparrow_88 at hotmail.com Thu Feb 26 14:13:58 2009 From: jacksparrow_88 at hotmail.com (Jack Sparrow) Date: Thu, 26 Feb 2009 20:13:58 -0200 Subject: [Project_owners] Mozdev project forum Message-ID: I have a simple question. It's possible to upload a forum to a mozdev project page? If the answer is yes, how? _________________________________________________________________ More than messages?check out the rest of the Windows Live?. http://www.microsoft.com/windows/windowslive/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From silfreed at silfreed.net Fri Feb 27 05:14:19 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Fri, 27 Feb 2009 08:14:19 -0500 Subject: [Project_owners] Mozdev project forum In-Reply-To: References: Message-ID: <49A7E72B.3030301@silfreed.net> Jack Sparrow wrote: > I have a simple question. It's possible to upload a forum to a mozdev > project page? > > If the answer is yes, how? First, we can setup Drupal for you to host your forum on [1]. That might be the easier route. Second, it's possible to upload a forum, but that involves a lot of maintenance on your part. ".php" files aren't passed through our template system and since most forum systems come with these file extensions it should mostly just work. But it'll be on you to keep the software updated and work within the more-restrictive confines of our multi-host setup. -Doug [1] http://www.mozdev.org/drupal/wiki/MozdevDrupalSetup -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From grimholtz at yahoo.com Fri Feb 27 07:04:25 2009 From: grimholtz at yahoo.com (Eric Jung) Date: Fri, 27 Feb 2009 10:04:25 -0500 Subject: [Project_owners] Mozdev project forum In-Reply-To: <49A7E72B.3030301@silfreed.net> References: <49A7E72B.3030301@silfreed.net> Message-ID: On Fri, Feb 27, 2009 at 8:14 AM, Douglas E. Warner wrote: > Jack Sparrow wrote: > > I have a simple question. It's possible to upload a forum to a mozdev > > project page? > > > > If the answer is yes, how? > > First, we can setup Drupal for you to host your forum on [1]. That might > be > the easier route. > > Second, it's possible to upload a forum, but that involves a lot of > maintenance on your part. ".php" files aren't passed through our template > system and since most forum systems come with these file extensions it > should > mostly just work. But it'll be on you to keep the software updated and > work > within the more-restrictive confines of our multi-host setup. > Most such systems require a database, too. I'm not sure what our policy is on databases for projects... -------------- next part -------------- An HTML attachment was scrubbed... URL: From silfreed at silfreed.net Fri Feb 27 07:18:44 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Fri, 27 Feb 2009 10:18:44 -0500 Subject: [Project_owners] Mozdev project forum In-Reply-To: References: <49A7E72B.3030301@silfreed.net> Message-ID: <49A80454.6060002@silfreed.net> Eric Jung wrote: > > > On Fri, Feb 27, 2009 at 8:14 AM, Douglas E. Warner > > wrote: > > Jack Sparrow wrote: > > I have a simple question. It's possible to upload a forum to a mozdev > > project page? > > > > If the answer is yes, how? > > First, we can setup Drupal for you to host your forum on [1]. That > might be > the easier route. > > Second, it's possible to upload a forum, but that involves a lot of > maintenance on your part. ".php" files aren't passed through our > template > system and since most forum systems come with these file extensions > it should > mostly just work. But it'll be on you to keep the software updated > and work > within the more-restrictive confines of our multi-host setup. > > > Most such systems require a database, too. I'm not sure what our policy > is on databases for projects... We'll set it up for you; it'll probably require a little more work on the PO's part to include the database username/password where we'll put the information since we don't want it committed to CVS. -Doug -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: From jacksparrow_88 at hotmail.com Fri Feb 27 10:46:56 2009 From: jacksparrow_88 at hotmail.com (Jack Sparrow) Date: Fri, 27 Feb 2009 16:46:56 -0200 Subject: [Project_owners] Mozdev project forum In-Reply-To: <49A7E72B.3030301@silfreed.net> References: <49A7E72B.3030301@silfreed.net> Message-ID: Thanks! > Date: Fri, 27 Feb 2009 08:14:19 -0500 > From: silfreed at silfreed.net > To: project_owners at mozdev.org > Subject: Re: [Project_owners] Mozdev project forum > > Jack Sparrow wrote: > > I have a simple question. It's possible to upload a forum to a mozdev > > project page? > > > > If the answer is yes, how? > > First, we can setup Drupal for you to host your forum on [1]. That might be > the easier route. > > Second, it's possible to upload a forum, but that involves a lot of > maintenance on your part. ".php" files aren't passed through our template > system and since most forum systems come with these file extensions it should > mostly just work. But it'll be on you to keep the software updated and work > within the more-restrictive confines of our multi-host setup. > > -Doug > > [1] http://www.mozdev.org/drupal/wiki/MozdevDrupalSetup > > -- > Douglas E. Warner Site Developer > Mozdev.org http://www.mozdev.org > _________________________________________________________________ Show them the way! Add maps and directions to your party invites. http://www.microsoft.com/windows/windowslive/products/events.aspx -------------- next part -------------- An HTML attachment was scrubbed... URL: From maik.gollnick at gmx.de Sat Feb 28 01:50:27 2009 From: maik.gollnick at gmx.de (Maik Gollnick) Date: Sat, 28 Feb 2009 10:50:27 +0100 Subject: [Project_owners] unique visit count Message-ID: <49A908E3.6060504@gmx.de> hi, i have a question about my project page. Is there any way to place a unique hit counter on the web page? thx From belaviyo at gmail.com Sat Feb 28 02:38:16 2009 From: belaviyo at gmail.com (joe ertaba) Date: Sat, 28 Feb 2009 14:08:16 +0330 Subject: [Project_owners] Run JS function of another window In-Reply-To: <49A6C794.2060905@mozdev.org> References: <23d9f6b20902252245m400120bbw9d99cdc49fe536b2@mail.gmail.com> <49A6C794.2060905@mozdev.org> Message-ID: <23d9f6b20902280238r5bd9a605w6450dea9f1e3227c@mail.gmail.com> Hi Brian This method only works when user opens setting window first! In my case I want to run a function from setting.js when there isn't any open "setting window" Do you have any idea about this case? -Joe On Thu, Feb 26, 2009 at 8:17 PM, Brian King wrote: > joe ertaba wrote: > >> Hi >> >> Here is a sample structure >> >> -Firefox window >> -Ovarlay.xul >> -Overlay.js >> >> -setting window >> -setting.js >> --MyFunction() {...} >> >> >> I want to call MyFunction() from Overlay.js >> > > Get the settings window (xWin say) using nsIWindowWatcher, and then call > xWin.MyFunction() > > - Brian > _______________________________________________ > Project_owners mailing list > Project_owners at mozdev.org > https://www.mozdev.org/mailman/listinfo/project_owners > -------------- next part -------------- An HTML attachment was scrubbed... URL: From grimholtz at yahoo.com Sat Feb 28 06:57:52 2009 From: grimholtz at yahoo.com (Eric Jung) Date: Sat, 28 Feb 2009 09:57:52 -0500 Subject: [Project_owners] Run JS function of another window In-Reply-To: <23d9f6b20902280238r5bd9a605w6450dea9f1e3227c@mail.gmail.com> References: <23d9f6b20902252245m400120bbw9d99cdc49fe536b2@mail.gmail.com> <49A6C794.2060905@mozdev.org> <23d9f6b20902280238r5bd9a605w6450dea9f1e3227c@mail.gmail.com> Message-ID: On Sat, Feb 28, 2009 at 5:38 AM, joe ertaba wrote: > Hi Brian > > This method only works when user opens setting window first! In my case I > want to run a function from setting.js when there isn't any open "setting > window" > > Do you have any idea about this case? > Use the same technique Brian described but do it from a browser overlay instead of your "settings window". Eric -------------- next part -------------- An HTML attachment was scrubbed... URL: From silfreed at silfreed.net Sat Feb 28 17:49:17 2009 From: silfreed at silfreed.net (Douglas E. Warner) Date: Sat, 28 Feb 2009 20:49:17 -0500 Subject: [Project_owners] unique visit count In-Reply-To: <49A908E3.6060504@gmx.de> References: <49A908E3.6060504@gmx.de> Message-ID: <49A9E99D.3080603@silfreed.net> Maik Gollnick wrote: > hi, > > i have a question about my project page. Is there any way to place a > unique hit counter on the web page? > > thx Mozdev doesn't offer anything like this, but I know there are other services out there that offer free hit counters. If you just want to keep track of your stats, you can look at our overall site statistics here [1]. -Doug [1] http://stats.mozdev.org/cgi-bin/awstats.pl?config=mozdev.org -- Douglas E. Warner Site Developer Mozdev.org http://www.mozdev.org -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: OpenPGP digital signature URL: