Darin Fisher wrote:
Remember, necko doesn't know about prinicipals.  What should a channel
implementation do when it wants to redirect?  What context does it
pass to the secureNewChannel method?

It should call newChannel (with a comment explaining why) and then notify redirect observers. Security manager being one of those. That's the setup we have now and it's ok for this very special case, imo.

What about third-party protocol handlers?
If we keep the CheckLoadURI checks in nsIOService, I think they should be ok....

Again, what about channels created by third-party protocol handlers?

Ah, hmm... _that_ is a good question. Right now they just have no way of doing meaningful security checks. To enable them to we'd need to either pass a security context for such checks to them or allow them to get it from somewhere. I don't have a strong preference on this, I think, if only because I suspect this is much rarer than people creating channels in general. I think the argument that an explicit context makes catching bugs easier still applies, but....

What does "deny" and "allow" mean?  What question is being asked that
these flags answer?

"Am I allowed to load this URI (or channel)?"

"deny" means "If you're not nsSystemPrincipal, then no" at the moment. I think it should mean "If you don't have UniversalXPConnect, then no". In particular, imo "deny" should mean "not even if you're from the same scheme, if you don't have UniversalXPConnect".

"allow" means "yes, no matter who you are."

What matters really is what happens before AsyncOpen is called.

That's the hope, yeah.... I'm not sure some channels don't do stuff before asyncOpen, but you're right that they shouldn't do it.

Perhaps you really want to intercept AsyncOpen?

That would work as well, possibly even better in terms of having complete information, but asyncOpen doesn't go through a central place like the IOService. :(

-Boris
_______________________________________________
dev-tech-network mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-network

Reply via email to