Page 2 of 2
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 1:53 am
by ithinc
Giorgio Maone wrote:
The
instanceof operator calls QueryInterface internally, and it's actually the preferred way to cast interfaces in JavaScript .
Load Tabs Progressively completely screws up this because, as far as I can see, you tried to be "smart" and didn't implement
QueryInterface() at all (nor any other method of webNavigation, for the matter), but used the
__noSuchMethod__() catch-all trick, which is not "seen" by XPConnect at interface resolution time and therefore breaks instanceof (and possibly other XPCOM-related machinery). Technically speaking you're
not implementing any interface, even though some code may see them as implemented.
No, this is not the cause. Isn't QueryInterface the only way to determine whether an interface is implemented? Gecko just didn't call QueryInterface as it promises for instanceof operator. Try the following code:
Code: Select all
({QueryInterface: function() {return this;}}) instanceof Components.interfaces.nsISupports
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 3:16 am
by Jay
Guys, if you continue to lay the blame on each other, nobody will fix own plugin.
I'm one of many users of NS + LTP, and I've been wondering for last week why.t.f. do I have to allow the same sites every time I open them again ?
If NS_nightly get rids of the problem, then I look forward for stable release, as I don't want to use beta version.
But if I disable LTP , then I'd commit a suicide after launching FX with >150 saved tabs.
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 3:21 am
by Jay
edit: ohh well ... I've just checked if there are any actualizations to plugins, and there's LTP 1.0pre3
But FX cannot install the file, because there's a problem with downloading
http://releases.mozilla.org/pub/mozilla ... re3-fx.xpi
reason -228
ehh
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 4:13 am
by Alan Baxter
I got your report, Jay, but I'll leave your posts as is. I'm not going to have a kitten because of a double post. Do it myself sometimes when it's called for.
Jay wrote:If NS_nightly get rids of the problem, then I look forward for stable release, as I don't want to use beta version.
Install NoScript 1.9.9.92 from
http://noscript.net/getit#devel, Jay. It's the latest and greatest, not a beta. The only reason Giorgio hasn't pushed it out through AMO is because some users get upset if NoScript is updated more frequently than they like. Giorgio explains it in
http://forums.informaction.com/viewtopi ... 9867#p9867
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 2:12 pm
by Scott_L
Jay wrote:But if I disable LTP , then I'd commit a suicide after launching FX with >150 saved tabs.
Jay, don't disable LTP (or end it all), just go back to 0.9 - available from this link:
https://addons.mozilla.org/en-US/firefo ... ions/91919
This is holding me over fine until a fix is released.
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 5:08 pm
by Giorgio Maone
ithinc wrote:Giorgio Maone wrote:
The
instanceof operator calls QueryInterface internally, and it's actually the preferred way to cast interfaces in JavaScript .
Load Tabs Progressively completely screws up this because, as far as I can see, you tried to be "smart" and didn't implement
QueryInterface() at all (nor any other method of webNavigation, for the matter), but used the
__noSuchMethod__() catch-all trick, which is not "seen" by XPConnect at interface resolution time and therefore breaks instanceof (and possibly other XPCOM-related machinery). Technically speaking you're
not implementing any interface, even though some code may see them as implemented.
No, this is not the cause. Isn't QueryInterface the only way to determine whether an interface is implemented? Gecko just didn't call QueryInterface as it promises for instanceof operator. Try the following code:
Code: Select all
({QueryInterface: function() {return this;}}) instanceof Components.interfaces.nsISupports
Another cause is that you probably didn't implement your wrapping inside a proper XPCOM component.
XPConnect machinery uses QueryInterface for instanceof on XPCWrappers, which are created for a JS object only when it crosses the XPCOM boundaries (e.g. when you pass them as arguments to a XPCOM method or obtain a JS-implemented XPCOM component trough createInstance()/createService()).
That's why your test on a raw (non XPCWrapped) JS Object fails.
@
everybody:
just install NoScript's
latest development build, it works around this LTP bug.
Re: Why do I need to enable a domain each time I return to a
Posted: Mon Jun 21, 2010 8:43 pm
by Jay
thx Alan for information, seems I had obsolete version of NS
Scott: I can't remember which exactly, but one of plugins I use didn't like LTP 0.9, so I had to use 1.0alpha, or use
reload tabs progressively plugin.