Dec 01, 2005

Ez Sidebarで不具合が出る件

自分で確認したのは以下の現象。

  • 結合した状態から分離→再結合すると、タブを切り替えてもウィンドウのタイトルバーに反映されなくなる。というか、分離したサイドバーのウィンドウを閉じると、この現象が起こるようになる。

Ez Sidebarでは分離したサイドバーを正常に動かすために、他の拡張機能や組み込まれたパネル自身に対して「このウィンドウはFirefoxのブラウザウィンドウですよ」と見せかけるよう、いくつかのプロパティや関数を再定義している。プロパティはObject.__defineGetter__()を使って再定義していて、参照するとFirefoxのブラウザウィンドウの同名プロパティを返すようになっている。つまりこのgetterを通じて、サイドバーのウィンドウとブラウザウィンドウとは繋がっている。

よって、サイドバーのウィンドウ内でこのプロパティに何か変更を加えれば、それはブラウザウィンドウ内で変更がなされたのと同じことになる。バインディングのdestructorやunloadイベントでの終了処理でそういった処理を行っていれば、サイドバーのウィンドウを閉じたタイミングで、ブラウザウィンドウの終了処理が一部分だけ実行されてしまうことになり、結果、ブラウザウィンドウの挙動がおかしくなる。こういう事ではないかと考えられる。具体的にどこら辺の処理がそうなのかは、まだ分からないんだけど。

根が深いなあ。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能