Safariで32bitプラグインを実行可能にする「WebKitPluginAgent」

海上忍
2009-09-28 11:40:01
  • このエントリーをはてなブックマークに追加

 Snow Leopardでは、1つのユーザープロセス内に64bitコードと32bitコードを混在させることができない。これはプラグイン機構にも適用され、アプリケーションが64bitモードで実行されている場合には、64bitバイナリを備えたプラグインが必要。32bitバイナリのプラグインを利用する場合には、アプリケーションを32bitモードで起動しなおさなければならない。

 Snow Leopardに収録されているSafariでは、プロセスの分離によりプラグイン利用における「32/64bit問題」を解決している。FlashやQuickTimeなどのプラグインは、Safariとは異なるPIDを持つ「WebKitPluginAgent」の子プロセスとして実行されるため、Safari本体の動作モードには直接影響を受けないのだ。これにより、32bitプラグインの利用が可能になるとともに、ウェブブラウザ本体ともどもクラッシュするなどの問題回避も実現されている。

 プロセスを分離するという手法は、QuickLookにも採用されている。QuickLookを例にすると、32bitバイナリしか収録されていないプラグインが必要とされたとき、32bit用のデーモン(quicklookd32)が起動し、それ経由でプラグインが実行される。Spotlightも、基本的な動作原理は同じだ。

Snow LeopardのSafariでは、プラグインは「WebKitPluginAgent」の子プロセスとして動作する(画像をクリックすると拡大します) Snow LeopardのSafariでは、プラグインは「WebKitPluginAgent」の子プロセスとして動作する(画像をクリックすると拡大します)
  • 新着記事
  • 特集
  • ブログ