WebKitとは何? わかりやすく解説 Weblio辞書 (original) (raw)

WebKit

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

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

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はデスクトップにとどまらず、モバイルプラットフォームでも活用されている。

コンポーネント

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

開発終了

Chromiumベース

その他のソフトウェア

バージョンの対応関係

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

WebKit Safari Mobile Safari Google Chrome Android Browser Chrome forAndroid 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.shtml。2011年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

関連項目

外部リンク

iOS
バージョン iPhone OS 1 iPhone OS 2 iPhone OS 3 iOS 4 iOS 5 iOS 6 iOS 7 iOS 8 iOS 9 iOS 10 iOS 11 iOS 12 iOS 13 iOS 14 iOS 15 iOS 16 iOS 17 iOS 18
派生OS iPadOS iPadOS 13 iPadOS 14 iPadOS 15 iPadOS 16 iPadOS 17 iPadOS 18 watchOS tvOS audioOS visionOS
アプリケーション App Store FaceTime iTunes Store News(英語版Photo Booth Safari TV Watch ウォレット カレンダー カメラ 株価 拡大鏡 計算機 計測(英語版) コードスキャナー コンパス 探す 写真 ショートカット ジャーナル(英語版設定 天気 電話 時計 パスワード(英語版) ヒント ファイル ブック フリーボード フィットネス(英語版フィードバックアシスタント ヘルスケア ボイスメモ ポッドキャスト ホーム 翻訳(英語版マップ ミュージック メール メッセージ メモ リマインダー 連絡先 終了 友達を探す iPhoneを探す Newsstand
機能 AirDrop AirPlay AirPrint Apple Intelligence CarPlay Cocoa Touch コントロールセンター Core Animation Night Shift(英語版) スタンバイ スクリーンタイム 通知センター SDK Shazam Siri Spotlight SpringBoard VoiceOver WebKit
サービス Apple Arcade Apple Card Apple Pay Cash ファミリー共有(英語版Game Center iCloud iMessage Apple Music iTunes Connect(英語版News News+ Push Notifications TestFlight(英語版Apple TV Apple TV+ Apple TVオリジナル番組 終了 iAd iTunes Radio(英語版MobileMe iDisk
その他 iPhoneの歴史 Jailbreak WWDC Swift Appleシリコン FairPlay iFund Metal 論争300ページのiPhone請求書 アンテナ問題 バッテリー問題(英語版
一覧 カテゴリ
macOS
バージョン Public Beta 10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 10.14 10.15 11 12 13 14 15
アプリケーション Automator DVD プレーヤー FaceTime Finder Font Book iPhoneミラーリング Launchpad Mac App Store News(英語版Photo Booth QuickTime Player Safari Siri TV カレンダー 株価 計算機 探す 写真 辞書 システム設定 ショートカット スティッキーズ チェス テキストエディット 天気 時計 パスワード(英語版) ヒント ブック フリーボード プレビュー ホーム ボイスメモ ポッドキャスト マップ ミュージック メール メッセージ メモ リマインダー 連絡先 廃止 Dashboard Front Row iChat iPhoto iSync iTunes
ユーティリティ AirMacユーティリティ Audio MIDI 設定 Bluetoothファイル交換 Boot Campアシスタント ColorSyncユーティリティ Digital Color Meter Grapher Mission Control Time Machine VoiceOverユーティリティ アーカイブユーティリティ アクティビティモニタ 移行アシスタント イメージキャプチャ 画面共有 キーチェーンアクセス コンソール システム情報 スクリプトエディタ スクリーンショット ターミナル ディスクユーティリティ ディレクトリユーティリティ フィードバックアシスタント プリントセンター 廃止 グラブ ネットワークユーティリティ Sherlock
テクノロジーおよびインタフェース AirDrop AirPlay AirPrint Apple Pay Apple File System Apple Intelligence Apple Remote Desktop AppleScript Apple Type Services for Unicode Imaging Aqua Audio Units AVFoundation Bonjour Boot Camp Cocoa (API) ColorSync Core Animation Core Audio Core Data Core Foundation Core Text Core Image CUPS Darwin Dock FileVault Game Center Gatekeeper Grand Central Dispatch(英語版Inkwell Keychain launchd Mach-O Metal Mission Control Night Shift(英語版Open Directory plist Quartz Quick Look Rosetta 2 Shazam Siri Spotlight Time Machine Uniform Type Identifier Universal Binary VoiceOver WebKit XNU XQuartz アプリケーションパッケージ コントロールセンター システム整合性保護 スクリーンタイム 通知センター 日本語入力プログラム ファミリー共有(英語版) マルウェア削除ツール 文字ビューア ワイヤレス診断 非推奨 Carbon (API) HFS Plus • HFSX OpenGL OpenCL 廃止 Apple Filing Protocol Classic Dashcode Project Builder Rosetta QuickTime X Spaces Xgrid QuickTime 7 ペアレンタルコントロール 32ビットアプリケーション ことえり
開発ツール Apple Developers Tools Interface Builder Swift Playgrounds Xcode
一覧 カテゴリ
レンダリングエンジン
開発中 Blink Gecko Goanna KHTML MARTHA Prince QtWebEngine Servo WebKit
開発終了 Amaya Boxely EdgeHTML Gazelle GtkHTML HTMLayout iCab Mariner Presto Tasman Tkhtml Trident
レンダリングエンジンの比較(英語版 HTMLnon-standard HTML HTML5media canvas XMLXHTML1.1 MathML SVG CSS ECMAScript DOM Graphics Typography
ウェブブラウザ
比較(英語版) 歴史(英語版一覧 UNIX対応(英語版年表 利用シェア
機能 広告フィルタリング オーグメントブラウジング(英語版ダウンロードマネージャ Cookies DNS over HTTPS DNSSEC Favicon インクリメンタルサーチ ブックマーク ブックマークレット ライブブックマーク スマートブックマーク(英語版) ブラウザセキュリティ(英語版プライバシーモード ブラウザシンクロナイザ(英語版タブブラウザ ユニバーサル・エディット・ボタン(英語版プラグイン エクステンション ウェブ標準 Acidテスト Cascading Style Sheets HTML HTML5 OCSP SVG XHTML WebGL WebSocket WebRTC XMLHttpRequest JavaScript MathML 関連項目 World Wide Web ウィジェット リッチインターネットアプリケーション Site-specific browser インターネットスイート モバイルサイト オフラインリーダー(英語版BrowserChoice.eu Pwn2Own iLoo マン・イン・ザ・ブラウザ WPAD PAC HTTP HTTP/2 HTTP/3 HTTPS TLS/SSL セキュア通信 Tor VPN プロキシ HTTPの持続的接続 HTTPパイプライン SPDY ALPN XML CRL HTMLレンダリングエンジン 推奨ブラウザ ネットサーフィン Webサーバ ブラウザ戦争 フルブラウザ ネット検閲 ディープ・パケット・インスペクション ブロッキング コンテンツフィルタリング アドブロック インターネット広告 アドネットワーク アクセス解析 ウェブビーコン フィンガープリント フィルターバブル SEO
デスクトップ KHTML, WebKit, BlinkChromium系フリーソフトウェア(開発継続中) Brave Braver Chromium Dooble(英語版) Iridium(オランダ語版Konqueror Otter Browser Web フリーウェア(開発継続中) Avant Blisk Dragon(英語版Craving Explorer2.x Chrome iCab Lunascape Maxthon Microsoft Edge(version 79以降) OmniWeb Opera (Version 15以降) Safari Sleipnir(version 4.0以降) SRWare Iron Vivaldi (開発終了済)すべて▲ Arora Falkon Flock (Version 3.0以降) Fluid(英語版rekonq RockMelt シイラ Origyn Web Browser Sputnik Swift Uzbl WebPositive xombrero Gecko & Servo(Firefox系)(開発継続中) Avant Basilisk(英語版) Epic(英語版Firefox GNU IceCat Lunascape SlimBrowser SeaMonkey Tor Browser Waterfox Floorp Midori (開発終了済)すべて▲ AT&T Pogo Beonex Communicator Camino Classilla Conkeror Flock (Version 2.6.1以前) Galeon Ghostzilla K-Meleon 風博士 Kirix Strata Lotus Symphony Mozilla Netscape Pale Moon(旧バージョン) Sleipnir(2.x系,3.x系のversionのみ) Timberwolf(英語版) xB Browser Trident & EdgeHTMLEdge, IE系)(開発終了済)すべて▲ aiBrowser AOL Explorer Avant Conqueror Browser Craving Explorer1.x Deepnet Explorer Donut(RAPT,unDonut) Grani GreenBrowser Internet Explorer Lunascape Maxthon MenuBox NeoPlanet NetCaptor MediaBrowser Microsoft Edge(version 78以前) Sleipnir(version 4.x系以前) _SpaceTime_(英語版) UltraBrowser WebbIE ZAC Browser Presto Opera (Version 12.18以前)▲ Goanna Pale Moon テキスト ELinks Emacs/W3▲ Line Mode BrowserLinks Lynx Net-Tamer▲ w3m ほぼテキストブラウザ▲ WannaBe(英語版)▲ その他 abaco(英語版Amaya Arachne(英語版)▲ Arena(英語版)▲ Beaker(英語版) Charon(英語版Dillo EGBrowser▲ Gazelle ホームページリーダー▲ IBrowse▲ KidZui Mosaic-CK Mothra(英語版)▲ NetPositiveNetSurf Oregano(英語版)▲ NCSA MosaicWebBoy▲ Avast SafeZone Browser
モバイル WebKit/Blink Android標準ブラウザBrave Google Chrome for Android Google Chrome for iOS Dolphin Browser iCab Mobile iLunascape Microsoft Edge S60 web browser Onion BrowserIOS専用) Opera Mobile(version 14以降) Orion Browser(IOS専用) Safari Silk SRWare Iron (for Android) ニンテンドー3DSインターネットブラウザ Steel(英語版) BOLT(英語版Opera Coast Espial HTML5 Browser Gecko Firefox for mobile iLunascape MicroB MinimoOrfoxAndroid専用)▲ Tor Browser(version 8.5以降。Orfoxの後継でAndroid専用) Trident/EdgeHTML iLunascape Internet Explorer MobileMicrosoft Edge(2020年まで)▲ Presto ニンテンドーDSブラウザー ニンテンドーDSiブラウザー Opera Mobile(version 12以前) その他 Blazer(英語版) Deepfish▲ Galio▲ ibisBrowser Iris Browser Konqueror Embedded NetFront Obigo Browser Opera Mini Skweezer Skyfire(英語版) Teashark ThunderHawk(英語版) UC Browser uZard Web Vision WinWAP Smooz
テレビ · ゲーム機 WebKit/Blink Google TV NetFront Browser NX Steam overlay Espial HTML5 Browser Amazon Silk Gecko Kylo(英語版Presto インターネットチャンネル その他 Galio▲ MSN TV (WebTV) NetFront
▲印のブラウザは開発終了 カテゴリ コモンズ