WebKit

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
WebKit
開発元 アップルKDEノキア[1]
対応OS クロスプラットフォーム
対応言語 C++
サポート状況 開発中
種別 レンダリングエンジン
ライセンス LGPL / BSD-style
公式サイト webkit.org
テンプレートを表示

WebKit(ウェブキット)は、アップル[要出典]が中心となって開発されているオープンソースHTMLレンダリングエンジン群の総称である。HTMLCSSJavaScriptSVGMathMLなどを解釈する。

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

ライセンス[編集]

WebKitのWebCoreおよびJavaScriptCoreライブラリはGNU Lesser General Public License (LGPL) 、その他の部分は修正BSDライセンスで利用可能である[2]

歴史[編集]

WebKitは元々、Mac OS Xのウェブブラウザ "Safari" のレンダリングエンジンとして使用するため、LinuxやBSDといったUnix系用のブラウザ "Konqueror" のKHTMLソフトウェア・ライブラリを基にアップルによって作成され、現在までに、アップル、KDE、ノキア、Google、Torch Mobileなどによって改良が加えられた。

起源[編集]

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

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

当初、KHTMLとKJSは、Mozillaプロジェクトによって同じくオープンソースで開発が進められていたGeckoエンジンの基本方針である高いWeb標準への準拠と競合しないよう、Internet Explorerとの高い互換を目指し開発が行われていた。

その後、WebKitでは両ライブラリともパフォーマンス向上やWebサイトの表示の改善、Web標準へのさらなる準拠のために、基となったKDEの実装からかなりの修正が加えられている。

開発・オープンソース化[編集]

Mac OS X v10.3以降に搭載されているMac OS X標準のウェブブラウザ、Safariの基礎を成している。プログラマはわずかな作業でその機能を外部アプリケーションから利用できる。Objective-CからWebKitのAPIにアクセスすることでWebサーバとの通信、Webページの取得および表示、外部プラグインの利用などを扱うことができる。

2005年6月7日、Safariの開発者Dave Hyattは自身のブログ上でアップルがWebKitをオープンソース化し(それまではWebCoreとJavaScriptCoreのみがオープンソースであった)、CVSBugzillaへのアクセスを公開することを発表した[3]。これに関してはBertrand SerletがAppleのWWDC 2005にて初めて公式発表を行っている。また、2006年1月10日にCVSからSubversionに移行した。

2007年初めにはアニメーションなどを含む新たなCSS拡張の実装に着手した[4]。これらの拡張は標準化のため2009年にW3Cにワーキングドラフトとして提出された[5]

2007年11月には、HTML5のメディア機能のサポートを達成したことが発表された[6]。このHTML5に部分対応したWebkitでは、組み込み動画のネイティブ描画とスクリプトコントロールが可能である。

2008年3月26日、WebKit r31356(最初のスコア100はr31342)が、世界で最初に公開されたAcid3ウェブ標準準拠の指標の一つ)に合格したレンダリングエンジンとなった[7]。2008年9月25日、スムーズなアニメーションを含め、Acid3を完全にパスしたと発表された[8]

WebKit2[編集]

2010年4月8日、分離プロセスモデルを採用したWebKit2[9]の開発が発表された[10]。WebKit2の採用例としては、AppleやTizenなどがある。WebKit2ではWebKitから大幅にAPIの仕様が変更されており、互換性が失われている。そのため「WebKit2」という新たな名称を採用し、従来のWebKitとは区別できるようにしている。

2011年7月21日にアップルがWebKit2エンジンであるSafari5.1を公開した[11]

Blinkとの分裂[編集]

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

移植[編集]

当初Mac OS Xのために開発されたため、WebKitを使用したウェブブラウザはMac OS X専用のものが多かったが、Google Chrome (Chromium) など、LinuxやWindows向けウェブブラウザにもWebKitを採用したものが出てきている。アップル自身もWindows版のSafariの開発にも用いている。最近ではWebKitはデスクトップにとどまらず、モバイルプラットフォームでも活用され始めている。

  • ノキアは、自社のSymbian OS上のインターフェース環境S60 3rd Editionのブラウザ用に、WebKitをS60に移植した (S60 WebKit)[13]
  • アドビシステムズは、FlashFlex、HTML、JavaScript、Ajaxの技術を用いて、高度なインターネットアプリケーションを構築するクロスプラットフォームランタイムであるAIR(コードネームApollo)において、HTMLやJavaScriptを処理するエンジンとしてWebKitを採用している[14]。また、Adobe Dreamweaver CS4での採用が発表された[15]
  • Googleは、Google Chromeや携帯電話プラットフォームAndroidで採用している[16]
  • WebKit/GTK+は、GTK+向けのポート。様々なWebブラウザやメールクライアント等で利用されている[17]
  • Windows向けのウェブブラウザであるLunascapeは、バージョン5.0αから、WebKitを選択可能なエンジンの一つとして搭載。
  • Iris Browserは、Torch MobileによるWebKitをベースにした、QTとQtopia、Windows Mobile向けブラウザ。1.0.5PreviewよりWindows Mobile 5もサポートされた[18]
  • Opera Softwareは、自社の独自路線を変更し、Webkitの採用を決めたことを発表していた[19]。ただし、前述の通りその後Blinkへ移行している。

