手作りのPACテストページには、HostとURLというラベルの付いた2つの入力欄があります。ボタンはその順序で値を渡します。残念ながら、PAC関数は逆の順序を期待します。

FindProxyForURL(url, host)

1つの例示的な宛先では、呼び出しは次のようになるはずです。

FindProxyForURL("https://status.office.example/", "status.office.example")

第2引数はホスト名であり、スキーム、パス、ポートを含みません。hostを既知の名前と比較するルールは、テストハーネスがそこに完全なURLを渡すと一致しません。

どちらの入力も文字列なので、JavaScriptはエラーを投げる必要がありません。スクリプトは静かに最後のreturnに到達し、もっともらしく見えるプロキシを表示できます。そのため、この不具合は悪いドメインルールと取り違えられやすいのです。

ルールより先に呼び出しを確認する

テストハーネス内の関数呼び出しを読み、その境界で2つの値を調べます。次に、既知の完全一致ホストの例外と、既定の経路を使うべき無関係なホストを比較します。例外を不正な入力に合わせるまで広げ始めないでください。

呼び出しを修正しても、評価器の補助環境は依然として検討対象です。固定されたmyIpAddress()や欠落したDNSヘルパーは、ブラウザの実際のネットワーク状態ではありません。これらは別の問いとして扱ってください。当面の修正はパラメータの契約であり、必要なら次の修正はテスト環境に意図した利用者を表させることです。

関連記事