2012年12月23日日曜日

ESウェブブラウザ通信 - escort バージョン 0.2.4 公開

前回、『年内に次の0.2.4のリリースを』とお知らせしていた通りescort バージョン 0.2.4 (alpha)を先ほどリリースしました。

escort バージョン 0.2.4 (alpha)の主な改良点は以下の通りです:
  • DOM Living Standardから、NodeElementインターフェイスで未実装だった基本的な属性やオペレーション(getElementsByClassNameなど)の実装を追加。
  • script要素のdefer, async属性のサポート。
  • テーブルやフロールートになるボックスを可能ならフローティング ボックスの隣にレイアウトできるように更新。
その他にも細かなバグの修正が含まれています。CSS2.1 Conformance Test Suiteの達成率は約91.6%に向上しています。

Fedora 17とUbuntu 12.10用のパッケージは、こちらからダウンロードできます。

で、終わってしまうと、ただのリリースノートになってしまいますね。今回は実際のところ何をどうして、どんな風に変えたのか、といったところをまとめてみます。

ウィキペディアの忠犬ハチ公のページ


ウィキペディアはシンプルなページ構成になっていて、現状のescortでもきちんと表示できるようになっていてほしいサイトの代表格です。0.2.3では下のスクリーンショットのように「目次」の部分が下に行きすぎてしまっている、というような問題が残っていました。

escort 0.2.3

これはCSSのフロートの仕様で、テーブルなどフロールートになるボックスについては、
implementations should clear the said element by placing it below any preceding floats, but may place it adjacent to such floats if there is sufficient space.
と規定されている部分のMAYの部分が未実装だったためでした。この部分、文面からはoptionalというニュアンスで受け取っていたのですが、実際にはCSS2.1 Conformance Test Suiteでも、MAYの方の動作を積極的にテストしている部分があって(floats-wrap-bfc-001-left-overflowなど)、実用上はMUSTになっているようです。

0.2.4ではこの仕様に対応して、想定通りの表示ができるようになりました。

escort 0.2.4

はてなさんのトップページ


はてなさんのトップページも、比較的シンプルなのに0.2.3ではうまく動いていなかったページのひとつでした。

escort 0.2.3
間違い探しのようですが0.2.3では、
  • 598usersのような表示が最初のひとつしか出ていない、
  • 検索ボックスの位置が下にずれている、
  • 『一般 | 社会 | 政経 | 生活・人生 | 芸能 | 科学』というタブをクリックしても効かない、
といった問題がありました。それぞれ原因は、
  • HTTPプロトコル処理の実装の問題
  • デフォルト スタイルシートの設定の問題、
  • script要素の処理がHTTPパーサーと同期していない; 未実装のNode, Elementインターフェイスのオペレーションが使われている、
といったものでした。このあたりの問題も0.2.4では改善されています。

escort 0.2.4

改良点のより詳細については、ESプロジェクトのGoogle+コミュニティで随時報告していますので、あわせてご参考にしてください。

Dogfooding


ところで今回、最初に書いたようなリリースノート的な書き方をすると、
『これこれを直したので、このページも表示できるようになりました』、
という雰囲気になるのですが、実際のところは、ウィキペディアやはてなさんのページを見てみて、
『このページが表示できないので、これこれを直しました』、
という流れになっています。

DOMも、HTMLも最新の仕様はLiving Standardモデルに移行して、日々修正が加えられ続けています。こういう状況になると、仕様書の1章から順に実装していく、という手法はすこし無理がありそうです。CSS 2.1の方は、仕様書がW3Cの勧告になって、テストスイートも十分に揃っているという状況でしたので、escortでは比較的しらみつぶし的な開発手法が採れたのとは対照的です。

そういう点を踏まえて、先日David Baronさんがブログに書かれていた、
Perhaps most importantly, dogfooding is a way to shift the development cycle away from the (often endless) task of building items on abstract requirement lists and instead focus on fixing the things that are needed to make the product usable for real users.
という文章を読んでみると、とても深みがあります(David BaraonさんはCSS 2.1が勧告としてまとまるより、ずっと前からCSSなどの開発を進められていたという点に注意)。

とにかく使ってみる(Dogfooding) ことで明らかになった、簡単な問題からつぶしていく、というのがソフトウェアを実用レベルに持っていくのには効果的、ということなのだと思います。

まとめ


次のescort 0.2.5のリリースは年が明けてからになります。0.2.5では、まずescortで利用しているWeb IDLによるインターフェイスの定義を先日、勧告候補(CR)が発行されたHTML5Canvas 2Dのものにアップデートする予定です。Web IDLコンパイラesidlも必要に応じてアップデートしていきます。

また年が明けると少し遅れていたFedora 18がリリースされそうです。これに合わせてfc18のescort 0.2.4とesidl 0.2.2のパッケージを可能であればリリースしていきます。何か問題が発生してしまった場合は、それぞれ0.2.5, 0.2.3までfc17ベースで進めていく予定でいます。

ESウェブブラウザは、HTML5がW3Cの勧告になる予定の2014年Q4までには"broadly usable"な状態にもっていくのを目標に開発を進めています。膨大な量の仕様書をただ見ていると先に進まなくなってしまいそうなので、そこはdogfoodingしながら、というわけなのでした。

今回はここまでです。みなさま、よいクリスマスを。

0 件のコメント:

コメントを投稿