コンポーネント[編集]

WebCore[編集]

WebCoreは、WebKitプロジェクトにより開発された、HTMLおよびSVGのレイアウト、レンダリング、Document Object Model (DOM) ライブラリである。WebCoreの完全なソースコードLGPLで公開されている。WebKitフレームワークはWebCoreおよびJavaScriptCoreをラップし、C++ベースのWebCoreレンダリングエンジンおよびJavaScriptCoreスクリプトエンジンにObjective-C application programming interface (API) を提供することにより、Cocoa APIベースのアプリケーションから容易に参照することを可能にしている。より最近のバージョンはクロスプラットフォームのC++プラットフォーム抽象化を含んでおり、また様々なportは追加APIを提供している。

JavaScriptCore[編集]

JavaScriptCoreは、WebKitの実装にJavaScriptエンジンを提供するフレームワークであり、またMac OS Xのその他の場面で使用される同様のスクリプティングを提供する[20][21]。JavaScriptCoreはKDE's JavaScript engine (KJS) ライブラリおよびPerl Compatible Regular Expressions (PCRE) 正規表現ライブラリに由来している。KJSおよびPCREからフォークされてから、JavaScriptCoreは多くの新機能について改良がなされ、パフォーマンスも大幅に向上している[22]

2008年6月2日、発表時点で従来より1.6倍の高速化を果たした、新たなJavaScriptCoreとしてバイトコードインタプリタVM[23]のSquirrelFishが発表された[24]。また、9月18日には、SquirrelFishよりおよそ2倍の高速化を果たしたSquirrelFish Extreme (SFX) が発表された[25]

Drosera[編集]

DroseraはWebKitのナイトリービルドに含まれていたJavaScriptデバッガーである[26][27]。Droseraの名は食虫植物(つまりバグを食べる)のモウセンゴケ属の学名から付けられた。DroseraはWeb Inspectorに含まれるデバッギング機能によって置き換えられている[28]

SunSpider[編集]

SunSpiderは、現在および近い将来に想定されるJavaScriptの使用(画面描画、暗号化、テキスト操作など)に関連するタスクのJavaScriptパフォーマンスを測定する目的で作られたベンチマークスイートである[29] The suite further attempts to be balanced and statistically sound.[30]

SunSpiderはアップルのWebKitチームによって2007年12月にリリースされた[31]。SunSpiderは広く受け入れられ[32]、他のブラウザーの開発者もブラウザー間のJavaScriptパフォーマンスを比較するため使用している[33]

WebKitを使用するソフトウェア[編集]

ウェブブラウザ[編集]

Chromiumベース[編集]

WebKit2[編集]

開発終了[編集]

その他のソフトウェア[編集]

  • Mac OS XおよびWindows向け
  • Mac OS X向け
    • Mail - Mac OS X付属のソフトウェア
    • Dashboard - Mac OS X付属のソフトウェア環境
  • モバイル向け
    • Android - Googleの提唱する携帯電話用プラットフォーム
    • iOS - 内包され、SafariやMail等で利用されている
    • HP webOS - HP社のAccess Linux Platform (ALP) をベースとした携帯電話用プラットフォーム
  • Google Chrome OS

バージョンの対応関係[編集]

Google Chrome は 28以降 Blink に移行したが、下記表は Blink を含まず、WebKit の対応表。

WebKit Safari Mobile Safari Google Chrome Android
Browser
Chrome for
Android
3DS Wii U PS3 PS Vita
525 3.1, 3.2 3.1 0.4
528 4.0 1 1.5, 1.6
530 4.0 - 4.0.2 2 2.0, 2.1
531 4.0.3 - 4.0.5 4.0.4 4.10 - 1.03 - 1.81
532 4.0.5 3, 4
533 4.1, 5.0 5.0.2 5 2.2, 2.3
534 5.1 5.1 6 - 12 3.0 - 4.2 2.1.0J - 3.1.0J
535 13 - 18 16 - 18
536 6.0 6.0 19, 20 4.0.0J - 2.00 -
537 7.0 7.0 21 - 27 4.3 25 - 27

