先日、HTML5 の File API が Chrome の中でどのように実装されているか調べた。JavaScript の中から readAsText() でファイルを読んだときにブラウザの中では一体なにが起きるのだろうか? そんなの fread() を呼んで終わり、だったら楽なのだが、 Chromeではそうはいかない。そもそもページを描画したりJavaScriptを実行したりしているレンダラーはサンドボックスされたプロセスの中で実行されているので、ファイルアクセスが一切できない。ではどうやるかというと、ブラウザ本体のプロセスに「このファイルを読んでください」というリクエストを投げる。プロセス間通信、IPC である。 で、このリクエストはブラウザ本体ではIPC用のスレッドが受け取るのだが、このスレッドでは同期的なファイルアクセスができない。同期的なファイルアクセスをこのスレッドでやってしま