2011-02-04

32bitプラグインを動作させる

Firefox 4用には投入しない (許可でないし、そもそもWindows x64版のFirefox 4はリリースしない) けど、x64版でも32-bitプラグインを動かすための調査は終了してるので、そのメモ

IPCのコンパチビリティ

IPC(プロセス間通信)を利用して64bitプロセスなfirefoxと32bitプロセスなplugin-containerと通信することで、64bit版Firefoxでも32bitなプラグインを動作することができるんだけど、一応ポインタとかは64bitとして扱うようにIPCで定義している。なので、問題なさそうな気がするんだけど、調べてみると一つだけ問題点があって、32bitなuint32に互換性がないんだよね (Mac OS X以外)。32bit版だと64bitで通信してて (uint32を扱うつもりがsize_tとして扱われて、なおかつsize_tは64bitとして通信されることになってる)、64bit版は32bitで通信してる。32bit版の方が変だろということでちょっと話したところ、折れない感じなんで、64bit版でもuint32を64bitで通信するように変えることにした (ダサイ)。これはpost Firefox 4で入れる予定

あとは、プラグインのバイナリフォーマットをチェックして32bitだったら32bitのplugin-containerを起動するようにするとか、Firefox 32bitのインストールパスをレジストリから自動認識するとかいろいろあるんだけど、そんな感じで直したもの

バイナリは、http://wiki.mozilla-x86-64.com/Firefox:DownloadにFirefox-4.0b12pre.en-US.win64-x86 64.installer.plugintest.zipとして置いておいた。Just testもの。あ、そうそうx86のNightlyをインストールしないと動かないよ

パッチが見たい? MozillaのMercurialユーザーディレクトリのどっかに置いてある

Windowsは分かったから、Linuxは?。うーん、Windows版commitしてからかなぁ

0 件のコメント: