この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2005年10月)

2005年10月29日

Bug 4697 [FAYT][Find in This Page][bfcache] フレームページで検索した後、ブックマークで別のページに移動して検索すると、検索が機能しない
初回投稿日時: 2005年10月29日23時44分23秒
最終更新日時: 2005年10月29日23時47分03秒
カテゴリ: Firefox
SNS: (list)

今日の昼頃、起きてすぐに発見してしまった。まさかと思って1.5rcの候補ビルドでテストしても再現する。

regresssionの日付を調査すると、bfcacheがデフォルトでオンになった日だったので、bfcacheをオフにしてみると、見事に動作してしまう。

FirefoxのFastFind(Find in this pageやFAYTの検索エンジン部分)は、初めて検索するドキュメントかどうかを、なかなかにトリッキーな手法で判断していたため(これにより、初期化処理を明記しなくても良くなっていた)、bfcacheが実装されるまではオブジェクトの参照カウンタの妙でうまく動いていた。

しかし、bfcacheが非表示になったページのオブジェクトをつかんだままにしているようで、このせいで、ユーザが新しいページを検索しようとしているのに、FastFindは古い(メモリ内にある)前のページを検索しているというのがこのバグの正体。

とりあえず、緊急でパッチを書いて、rc1のブロッカー申請をして、driversにもメールを投げてみたが、今のところ無反応。

トリッキーなコードは見てて面白いけど、仕様変更に弱いから止めましょう。

関連するかもしれないエントリ

bug 4697を含むエントリ

Bug 4697 [FAYT][Find in This Page][bfcache] フレームページで検索した後、ブックマークで別のページに移動して検索すると、検索が機能しない #3

Bug 4697 [FAYT][Find in This Page][bfcache] フレームページで検索した後、ブックマークで別のページに移動して検索すると、検索が機能しない #2