Greasemonkey から Google Gears を使えないバグ(?)
グリモンから Google Gears を初期化しようとすると,パーミッション選択ダイアログが表示されずに Deny されたような挙動になってしまいます.この現象について追って見たところ,原因が分かりました.
Google Gears のパーミッション選択ダイアログは,HtmlDialog がその実態です.HtmlDialog が表示されるとき,Gears は呼び出し元のウィンドウを取得しようとします (HtmlDialog の親ウィンドウとして使用するため).このとき Gears は,JavaScript 実行環境のグローバルオブジェクトを問い合わせて (DOMUtils::GetWindow),これがウィンドウ・オブジェクトであると仮定しています.しかしながら,グリモンのスクリプトは sandbox 内で実行されるため,Gears が期待しているグローバルオブジェクトを持っていません.そして,ウィンドウが取得できず,パーミッション選択ダイアログが表示できないため,deny されてしまうのです.
これを回避するにはどうしたらよいのでしょうね.Google Gears 側で,パーミッション選択ダイアログの挙動を変更するしかないような気がします.