「このツールはファイルをブラウザ内だけで処理します」

と書かれていても、重要なファイルなら自分で確認したくなることがあります。

ChromeのDevToolsにあるNetworkパネルを使うと、ページが送受信したネットワーク通信を確認できます。

Networkで分かること

Chrome DevToolsのNetworkパネルは、DevToolsを開いている間のネットワーク要求を記録します。

リクエストごとに、

  • 宛先
  • HTTPステータス
  • 種類
  • Initiator
  • Payload
  • Response
  • Timing

などを確認できます。

操作前にNetworkを開く

WindowsならChromeで対象ページを開き、

Ctrl + Shift + I

でDevToolsを開きます。

上部の Network を選びます。ページ遷移を伴う操作も追いたい場合は、必要に応じて Preserve log も有効にします。

Chrome公式ドキュメントでも、Networkパネルはページのネットワーク活動を記録・分析するための機能として案内されています。

いったんログを消す

ページ読み込み時には、

  • HTML
  • CSS
  • JavaScript
  • フォント
  • 画像

など通常の通信が大量にあります。

確認したいのは「ファイルを選んだ後に何が起きるか」なので、NetworkのClearボタンで一度ログを消します。

ファイルを選んで処理を実行する

その状態で、

  1. CSVなどのファイルを選択
  2. 診断・変換を実行
  3. Networkに新しいリクエストが出るか確認

します。

何も出なければ、少なくともDevToolsが記録している範囲では、その操作中に新しいネットワーク要求が発生していない可能性が高くなります。

リクエストが出たらPayloadを見る

通信が出た場合はクリックし、

  • Request URL
  • Payload
  • Headers
  • Initiator

を見ます。

ファイル名、本文、Base64、巨大なPOSTデータなどが入っていないか確認します。

ただし、分析用イベントやエラーログなど、ファイル本体とは無関係な通信の場合もあります。

Initiatorを見る

ChromeのNetworkパネルでは、その通信を何が起こしたかをInitiatorから追えます。

JavaScriptファイルと行番号が分かれば、処理コードを確認できる場合があります。

外部ドメインも確認する

自社サイトだけでなく、

  • analytics
  • CDN
  • エラー監視
  • 広告
  • 外部API

への通信もあります。

「通信がある=ファイル送信」とは限りませんが、どこへ通信しているかを知る材料になります。

Networkに何も出ない=絶対安全、ではない

Networkパネルは有力な確認方法ですが、それだけで完全な安全性を証明するものではありません。

  • DevToolsを開く前の通信
  • ブラウザ拡張による通信
  • Service Worker
  • 別のタイミングで行われる通信

なども考えられます。

重要なデータなら、ツール提供者の説明、プライバシーポリシー、ソースコードなども合わせて確認します。

MDNのFile APIが示すように、ユーザーが選んだファイルはブラウザ内で読み取れます。一方、Fetch APIを使えばネットワークへ送信することもできます。

だから「ブラウザツール」という言葉だけで判断せず、実際の通信を観察するのが一番分かりやすい確認方法です。

参考

  • Chrome for Developers: Network panel
    https://developer.chrome.com/docs/devtools/network/overview
  • MDN: File API
    https://developer.mozilla.org/en-US/docs/Web/API/File_API
  • MDN: Fetch API
    https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

おすすめの記事