ようやくコードフリーズに至った。Firefox 3.5 Beta 4は来週前半にもリリースされる見通しだ。
現在ビルド作業中だが、エラーが多発しているためShiretoko Nightlyさえリリースできていない状態である。直前になって53個もの修正を加えようとするのは無理があった。主にJavaScriptエンジンの関係だが、順次チェックインしていけばこんなことにはならなかったろうに。
開発の動向
当ブログは、Beta 4の開発動向をその都度記事にしてきた。興味のある方は最後に掲げる関連記事を参照していただきたい。とはいえ、それ以外にも言及しておくべき事柄は残っている。本記事はそれをメインに扱う。
まずはパフォーマンスの点から。前にも触れたが、スタイルシートのSpeculative Parsing(投機的解釈)がBeta 4から導入される(Bug 457810)。これまではスクリプトだけを対象としていたが、スタイルシートにも拡張されたことで、多数のスタイルシートを適用しているWebページでスピードアップが見込める。
TraceMonkeyの対象をDOMへと拡張するプロセスも少しずつ進んでいる(Bug 480187)。Firefox.nextで実現される予定だったものを、一部前倒しでFirefox 3.5にもってきているのだ。
そのほか、履歴メニューを開く処理が遅いというバグが解消された(Bug 487777、新秀の介の日記[2009-04-19])。さらに、Vistaでスマートロケーションバーの動作が遅くなった問題(『今日のコードフリーズはたぶん無理』)も、原因となるパッチがバックアウトされ、正常化している。
ユーザーインターフェイス(UI)に関しては、タブの切り離し機能に変更が加えられた。一連のバグ修正(Bug 475066、Bug 488984)によって、『続報:Firefox 3.1のタブ機能が使いやすく修正』で取り上げた問題が解消されたのだ。
具体的に言うと、タブをコンテンツ領域(ページの表示領域)にドロップした際、ちゃんとページの履歴を保持したままタブが分離され、新規ウィンドウに移るようになった。タブの元ウィンドウだけでなく、別ウィンドウでも同様だ。Beta 3で生じたリグレッション(機能後退)に対処し、Beta 2の挙動に戻ったものといえる。
ただ、ウィンドウ外に関しては、タブバーの延長線よりも下の位置でドロップしないと反応しなくなっている。たとえば、タブを真上にドラッグして、デスクトップ上でドロップした場合、Beta 3ではタブが分離されるが、Beta 4ではそうならない。意図的にそのような仕様にしたようなのだが、Alice0775氏も指摘しているとおり無意味だ。リグレッションと評価すべきだろう。
「最近の履歴を消去」は、ダイアログが変更され、Beta 3とはかなり印象が違っている(Bug 480169)。「Scene Side B」や「やってMotors」を参照のこと。
加えて、閉じたウィンドウのアンドゥができるようになった点も見逃せない(Bug 394759)。こちらは「新秀の介の日記」(2009-04-23)を参照。
その他、細かな点だが、ページの転送中はマウスポインタの形状が変化しなくなった(Bug 481359)。これまでは、たとえばVistaなら読み込み中も回転するリングが出ていたけれども、本当にビジー状態のときに限定されたわけだ。
バックエンドでは、『カラーマネージメント・コンポーネントの更新』で扱ったqcmsの採用が大きい。ICC version 2には対応しているが、Version 4には未対応のため、ICCプロファイルが埋め込まれた画像で見映えが変化するケースがある。Beta 3まではVersion 4にも対応していたので、これもリグレッションだ。次のマイルストーンで改善されることを期待しよう。
もう一つ大きいのは、HTML5のlocalStorageに対応した点だろう(Bug 422526、Bug 486654)。担当者が開発陣を粘り強く説得し、パッチの投入にこぎ着けた。Webアプリケーションの開発者にとっては朗報である。
以上のほか、jit.chrome=trueにしているとPiroさんのWebサイトでクラッシュするバグ(Bug 481302)は、公式にはBranchでの修正が未検証のまま止まっているものの、実際は解決済みだ。
Code Sprints
『Firefox 3.5に追加されるかもしれないフロントエンド側の機能』で、Code Sprintsという小プロジェクトを取り上げた。フロントエンドの開発に余裕があるので、Beta 4のコードフリーズまでにスピーディーに開発を進めて、一つでも多く新機能を導入しようとするものだった。
Beta 4のコードフリーズに至った現在、その成果はどのようになっているのだろうか。
完成して採用
- Asynchronous Annotation Protocol Handler
- Restore Visible Tabs First
- Focus Ring Cleanup
- Privacy Prefpane Refresh
- Undo Close Window
意外にも、当初の予定どおり完成した機能は少ない。「Privacy Prefpane Refresh」と「Undo Close Window」が大きな変更といえる。
一部完成して採用
- Clear Recent History by Time Range
- Improve Plugin Find and Install
「Clear Recent History by Time Range」は、期間を詳細に選択するUIが間に合わなかった。それ以外の部分は完成したので採用されている。また、「Improve Plugin Find and Install」は、コードが改良されたもののUIは変更されなかった模様だ。
完成したが未採用
- Bookmark Dialog Focus
- Places Expiration Performance Refactoring
「Bookmark Dialog Focus」は、Firefox 3.5へパッチを投入する承認を得たが、一部の開発者から異議が出て、そのまま止まっている。他方、「Places Expiration Performance Refactoring」は投入の承認を求めることすらしていない。理由は不明だ。Placesのパフォーマンスを改善できるのだから、Firefox 3.5に導入してもいいと思うのだが。
開発継続中
- about:me
- Network Error Pages
- Tab Matches In Awesomebar
- Always have option to Add Search
- Rebuild Software Update without browser element
- Awesomeformcomplete
- Places DB Creation Scripts
- Windows Theme Polish
- About:newtab
開発担当者たちには悪いが、「About:newtab」がFirefox 3.5に入らなくてよかった。UIもパフォーマンスもまだまだ改善すべき点が残っていたので、無理に投入していれば強い批判は免れなかっただろう。
「Awesomeformcomplete」は、便利そうだったので開発が間に合わなくて残念だ。