Re: Add new "network channel about to connect" event to nsIObserverService?
Jason Duell <[email protected]> Sat, 11 Aug 2012 18:07:44 -0700
| Newsgroups | gmane.comp.mozilla.devel.netlib |
|---|---|
| Message-ID | <[email protected]> |
On 08/11/2012 12:19 AM, Christian Biesinger wrote:
>
> Hrm yeah, there's two issues:
> - socket transports have a different concept of "connect" than channels do
> - how do you map from a socket transport to the active channel,
> whatever that means
>
> Still I'm very hesitant to make an event generic to all channels.
> There is no central point that can handle sending it. Can we just give
> ftp and websockets their own version of the event?
>
I'm agnostic on the "central point" issue--if necko doesn't guarantee
that all network requests trigger one central event type, then we're
just shoving the responsibility to catch all types of network traffic
onto the client(s) that want to monitor it, who are more likely to get
it wrong.
That said, the fastest way to make progress here is to just give ftp its
own 'ftp-on-modify-request' and be done with this for now. Websockets
bootstrap from an HTTP request, so the regular http on-modify-request
event is enough to catch them (the appID will still be gettable from the
HTTP channel's callbacks).
biesi: thanks for replying while you're in Hawaii :)
Patrick (Wang, not mcmanus :) : -go ahead and get started hooking
http-on-modify-request: (Cancel() the channel if it's not allowed to use
the network)
https://developer.mozilla.org/en-US/docs/Observer_Notifications
Note that while HTTP channels send out 'http-on-modify-request' on both
parent/child, websockets currently only trigger that event on the
parent--let me know if that's an issue, but it would be non-trivial to
change that. So I'd recommend doing the policy checks on the parent
process if possible.
I've also added a new bug for the FTP notification:
https://bugzilla.mozilla.org/show_bug.cgi?id=782085
You could probably knock off that bug yourself--just copy how
nsHttpHandler::OnModifyRequest works (and see the calls to it from
nsHttpChannel and HttpChannelChild, and copy to the FTP channels).
Jason
> On Aug 10, 2012 9:00 PM, "Patrick Wang" <[email protected]
> <mailto:[email protected]>> wrote:
>
> Hi,
>
> We also need to know which app is attempting to open a channel.
> AFAIK, it might be difficult to know the app information (app id)
> if we implement this event in SocketTransport. As a
> SocketTransport instance is not belong to a single app and can be
> reused by nsHttpChannels form various apps.
>
> Patrick
>
> ----- Original Message -----
> From: "Christian Biesinger" <[email protected]
> <mailto:[email protected]>>
> To: "Jason Duell" <[email protected] <mailto:[email protected]>>
> Cc: "Jonas Sicking" <[email protected]>,
> [email protected]
> <mailto:[email protected]>, "Patrick Wang"
> <[email protected] <mailto:[email protected]>>, "Boris Zbarsky"
> <[email protected] <mailto:[email protected]>>
> Sent: 2012年8月11日 星期六 14:05:51
> Subject: Re: Add new "network channel about to connect" event to
> nsIObserverService?
>
>
>
> I can't look at bugzilla right now, but I think you're better off
> to add this to the socket transport service. Just because channels
> can be implemented by lots of things but there's only one socket
> transport service, that way you're guaranteed to catch all network
> activity.
>
> Written on my phone will jelly bean voice recognition. Results
> were dubious.
> On Aug 10, 2012 12:49 PM, "Jason Duell" < [email protected]
> <mailto:[email protected]> > wrote:
>
>
> In
>
> https://bugzilla.mozilla.org/ show_bug.cgi?id=780087
>
> we'll be blocking B2G app's traffic if they exceed a quota, and/or
> only allow it if the phone is in a wifi network, etc.
>
> Honza came up with the idea of adding a CSP policy to do this
> monitoring, but sicking comments on IRC that "putting it in the
> CSP code sounds like a scary hack though given that it's not CSP
> code at all". So perhaps CSP is a bad place for it.
>
> We could use http-on-modify-request, but that only fires for HTTP
> requests.
>
> I'm currently thinking we might want to add a new
> nsIObserverService notification that's issued for "necko channel
> for app AppID about to connect on network interface FOO". How does
> that sound? Am I missing some other clever way of doing this?
>
> Jason
>
_______________________________________________
dev-tech-network mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-network