
■ proxy.pacのデバッグ (debug)
長々と書いてきましたが、いよいよ当初の本題であるプロキシパックのデバッグです。
まぁ、プロキシパックに記述する内容自体は単純な内容になるので、机上で十分にデバッグ可能です。
...嘘です。そもそも可能なら、こんな要件自体がありえません。
まぁ、私の場合はデバッグというよりも、実行結果を確認したかっただけなんですがね。
■ 伝統のalert
プロキシパックの実体はjavaScript、そしてjavaScriptには伝統的なデバッグ方法としてalertというメッセージを表示する方法があります。
こいつを使えば、デバッグが可能な模様。
FindProxyForURL関数の先頭に、alertを仕込みます。メッセージだけだと寂しいので、引数として受け取ったurlとhostも表示します。
/*
* proxy.pac
*/
function FindProxyForURL(url, host) {
alert('pac start : url=[' + url + '] | host=[' + host + ']');
return "DIRECT";
}
■ プロキシパックの反映
プロキシパックは、設置した場所を参照するだけなので、サーバー(サービス)の再起動をしなくても反映します。
ただし、クライアント側のブラウザに変更したプロキシパックを読み込ませる必要があります。
この辺りは、外部スクリプトとして使用したjavaScript(jsファイル)と同じような動きをするようです。具体的に言うと、起動しているブラウザを全て終了して、再度ブラウザを起動するって手順ですね。
OSやブラウザの状態によっては、それでも反映しないことがありますが、その場合はブラウザの一時ファイルや閲覧履歴の消去を試して下さい。
■ IEの場合
さて、プロキシパックを変更した状態でIE(Ver8)を起動します。
今回は、初期表示されるページを「http://yahoo.co.jp/」にしておきました。

ふむ、無事にメッセージが表示されました。されましたが、ポップアップが何度も表示されて、正直ウザいです。
この、FindProxyForURLって関数ですが、私が思っているよりも頻繁に実行されているようで、今回のように関数の先頭にalertを仕込むと、異様な回数、メッセージが表示されてしまいました。
まぁ、if文とかを使って条件を満たした部分にalertを仕込めば良いだけなので、これはこれで良いんですがね。
■ Firefoxの場合
ポップアップがウザければ、Firefoxを使えばいいようです。
Firefoxの場合、proxy.pacからのalertは画面に表示せずに、エラーコンソールに出力されるそうです。
Firefoxを起動して、メニューバーから「ツール」→「Web 開発」→「ブラウザコンソール」を選択します。

表示された「ブラウザコンソール」画面の、「ロギング」を選択します。
表示されてたログの「PAC-alert:」で始まるのが、プロキシパックのalertで指定したメッセージになるようです。

■ 後書き
他のブラウザ(google chrome、Opera、Safari)でも試してみたのですが、プロキシパックに仕込んだalertの内容を確認することが出来ませんでした。少なくとも、IEのようにポップアップは表示されなかったです。
Firefoxのように、何らかの表示手段があるのかもしれませんが、正直どうでもよくなりましたので、ここまでにします。
なお、私はIEを使ってデバッグを行うことにしました。
Firefoxのログ表示は、腰を据えてやるには良いのですが、軽くテストしたいって場合にはログを探す手間が掛かる分だけ面倒です。
前回:proxy.pac(プロキシパック)対応 No.7 pac作成(概要)
次回:proxy.pac(プロキシパック)対応 No.9 pac作成(基本)
投稿記事の一覧:http://harikofu.web.fc2.com/
--- blog end ---
スポンサードリンク


