WebKit

AppleのHTMLレンダリングエンジン

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

WebKit
2015年時点のロゴマーク。
開発元 AppleKDEノキア[1]
最新評価版
Nightly[2]
リポジトリ ウィキデータを編集
対応OS クロスプラットフォーム
対応言語 C++
サポート状況 開発中
種別 レンダリングエンジン
ライセンス LGPL / BSD-style
公式サイト webkit.org ウィキデータを編集
テンプレートを表示

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

ライセンス

編集

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

歴史

編集

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

起源

編集

LinuxやBSDなどのUnix系用ブラウザとして、1998年KDEプロジェクトHTMLレンダリングエンジン "KHTML" と KDE のJavaScriptエンジン (KJS) が開発された。その後、Appleが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以降に搭載されているmacOS標準のウェブブラウザ、Safariの基礎を成している。プログラマはわずかな作業でその機能を外部アプリケーションから利用できる。Objective-CからWebKitのAPIにアクセスすることでWebサーバとの通信、Webページの取得および表示、外部プラグインの利用などを扱うことができる。

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

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

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

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

WebKit2

編集

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

2011年7月21日にAppleがWebKit2エンジンであるSafari5.1を公開した[12]iOS向けのSafariでは、iOS 8よりWebKit2が採用された[13]

Blinkとの分裂

編集

2013年4月3日、AppleとGoogleが開発方針をめぐって対立したことや、Chromiumを搭載した時期からWebKitエンジン自体が複雑化したことで開発の遅滞が問題視された。このことからGoogleはWebKitをBlinkにフォークさせる事を発表した。直前にChromiumへの参加という形でWebKit採用を発表していたOperaも、それに伴いBlink採用を表明する形となった。翌日の4月4日、AppleはV8の排除、JavaScriptCore以外の使用の排除、Skiaの排除、GoogleのビルドシステムGYPの排除などの計画を表明し[14]、WebKitはGoogleが直接使うエンジンではなくなった。しかし、Linux向けビルドも用意され、依然としてOSSでありSafari専用という訳ではない[15][16]

移植

編集

当初macOSのために開発されたため、WebKitを使用したウェブブラウザはmacOS専用のものが多かったが、Google Chrome (同系統のChromiumも同様。ただしそれらは2013年4月以降はWebKitから分岐されたBlinkを使用) など、LinuxやWindows向けウェブブラウザにもWebKitを採用したものが出てきている。Apple自身もWindows版のSafariの開発にも用いている。最近ではWebKitはデスクトップにとどまらず、モバイルプラットフォームでも活用されている。

  • ノキアは、自社のSymbian OS上のインターフェース環境S60 3rd Editionのブラウザ用に、WebKitをS60に移植した (S60 WebKit)[17]
  • アドビは、FlashFlex、HTML、JavaScript、Ajaxの技術を用いて、高度なインターネットアプリケーションを構築するクロスプラットフォームランタイムであるAIR(コードネームApollo)において、HTMLやJavaScriptを処理するエンジンとしてWebKitを採用している[18]。また、Adobe Dreamweaver CS4での採用が発表された[19]
  • Googleは、Google ChromeAndroid標準ブラウザ(4.3以前)、携帯電話プラットフォームAndroidで採用している[20]
  • WebKit/GTK+は、GTK+(現・GTK)向けのポート。様々なWebブラウザやメールクライアント等で利用されている[21]
  • Windows向けのウェブブラウザであるLunascapeは、バージョン5.0αから、WebKitを選択可能なエンジンの一つとして搭載。
  • Iris Browserは、Torch MobileによるWebKitをベースにした、QTとQtopia、Windows Mobile向けブラウザ。1.0.5PreviewよりWindows Mobile 5もサポートされた[22]
  • Opera Softwareは、自社の独自路線を変更し、Webkitの採用を決めたことを発表していた[23]。ただし、前述の通りその後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エンジンを提供するフレームワークであり、またmacOSのその他の場面で使用される同様のスクリプティングを提供する[24][25]。JavaScriptCoreはKDE's JavaScript engine (KJS) ライブラリおよびPerl Compatible Regular Expressions (PCRE) 正規表現ライブラリに由来している。KJSおよびPCREからフォークされてから、JavaScriptCoreは多くの新機能について改良がなされ、パフォーマンスも大幅に向上している[26]

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

Drosera

編集

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

SunSpider

編集

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

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

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

編集

ウェブブラウザ

編集

WebKit2

編集
  • macOSおよびiOS向け

開発終了

編集
Chromiumベース
編集

その他のソフトウェア

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

バージョンの対応関係

編集

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

WebKit Safari Mobile Safari Google Chrome Android
Browser
Chrome for
Android
3DS New 3DS Wii U PS3 PS4 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.00 - 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.0.0-2J - 9.5.0-22J 2.1.0J - 3.1.0J
535 13 - 18 16 - 18 9.5.0-23J -
536 6.0 6.0 19, 20 8.1.0-0J - 4.0.0J - 1.00 - 1.76 2.00 - 3.20
537 7.0 7.0 21 - 27 4.3 25 - 27 2.00 - 3.30 -

脚注

編集

出典

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

関連項目

編集

外部リンク

編集
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy