WebKit

WebKitとは



WebKitは、Appleが中心となって開発しているオープンソースのHTMLレンダリングエンジン群の総称です。HTML、CSS、JavaScript、SVG、MathMLなど、Webページの構成要素を解釈し、表示する役割を担っています。

元々はmacOSに搭載されているSafariのレンダリングエンジンとして、Unix系OS向けのKHTMLをベースに開発されました。しかし、現在ではmacOSだけでなく、Windows、Linux、モバイルなど、多くのプラットフォームに移植され、幅広く利用されています。

ライセンス



WebKitの主要なコンポーネントであるWebCoreおよびJavaScriptCoreライブラリは、GNU Lesser General Public License(LGPL)でライセンスされています。その他の部分は、修正BSD[[ライセンス]]で利用可能です。このオープンソースライセンスにより、WebKitは幅広い開発者によって改良され、様々なプラットフォームに組み込まれています。

歴史



WebKitは、Safariのレンダリングエンジンとして、KHTMLをフォークして開発されました。初期はAppleが中心となって開発を行いましたが、その後、KDEノキアGoogleTorch Mobileなど、多くの企業やコミュニティが開発に貢献しています。

起源


WebKitの起源は、1998年KDEプロジェクトで開発されたKHTMLに遡ります。KHTMLはUnix系OS向けのブラウザであるKonquerorのHTMLレンダリングエンジンとして開発され、KDEJavaScriptエンジンであるKJSと共に、高いWeb標準準拠とInternet Explorerとの互換性確保を目指していました。

2002年AppleがKHTMLをフォークし、WebKitの開発を開始しました。WebKitは、KHTMLを基にしたHTMLパーザ兼レンダラであるWebCoreと、KJSを基にしたJavaScriptエンジンであるJavaScriptCoreを包含しています。その後、WebKitはパフォーマンス向上や表示の改善、Web標準へのさらなる準拠のために、KHTMLから大幅な修正が加えられました。

開発とオープンソース化


WebKitは、macOS標準のウェブブラウザであるSafariの基盤技術として利用されています。また、外部アプリケーションからもその機能を容易に利用できるよう、Objective-CのAPIが提供されています。これにより、Webサーバとの通信、Webページの取得、表示、外部プラグインの利用などが可能になります。

2005年6月、AppleはWebKitをオープンソース化し、CVSとBugzillaへのアクセスを公開しました。これにより、より多くの開発者がWebKitの開発に携わることが可能になりました。その後、バージョン管理はCVSからSubversionに移行し、2007年初めにはCSS拡張の実装が開始されました。

2007年11月には、HTML5のメディア機能のサポートが実現し、動画のネイティブ描画やスクリプトコントロールが可能になりました。また、2008年にはAcid3テストに合格し、Web標準への適合性も示されました。

WebKit2


2010年、WebKit2の開発が発表されました。WebKit2は、プロセス分離モデルを採用し、従来のWebKitとはAPI仕様が大きく異なっています。そのため、WebKit2という新たな名称が与えられ、従来のWebKitと区別されています。

WebKit2はAppleTizenなどで採用されており、iOS 8以降のSafariではWebKit2が採用されています。

Blinkとの分裂


2013年GoogleはWebKitをフォークし、Blinkを開発することを発表しました。これは、開発方針の対立や、WebKitの複雑化による開発の遅延が原因とされています。Google ChromeはBlinkへ移行し、Operaも同様にBlinkを採用しました。一方、AppleはWebKitの独自開発を継続し、Googleの技術を排除する方針を示しました。これにより、WebKitはGoogleが直接利用するエンジンではなくなりました。

移植



WebKitは、当初macOS向けに開発されましたが、現在は多くのプラットフォームに移植されています。Google ChromeやAndroid標準ブラウザなどの主要なブラウザ、モバイル端末やゲーム機にも搭載されています。また、Adobe AIRなどのアプリケーション開発環境でも採用されています。

コンポーネント



WebKitは、主に以下のコンポーネントで構成されています。

WebCore


WebCoreは、HTMLとSVGのレイアウト、レンダリング、DOMの処理を行うライブラリです。LGPLで公開されており、WebKitフレームワークはWebCoreとJavaScriptCoreをラップし、Objective-C APIを通じて利用できます。また、クロスプラットフォームC++プラットフォーム抽象化も提供しています。

JavaScriptCore


JavaScriptCoreは、WebKitにJavaScriptエンジンを提供するフレームワークです。KDEJavaScriptエンジンKJSを基に開発され、パフォーマンス向上が図られています。SquirrelFishやSquirrelFish Extremeなどの高度な技術も採用されており、高速なJavaScript処理を実現しています。

Drosera


Droseraは、WebKitのJavaScriptデバッガーでした。現在はWeb Inspectorに含まれるデバッギング機能に置き換えられています。

SunSpider


SunSpiderは、JavaScriptのパフォーマンスを測定するためのベンチマークスイートです。WebKitチームによって開発され、多くのブラウザ開発者がJavaScriptのパフォーマンスを比較するために使用しています。

WebKitを使用するソフトウェア



WebKitは、数多くのソフトウェアで利用されています。ウェブブラウザ、クロスプラットフォームアプリケーション、モバイルプラットフォーム、ゲーム機など、幅広い分野でその技術が活用されています。

ウェブブラウザ


Arora, Midori, QtWeb, NetFront Browser NX など、クロスプラットフォームのブラウザ
OmniWeb, Sunrise, Stainless, iCab, Shiira など、macOS向けのブラウザ
Lunascape, Sleipnir など、Windows向けのブラウザ
rekonq, Web など、Unix系OS向けのブラウザ
WebPositive など、Haiku向けのブラウザ
BlackBerry Browser, Iris Browser, NetFront Life Browser など、モバイル向けのブラウザ

ゲーム機


ニンテンドー3DS インターネットブラウザー
Wii U インターネットブラウザー
PlayStation Vita Browser
PlayStation 3/4 インターネットブラウザー

WebKit2


Safari (macOSおよびiOS向け)

開発終了


Flock, Swift, RockMelt など

Chromiumベース (Blinkへ移行)


Google Chrome, SRWare Iron, CoolNovo, AnciaChrome など

その他のソフトウェア


iTunes, AIR, Dreamweaver CS4/CS5, Steam など
macOSのメール、Dashboard など
Android, iOS, HP webOS, ChromeOS など

まとめ



WebKitは、Webブラウジングの中核となる技術であり、その進化はWeb全体の進歩に大きく貢献しています。オープンソースとして開発され、様々なプラットフォームで利用されているため、その影響力は非常に大きいと言えます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。