webkitの事

By in 工事中エリア on 2013/07/05


 WebKitは不思議なプロジェクトだ。よく知られているように、Google ChromeとApple Safari(およびiPhoneやiPadに搭載されるそのモバイル版のMobile Safari)は、オープンソースベースで開発が進む「WebKit」というコードベースを共有している。
ここにさらに、WebKitを統合したGUI開発フレームワーク「Qt」を抱えるノキアや、搭載ブラウザをWebKitベースのものに置き換えようとしているBlackBerryのRIMが加わり、WebKitチームは今やアップル、グーグル、ノキア、RIMなどのベンダに所属するエンジニアたち(リスト)が、同居するプロジェクトとなっている。

WebKitは、元々アップルのMac OS Xに搭載されるSafariのレンダリングエンジンとして、LinuxやBSDといった、Unix系用のレンダリングエンジンであるKHTMLをフォークして開発された。現在はその他の多くのプラットフォームに移植されている。
 wikipedia

LinuxやBSDなどのUnix系用ブラウザとして、1998年に KDEプロジェクト の HTMLレンダリングエンジン “KHTML” と KDE のJavaScriptエンジン (KJS) が開発された。その後、アップルが2002年にそれらをフォークしてWebKitを開発した。 wikipedia

WebKitはKHTMLを基にしたHTMLパーザかつレンダラであるWebCoreと、KJSを基にしたJavaScriptエンジンであるJavaScriptCoreを下位ライブラリとして含む。 wikipedia

 レビュワーはWebKitプロジェクトの門番のような人々で、どういうコードをWebKitに入れるか、入れないかを決めている。
 レビュワーになれるのは、大量のパッチをコミットしているか、ある程度レビューの実績がある人。WebKitの全体像やコードの書き方が分かっているということで推薦されて、反対意見がない場合にレビュワーとなれる。
 WebKit/Google Chrome開発者に聞く、HTML5最前線

「レビューの通し方として、IRCでいかに(担当となるレビュワーを)捕まえて話すかとか、何か困っていることがあれば、それを助けるなどしていかに自分のvisibilityを高めていくかも、案外重要です」(鵜飼氏)WebKit/Google Chrome開発者に聞く、HTML5最前線

WebKitはマルチプラットフォーム対応で、プラットフォームに依存する部分とそうでない部分が分かれている。依存部分は、Mac OS X、Qt、GTK、Windowsなどのそれぞれで、Xcode、Qmake、autoconf、Visual Studioなどの関連ファイルが存在していて、それぞれ異なるビルドシステムに対応している。現在、WebKitコミュニティで、この煩雑さを解決しようという話も出てきているというが、現状では1つのファイルを追加するだけでも非常に面倒な作業が発生しているという。WebKit/Google Chrome開発者に聞く、HTML5最前線

 このため、何か新機能を実装したら、まずプラットフォーム依存部分としてSafari対応を優先的に行うことで、アップル在籍者が多くを占めるWebKitチーム内で物事が進みやすくなる。それが冒頭の発言で、グーグルのエンジニアがSafariのコードを書くことがあるという理由だ。WebKit/Google Chrome開発者に聞く、HTML5最前線

 「何か解決すべき課題があるとき、過去にこういう経緯があって、こういう問題があるので、こういう機能を実装したい、というのをdesign docという形で文書化するんですね。グーグルでは、それをレビューして仕様や実装を決めていく。ところがWebKitにはそういう文化がなくて、せっかく書いてもまず反応が返ってくることはありませんね(笑)」(鵜飼氏)WebKit/Google Chrome開発者に聞く、HTML5最前線

「WebKitにはDump Renderer Treeというテスト用アプリがあって、それにHTMLを食わせるんです。それぞれのコンポーネントにユニットテストというものは用意されていません。ユニットテストをやろうという人もWebKitの中にはいるので、これは単に歴史的経緯ではないかとも思いますが」(鵜飼氏)WebKit/Google Chrome開発者に聞く、HTML5最前線

ほかのブラウザベンダでは、WebSocketの実装はどうなっているのだろか?

 「Mozillaは昔からパッチがあります。ただ、延々と(Firefox本体には)入っていません。Operaからは、われわれのところにどうやってテストしているのかという質問が来ていたり、仕様にコメントを出してきているので実装を検討していると思います」(鵜飼氏)WebKit/Google Chrome開発者に聞く、HTML5最前線

2013年4月3日、AppleとGoogleの開発方針の対立により、GoogleはWebKitをBlinkにフォークさせる事を発表した。同日、OperaもWebKitではなく、Blinkを採用することを表明した。翌日の4月4日、Appleは、Google V8 JavaScript Engineの排除、JavaScriptCore以外の使用の排除、Skiaの排除、Googleのビルドシステムgypの排除などの計画を表明し[12]、Safari用のエンジンとなった。wikipedia

One thought on “webkitの事

  1. Pingback: webkitの事 | 批評のロドリゲス書房 : ちゅどん道中記