pac ファイル(自動構成スクリプト)をデバッグするには

メモ:  Category:windows

リモートワークの増加や GIGA スクール構想などにより、様々な環境でパソコンが使用されるようになってきました。ネットワークに接続する環境を構築する人によりさまざまな方法が用意されるのですが、その中の一つの方法として接続する環境に応じて Proxy 経由なのか直接接続なのかを切り替えてくれる自動構成スクリプト(pac ファイル)というものがあります。

スクリプト自体は JavaScript なのですが、少しデバッグが面倒だったので記録しておきます。

pac ファイルのデバッグ

Chrome のエンジンには、通信のイベントや状態に関する詳細情報を取得する機能が用意されているので、この機能を使ってデバッグの足掛かりをつかんでいきます。

Chrome を起動し、アドレスバーに chrome://net-export/ と入力します。

表示されたページに OPTIONS という部分があるので、「Include raw bytes (will include cookies and credentials)」を選択します。

OPTION を指定したら、「Start Logging to Disk」ボタンをクリックします。

ログの取得を開始

ログファイルの保存先を聞かれるので、ファイル名を指定します。

ログファイルの保存先を指定

新しいタブを開いて任意のサイトへアクセスします。

その後、元のタブに戻り「Stop Logging」ボタンをクリックしてログの収集を停止します。

ログの収集を停止

停止すると次の画面になるので、「netlog viewer」のリンクをクリックします。

ログの収集を停止

表示されたページの「ファイルの選択」ボタンをクリックします。

netlog viewer

取得したログファイルを指定すると次の画面が表示されます。

ログの読み込み

画面左の「Proxy」をクリックすると Proxy の設定が確認できます。

Proxyの確認

「Events」をクリックすると通信イベントを確認することができます。

通信イベント

pac ファイルに不具合がある場合、このイベントログに PAC_JAVASCRIPT_ERROR と出力されます。

PAC_JAVASCRIPT_ERROR

メニューについて

  • Import: net-export で取得したログファイルを読み込みます。
  • Proxy:プロキシ設定に関する情報を表示します。
  • Events:通信イベントを一覧表示します。
  • Timeline:開いているソケット数、使用中のソケット数、URL 要求、DNS 要求、送受信したデータ量などの情報をグラフに表示します。
  • DNS: DNS ルックアップのログを表示します。
  • Sockets:ソケットのログを表示します。
  • Alt-Svc:代替サービス マッピングに関する情報を表示します。
  • HTTP/2:HTTP/2 セッションと代替サービスマッピングのログを表示します。
  • QUIC:Quick UDP Internet Connections(QUIC)に関する情報を表示します。
  • Cache:キャッシュされたエントリと統計情報のリストを表示します。
  • Modules:アクティブな拡張機能とアプリのリストを表示します。
  • Prerender:アクティブな事前レンダリングとその履歴を表示します。

bluenote by BBB