Chromium Embedded Framework (CEF) は、オープンソースの、他のアプリケーションからChromiumを使用できるようにしたソフトウェアフレームワークである。アプリにウェブブラウジング機能を搭載するために使用されるが、CEFが提供している機能はHTML、CSS、JavaScriptといったWeb系の技術をUIで使用できるようにすることである。

C、C 、Go、Java、Pythonなど、様々な言語のためにライブラリやバインディング (いわゆるラッパーライブラリ)がある。

概要

Chromium Embedded Frameworkには、以前にメンテナンスされていたCEF 1と現行のCEF 3のバージョンが存在する。 しかし、CEF 2はChromium Content APIの登場によって開発が停止したため存在しない。

CEF 1はシングルプロセスで、Chromium WebKit APIに基づいた実装だった。 しかし、開発が続かなかった。

CEF 3はマルチプロセスで、Chromium Content APIに基づいた実装である。メインスレッドとレンダープロセス(BlinkとV8)の通信に非同期通信を用い、Google Chromeに近いパフォーマンスを誇った。 2022年6月の時点で、PPAPIの削除等による理由からPPAPIのメンテナンスはなされていない。これにはChromeの従来のアプリケーションや、ネイティブクライアントサポートのようなChromiumプロジェクトのメインストリームのものも含まれる。しかし、ChromiumのPDFiumによるPDF viewerのサポートは続いている。また、シングルプロセスでの実行はサポートされていないが、デバッグ目的で残されている。

2019年3月16日、バージョン名の付け方が、リリース「CEF 73.1.3 g46cf800 chromium-73.0.3683.75」のような形式から変わった。参考に、同年3月14のリリース名は「CEF 3.3683.1920.g9f41a27」だった。どちらのリリースも、Chromiumのバージョン「73.0.3683.75」をベースとしたものだが、新しいバージョン名の付け方はベースとしたChromiumのバージョン名と同じバージョン名を使用している。

CEFにはCefClientと呼ばれる、C で記述された、WinAPI、Cocoa、GTK (プラットフォームによって異なる) などを使用したサンプルアプリケーションや、いくつか機能デモが付属している。

なお、ドキュメントはヘッダファイルのあるincludeディレクトリと、リポジトリ内のwikiページにある。

言語バインディング

CEFが利用できる本来の言語はCとC であり、公式が提供するバインディングはJavaだけであるが、いくつかのプロジェクトがバインディングをメンテナンスしている。

ただし、長くメンテナンスされていないものや、リポジトリがアーカイブされてしまっているものもある。

  • Delphi (CEF1) – DCEF 1
  • Delphi (CEF3) – DCEF 3
  • Delphi (CEF3) – CEF4Delphi
  • Dyalog APL (CEF3) – HTMLRenderer
  • Free Pascal (CEF3) - fpCEF3
  • Go (CEF3) – CEF2go
  • Java (CEF3) – Java Chromium Embedded (JCEF)
  • .NET (CEF1, CEF3) – CefSharp
  • .NET (CEF1) – CefGlue
  • .NET/Mono (CEF3) – Xilium.CefGlue
  • .NET (CEF3) – ChromiumFX
  • Python (CEF1, CEF3) – CEF Python
  • Swift (CEF3) – CEF.swift

これ以外にも、WebKitX CEF3 ActiveXという製品があり、いくつかの言語からも使用できる。

CEFを使用したアプリケーションの例

  • 4D – RDB管理用IDE
  • Adobe
    • Adobe Acrobat
    • Adobe Illustrator – vector graphics editor
    • Adobe Creative Cloud
    • Adobe Dreamweaver – GUIにAdobe Chromium Embeddedを使用
    • Adobe Edge Animate – マルチメディア制作ツール
    • Adobe Edge Reflow – Webデザインツール
    • Adobe Brackets – 以前はクローズドソースだったIDE
  • AOL Instant Messenger – インスタントメッセンジャー
  • alt:V - Grand Theft Auto Vのためのマルチプレイヤーエンジン
  • Amazon Music Player – Amazon Musicの公式プレーヤー
  • AOL Desktop
  • Autodesk Inventor – 3Dデザインツール: CEFを「マイホーム」機能に使用
  • Battle.net App – Battle.netの公式クライアント
  • BeamNG.drive – UIレンダリングにCEFを使用
  • Bitdefender Safepay Browser – インターネットセキュリティーソフト「Bitdefender」の一部
  • Brackets – 現在はオープンソースであるIDE
  • Desura client – Desuraの公式クライアント
  • Dish World IPTV – 映像ストリーミングのプラットフォーム
  • Dyalog APL – CEFをユーザーコマンドの、]HTML, ]Plot, ]APLCartに使用
  • Epic Games Launcher – Epic Games Storeの公式クライアント
  • Eve Online launcher – Eve Onlineの公式ランチャー
  • ExpanDrive – ネットワークストレージ等のクライアント
  • Foxmail – Tencentのメールクライアント
  • GOG Galaxy – GOG.comの公式クライアント
  • Google Web Designer
  • Grand Theft Auto Online – Grand Theft Auto Vのためのマルチプレイヤーエンジン
  • Intel AppUp Encapsulator
  • KKBox – 音楽配信プラットフォーム
  • League of Legends launcher – League of Legendsの公式ランチャー
  • LiveCode – マルチプラットフォーム向けのアプリ開発ソフト
  • LockDown Browser - セキュアなブラウザ
  • MATLAB – CEFをuifiguresに使用
  • MediaMan – CD、DVD、本などのための蔵書管理アプリ
  • Minecraft Launcher – Minecraftの公式ランチャー
  • Multi Theft Auto – Grand Theft Auto: San Andreasのためのマルチプレイヤーエンジン
  • OBS Studioのブラウザプラグイン- 配信、録画用ソフトウェア
  • OnlyOffice – オフィススイートソフト
  • PHP Desktop
  • QuarkXPress – JavaScriptのサポート
  • QQ – インスタントメッセンジャー
  • RAGE Multiplayer – Grand Theft Auto Vのためのマルチプレイヤーエンジン
  • Rockstar Games Launcher – Social Clubの公式クライアント
  • Second Life – メタバース
  • Sling TV – Dish NetworkによるIPテレビサービス
  • Spotify Desktop Client – 音楽配信プラットフォーム
  • StarUML – UMLエディタ
  • Steam client – Steamの公式クライアント
  • Trend Micro Internet Security – ウイルスセキュリティソフト
  • Ubisoft Connect client – Ubisoft Connectの公式クライアント
  • Uniface
  • Unity – ゲームエンジン
  • Unreal Engine – ゲームエンジン
  • Xojo – WindowsにおいてHTMLViewerにCEFを使用

関連項目

  • Electron
  • Qt WebEngine
  • XULRunner

出典・脚注

外部リンク

  • 公式ウェブサイト
  • GitHub上のリポジトリ

Chromium Embedded Framework for Desktop and Web Integration Auriga

Java chromium embedded framework

the database experts Doc/Chromium Embedded Framework (CEF)

Chromium Embedded Framework Evernote Tutorial Qindas Nanda

Chromium Embedded Framework Alberto Ruibal