2013年1月8日火曜日

firefoxアドオン : httpリクエストのキャンセルをするアドオンのサンプル

とりあえず、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リクエストのキャンセルはできないんですね。

firefoxアドオン : インスタンスがどのインターフェースを実装しているか調べる

firefox上のjavascriptで使用されるfirefox特有のオブジェクトは名前が「nsI」で始まるインターフェースを実装している事があります。 でも、「どのオブジェクトがどのインターフェースを実装しているか?」っていう情報はあまり見かけません。 ってことでコード上で調べる方法を試してみました。

とはいえ、javascriptの知識が浅いのでリフレクションとか継承階層の調べ方とか全くわかりません。 そもそもXPCOMオブジェクトってjavascriptからそういうのを調べられるんですかね?

まぁそういう事は、アドオンに関する興味が続いたらそのうち分かってくるかな? 今は場当たり的なtry&errorで済ませましょう。

とりあえずfor文で、あるイベントで渡されたインスタンスが持つメソッドを調べてみたら、

2013年1月7日月曜日

Microsoft Network MonitorでhttpのKeep-Aliveを確認する

Microsoft Network Monitor3.4でhttp通信のKeep-Aliveを確認してみました。 ネットワークにもツールにも精通していないので「多分コレで確認できるんだろうなぁ」という程度のネタです。

Microsoft Network Monitorについては、前の投稿でやった程度の知識しかありません。

やり方は、

plalaのDNSサーバの調子が悪い?

どうも最近ネットをしていて「サーバーが見つからない」というエラー表示を見る事が多くなりました。 プロバイダーはplalaなんですが、そのDNSサーバの調子が悪いんでしょうかね?

真偽の確認方法は分からないんですが、とりあえず状況を改善するためにGoogle Public DNSを使ってみることにしました。

ただ、アクセス情報がどのように使われているか分かりませんよね? トラッキングとかが癪なのでプライマリDNSはそのままで、セカンダリだけをgoogleのDNSに変えました。 googleさんにはアクセス情報の断片だけのご提供。

さて、どうなるか。 しばらく様子見です。

以下、windows7でのdnsの設定方法です。