Bug 6041 [ViewSrc] ソースビューアでGo to Lineでキャレットは移動するが、スクロールしない
初回投稿日時: 2008年03月05日04時34分26秒
カテゴリ: Firefox Mozilla Core バグ修正
SNS:
Tweet (list)
Bug 5845で文字列を選択した際にreflowを発生させるために、textframeが一度dirtyになり、その時にnsISelectionController::scrollSelectionIntoView
が呼び出されるとスクロール先の座標算出に失敗するというバグでした。
APIの互換性を保つために、scrollSelectionIntoView
が座標計算前にpendingとなっているreflowをflushするようにしました。このため、特殊な拡張のみがこのバグの影響を受けるかもしれません。このメソッドを呼び出している拡張が、C++のネイティブなコードを持ち、その中からこれを呼び出している場合です。この際に、呼び出し前にnsPresContext
やnsIPresShell
やnsIFrame
のポインタをweakで保持していた場合や、nsIFrame
のプロパティ等をキャッシュしていた場合、scrollSelectionIntoView
呼び出し後には再取得する必要があります。前者はstrongで保持していた場合、問題にはなりませんが、それらのオブジェクトは解放されてしまうかもしれませんので、期待通りの動作が維持できるかどうかは未知数です。