とりあえず、httpリクエスト送信前にリクエストを察知できるイベントでhttp-on-modify-requestってのがあります。 http-on-modify-requestのリスナを書くと、こんな感じです。
var httpRequestObserver = {
observe: function (aSubject, aTopic, aData)
{
if (aTopic !== "http-on-modify-request")
return;
var httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
...
},
QueryInterface: XPCOMUtils.generateQI(["nsIObserver"])
};
ここで、aSubjectをnsIHttpChannelにキャストしているコードはよく見ます。 でも、nsIHttpChannelに通信を止めるようなメソッドはありません。 nsIHttpChannelだけじゃhttpリクエストのキャンセルはできないんですね。

