Darin Fisher wrote:
It looks like you are using nsIDNSService correctly, but I don't see how you are 
hooking this code up to the rest of Firefox.  You said that you based your code on 
nsSample.js, but I don't see the code here that handles XPCOM component registration.  
Feel free to attach a complete example, and I'll help debug.

-Darin

You'll find the extension plus source code here : http://moztest.lange.nom.fr/XPI/
Please read the rest of the post below for special recommendations.


You're right I'm not registering the component to the rest of FireFox as I thought it wasn't needed (as my component is local and doesn't need to be accessed by it name, etc..). I may be wrong, but Christian seems to agree ? I couldn't find any documentation on this specific item.



Christian Biesinger wrote:
On Wed, Oct 20, 2004 at 08:37:00PM +0200, Ludovic LANGE wrote:

...
netscape.public.mozilla.netlib would be a better place to ask for
nsIDNSService/nsIDNSListener specifically; this one is ok for general
xpcom questions.
I'm also posting to this newsgroup, thanks.

I have no experience in writing listener (XPCom components in Javascript) and most of my inspiration comes from lxr.mozilla.org/seamonkey/source/xpcom/sample/nsSample.js concerning the 'listener' variable.


This looks fine.


However, I don't know if I must 'register' this new component to XPCom, or if passing the variable 'listener' to the asyncResolve procedure is enough.


No, only components that want to be available via Components.classes
need to register.


If there is nothing obviously wrong with this code, can you point me towards any ressource that could help me going forward on this subject ?


I can't see anything wrong with the code (that would affect your
problem)...
(I'm also open to any other remarks...)


When you say "hang", what do you mean? That ffox doesn't redraw itself
and doesn't react to keypresses/mouseclicks?
Exactly. The only way then is to kill the process (sending Ctrl+C to the console for example)

throw Components.results.NS_NOINTERFACE;
Components.returnCode = Components.results.NS_ERROR_NO_INTERFACE;
return null;


The lines after the throw are unreachable.
You're right and it's corrected now.

if( this._thumb && aStatus ) {


You should check Component.isSuccessCode(aStatus) rather than aStatus
itself, since there are more success codes than NS_OK (0).
Done,

        var dns = see_DNS();
        if( dns ) {


This will never be null, since getService throws an exception when it
fails to get the service.
Ok,

ip = dns.asyncResolve( domain, false, listener, null );


The second arg is no longer a boolean argument (not since 2004-09-01
12:55 on the branch; the first release to contain this change is
1.0PR1). Try passing 0.
Tried.

Do you get any output in JS Console?
No, nothing there. Perhaps the hang is too quick for the content to appear.


I've set up a test case here : http://moztest.lange.nom.fr/XPI/

There you'll find the extension ( http://moztest.lange.nom.fr/XPI/test.xpi ) and the source code in unpackaged form.

You can download the extension and try it by yourself, be carefull as it is set to start only when the following url ( http://www.mozilla.org/ ) is accessed (thus enabling me to have a non-hanging FireFox when accessing others urls).
So :
1) install extension, restart FireFox with console,
2) click on (or access) http://www.mozilla.org/
3) FF1.0 PR hangs, after writing my dumps on the console.



Thank you for your time gentlemen.

Regards,

Ludovic LANGE.
_______________________________________________
Mozilla-xpcom mailing list
[EMAIL PROTECTED]
http://mail.mozilla.org/listinfo/mozilla-xpcom

Reply via email to