C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

NaCl tips; 開発環境のPepper APIを更新した後のChromiumの.nmf のリフレッシュ、特にglibc版を扱う際の注意

開発環境のPepper APIのバージョンを差し替えてもnewlibなら.nexeが更新されるだけで.nmfは変更が無い。しかし、glibc版を使っている場合にはrunnable-ld.soがリンクする.soのリビジョンがちまちまと変わる(hoge.so.12345がhoge.so.23456になるとか)のに追従する必要があるので.nmfも更新が必要となる。

と、言っても私も.nmfはMakefileに記載して必要な.soを自動的に調べて生成する様にしたのでその更新は手間でもなんでもない。ビルドすれば.nmfも更新される。しかし、ちょっとした問題が開発環境ではなくウェブブラウザーに潜んでいたのでそのメモ。

ウェブブラウザー、少なくともChromium-dev 20.0.1115.1では.nmfの更新チェックが甘い様だ。.htmlのembedから指示されるせいだろうか、F5、CTRL+F5では.nmfが新しいものに更新されず古いものを読み続ける為に更新された.soを読み込めずにコケる現象が発生した。

解消方法は簡単で、chrome://chrome/settings/のShow adcanced settingsからプライバシーの項の閲覧履歴データの消去を開き、キャッシュを消せば良い。

この様な状態はウェブブラウザーの標準出力を見ていると報告が上がってNaClモジュールが動作しないのでわかるし、NaClアプリでログを標準出力しているはずがそれが出なくなる事で簡単に気付ける。