Bug 5988 プラグインの説明に非ASCII文字があると about:plugins に説明文が出てこない
初回投稿日時: 2008年03月13日20時18分40秒
カテゴリ: Firefox Mozilla Core バグ修正
SNS:
Tweet (list)
MacOS XでQuickTimeのプラグインの説明がabout:pluginsでは表示されない、アドオンマネージャでは文字化けするというバグです。
以前にも説明したような気もしますが、MacOS Xはテキストファイル等ではShift_JIS等のローカルなエンコーディングを使いますが、ファイルシステムはUTF-8です。このようなエンコーディングのずれはMacOS Xでのみ発生するものなので、旧MacOSの時代に書かれたコードではこれらを意識して使い分けていませんでした。そのため、Shift_JISで取得されたQuickTimeプラグインの情報がUTF-8としてデコードしようとする訳ですが、UTF-8としてはInvalidなバイト列であるため、処理を中断して無かったことにしている、というのがabout:pluginsの場合の問題でした。
また、about:pluginsはDOM経由で文字列を取得するため、マルチバイトを意識した構造になっていたのですが、アドオンマネージャではプラグイン情報を管理しているだけだった国際化されていないクラスから直接文字列をISO-8859-1として取得していたため、文字化けしていました。
前者はnsPluginHost、後者はnsPluginTagで、nsPluginHostはnsPluginTagのDOM用のラッパーのようなものでした。そこで、nsPluginHostは文字のエンコーディングを気にしないように修正し、nsPluginTagはUTF-8で常にデータを持つように修正しました。これによって、どちらのクラスにアクセスしても、国際化された文字列が返されるようになっています。また、MacOS X固有のエンコーディングの違いにも配慮した設計に修正しています。