32に含まれる)、その技術的な話を書こうかと。Firefoxにおける文字ラスタライザは複数存在する。OS)ただし、現在のFirefoxにおいては、ほとんどの描画をMoz2Dから行うので、純粋にCairoだけ描画されるパターンってのは通常では少ない。あげればプリンタへの印刷だけ。Firefoxでは文字をそのまま描画しているわけじゃなく、各ラスタライザはOpenTypeフォーマットのタグを解析して文字コードではなくグリフIDベースで描画しているため、そのまま文字列渡してOSのAPIで描画しているわけではない。各種プラットフォーム用にラスタライザがいろいろ存在するため、CoreGraphicsのラスタライザであればApple形式のカラー絵文字が描画出来たり、FreeTypeのラスタライザであればAndroid形式のカラー絵文字の描画ができたりするなど、差異は存在している。モダンブラウザではOpenTypeの機能をCSSからコントロールすることができる。通常のOSの描画APIだけではCSSの規格で書かれていることが実現できないので、グリフレンダリングについてはより低レベルのAPIを利用している。低レベルAPIで描画が行われるので、各プラットフォーム間でほとんど表示できる機能が同じになっているのだけど、各ラスタライザの違いによってどうしても吸収できない差異に関しては若干存在はしている。Glyph今回サポートしたMicrosoftが提案しているカラー絵文字が使えるカラーグリフフォーマットというのはmpeg-OTspecに提案されているもので、投票次第になるけどおそらくISO規格として次のOpenTypeの規格に含まれるものになる予定。仕様書はmpeg-OTspecに登録すればダウンロード可能なので、誰でも入手は可能である。OpenTypeのあるテーブルに入れてそれを表示するって形式。画像ファイル持ってる場合は単純に作成可能なフォーマットだ。ベクターフォントではないから、解像度が高いものを持つ必要がある。OpenTypeってのもある。AdobeとMozillaが推している規格でFirefoxですでに利用可能になっている。これはOpenTypeのSVGテーブルにSVGを入れる形式になっていて文字としてSVGを表示できる。FontはおそらくSVG2で忘れ去られると思うよ。今回のMicrosoftフォーマットはちょっと違うアイデアを利用してて、COLRテーブルとCPALテーブルの追加によってカラーグリフを提供しているということ。ベクターフォントである。OpenTypeフォントってのは、CMAPテーブルで文字が一つのグリフIDにマッピングされててそのグリフIDで文字を示してる。今回のフォーマットはそのグリフIDに複数のグリフIDを割り当てて、しかも各グリフIDに色の情報を追加する仕組みになっっている。(LayerRecord)。こんな感じで一つの文字を表すのに複数のテーブルを使って文字を構成する。8.1からサポートされているのだけど重要なのはDirectWriteでしか扱えない仕組みになってる。従来のGDI形式の描画方式を使ったアプリケーションでは扱えない。Windowsアプリケーションでカラー絵文字を扱いたかったらDirectWriteで描画しろってのがMicrosotの答えだ。Geckoそろそろカラー絵文字のサポートを入れようかと考えた時、Firefoxの場合もDirectWriteラスタライザのみのサポートにしようかと考えていたのだが、結果としてOpenTypeフォントを解析すれば全プラットフォームのサポートできるんじゃない?って話になって全プラットフォームサポート可能な方向性で実装することになった。描画テストを追加するためにダウンロードフォントでもこの形式をサポートするようにしている。ダウンロードフォント利用する場合、FirefoxやChromeではotsと呼ぶサニタイザライブラリを利用している。otsはフォントデータを解析して、フォントファイルが正しいフォントかどうかをチェックして、知らないOpenTypeタグの削除したりする。ots用のサニタイザを書いてもよかったんだけど、Firefox側にサニタイザを別途用意することでフォントファイルの正確性をチェックしてる。(IDWriteFontFile::Analyze)でも同様のサニタイズをやってたりする。otsのサニタイザに関してはバグはファイルしておいたし、Google的にもやる方向で動くみたい。Glyphをサポートした。全プラットフォームで利用可能になっている。Chadwick先生がPKIの講演をするということで行ってきた。彼はX.500で有名な方だよね。内容としてはX.509の現状とそれの問題点、その問題点をどう解消するか的な話なんだけど、現在だと証明書発行局が信頼できるかどうかなんてのはわからないし、実際いろんなプロセスを通じてブラウザはルート証明書を入れているけど、そのルート証明書を発行した機関は常にセキュアであるかなんてわかりはしない。DigiNotarの件が発生したプロセスを考えても、それを利用者が問題のあるプロセスが存在してたということを知る術がない。知るのは事件が発生した後だ。問題がある証明書が存在してたとして、それを発行した会社やそのルート証明書を入れたベンダが利用者のリスクを担保してくれるわけでもない。そのため、発行機関等を信頼できるための別のメトリック・プロトコルが必要なのじゃないか的な話を解説してた。Brokerという表現で示していた。Brokerってモデルも難点があって、それをビジネスとして成り立たない場合にこれを運用することはないんじゃないかということ。(WPKOPS)の活動についての話が興味をそそる話だった。PKIの使用状況について、どのように動作してて、また使われているのかを文書化する試みが行われていて、各ベンダーにアンケートを送っているが、クライアント側だとMozillaやComodoは回答済みで、GoogleとMicrosoftは回答作成中だとか、、サーバーベンダだと世界最大の某データベースベンダや、最近話題のOSSな某SSLライブラりは回答拒否だとか。そのため現状をまとめたドキュメントを作成するのがちょっと難しくなってるらしい。この講演で触れられていたけど、FirefoxはCRLのサポートはすでに切っているので、証明書の取り消しはOCSPをサポートする必要がある。ルート証明書をFirefoxに入れたいと思っているベンダはOCSPのサポートを行う必要がある。(社内のサーバーの場合失効リストを管理できないってこと?)。authenticationとauthorisationの話とかも面白かったんだけど、まとめきれる内容はない。いう内容の濃い話だったんだけど、ここらに興味がある人が世の中に少ないんだろうなぁ。