脚注[編集]

[ヘルプ]
  1. ^ Companies and Organizations that have contributed to WebKit” (英語). trac.webkit.org. 2010年4月15日閲覧。
  2. ^ Apple Inc.. “Open Source - Internet & Web - WebKit” (英語). 2009年10月8日閲覧。
  3. ^ http://weblogs.mozillazine.org/hyatt/archives/2005_06.html#008281
  4. ^ CSS Transforms
  5. ^ CSS3 Animations
  6. ^ HTML5 Media Support by Antti Koivisto, Surfin' Safari blog, November 12th, 2007
  7. ^ WebKit achieves Acid3 100/100 in public build
  8. ^ Full Pass of Acid3
  9. ^ WebKit2
  10. ^ [webkit-dev] Announcing WebKit2
  11. ^ “Apple、マルチプロセス採用の“WebKit2”を搭載した「Safari」v5.1を公開”. 窓の杜. (2011年7月21日). http://www.forest.impress.co.jp/docs/news/20110721_462091.html 2011年7月24日閲覧。 
  12. ^ webkit-dev Cleaning House
  13. ^ “ノキア、'Web Browser for S60'エンジンのコードをオープンソース・コミュニティに公開” (プレスリリース), ノキア・ジャパン, (2006年5月24日), http://www.nokia.co.jp/about/release_060524.shtml 2011年7月24日閲覧。 
  14. ^ Adobe Integrated Runtime (AIR)
  15. ^ Adobe Dreamweaver CS3 10 周年記念イベント レポート
  16. ^ What is Android?
  17. ^ WebKitGtk - GNOME Live!
  18. ^ Torch Mobile
  19. ^ Stephen Shankland (2013年2月14日). “Opera、ブラウザエンジンにWebKitを採用へ”. CNET News. http://japan.cnet.com/news/service/35028206/ 2013年2月14日閲覧。 
  20. ^ The WebKit Open Source Project – JavaScript
  21. ^ KDE-Darwin mailing list, "JavaScriptCore, Apple’s JavaScript framework based on KJS", 13 June 2002.
  22. ^ The Great Browser JavaScript Showdown” (2007年12月19日). 2009年10月8日閲覧。
  23. ^ SquirrelFish – WebKit – Trac
  24. ^ Surfin’ Safari - Blog Archive » Announcing SquirrelFish
  25. ^ Introducing SquirrelFish Extreme
  26. ^ WebKit.org Drosera wiki article
  27. ^ Introducing Drosera”. Surfin’ Safari. 2009年10月8日閲覧。
  28. ^ Commit removing Drosera”. 2009年10月8日閲覧。
  29. ^ Muchmore, Michael (2008年6月18日). “Review: Firefox 3 Stays Ahead of Browser Pack”. http://www.foxnews.com/story/0,2933,368182,00.html 2008年9月6日閲覧。 
  30. ^ SunSpider JavaScript Benchmark”. 2008年9月6日閲覧。
  31. ^ Announcing SunSpider 0.9” (2007年12月18日). 2008年9月6日閲覧。
  32. ^ Atwood, Jeff (2007年12月19日). “The Great Browser JavaScript Showdown”. 2008年9月6日閲覧。
  33. ^ Resig, John (2008年9月3日). “JavaScript Performance Rundown”. 2008年6月9日閲覧。
  34. ^ HTML5対応のWebKit版ブラウザ | 株式会社ACCESS
  35. ^ NetFront Life Browser 和製PDA用WebブラウザがAndroid端末に登場”. アンドロイダー. TriWorks Corp. JAPAN (2010年11月15日). 2010年11月15日閲覧。
  36. ^ ニンテンドー3DS用インターネットブラウザーLGPL適用オープンソースについて アーカイブの中にWebKitのソースコードが入っている
  37. ^ ACCESS、情報家電向けブラウザの新製品「NetFront® Browser NX」を発表
  38. ^ インターネットブラウザーの主な仕様
  39. ^ Wii U インターネットブラウザーの主な仕様
  40. ^ 任天堂の新ゲーム機「Wii U」に ACCESSの「NetFront® Browser NX」をブラウザエンジンとして提供 | 株式会社ACCESS

関連項目[編集]

外部リンク[編集]