Chromium Embedded Framework
{{Short description|Free and open-source software framework}}
{{Infobox web browser
| name = Chromium Embedded Framework
| logo = Chromium Embedded Framework Logo.svg
| developer = Marshall Greenblatt
| released = {{start date and age|2009|6|1}}
| ver layout = simple
| latest release version = 135.0.17 (gcbc1c5b, Chromium 135.0.7049.52){{cite web|title=CEF3 WIKI Current Releases Supported|url=https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding#markdown-header-current-release-branches-supported}}{{cite web|title=CEF Automated Builds|url=https://cef-builds.spotifycdn.com/index.html}}
| latest release date = {{Start date and age|2025|04|03}}
| programming language =
| operating system = {{ubl|Windows|Linux|macOS | OpenHarmony | Oniro OS | HarmonyOS}}
| genre = Framework, Web browser
| license = BSD
| website = {{URL|https://bitbucket.org/chromiumembedded/cef}}
}}
The Chromium Embedded Framework (CEF) is an open-source software framework for embedding a Chromium web browser within another application. This enables developers to add web browsing functionality to their application, as well as the ability to use HTML, CSS, and JavaScript to create the application's user interface (or just portions of it).
CEF runs on Linux, macOS, and Windows. It has many language bindings including C, C++, Go, Java, and Python.
Overview
There are two versions of Chromium Embedded Framework: CEF 1 and CEF 3.{{cite web|title=Versions – Overview of the CEF architecture.|url=https://bitbucket.org/chromiumembedded/cef/wiki/Architecture.md#markdown-header-versions}} Development of CEF 2 was abandoned after the appearance of the Chromium Content API.{{cite web|title=Content API – The Chromium Projects|url=https://www.chromium.org/developers/content-module/content-api}}
CEF 1 is a single-process implementation based on the Chromium WebKit API. It is no longer actively developed or supported.{{cite web|title=CEF1 Retirement Plan|url=http://www.magpcss.org/ceforum/viewtopic.php?f=10&t=10647}}
CEF 3 is a multi-process implementation based on the Chromium Content API and has performance similar to Google Chrome.{{cite web|url=https://bitbucket.org/chromiumembedded/cef/wiki/Architecture.md#markdown-header-cef3 |title=CEF 3 Architecture – CEF wiki pages}} It uses asynchronous messaging to communicate between the main application process and one or more render processes (Blink + V8 JavaScript engine). As of July of 2022, it no longer supports PPAPI plugins due to removal of PPAPI, legacy Chrome Apps, and Native Client (NaCl) support from the upstream Chromium project.{{Cite web |title=Changes to the Chrome App Support Timeline |url=https://blog.chromium.org/2020/08/changes-to-chrome-app-support-timeline.html |access-date=2024-04-22 |website=Chromium Blog |language=en}} PDF viewer support from Chromium's PDFium PDF viewer is still supported though. The single-process run mode is not supported, but still present; currently is being used for debugging purposes only.{{cite web|title=Single process – Process Models- The Chromium Projects|url=https://www.chromium.org/developers/design-documents/process-models#TOC-Single-process}}
On March 16, 2019, the CEF version numbering changed with the release of CEF 73.1.3+g46cf800+chromium-73.0.3683.75. The previous release on March 14, 2019 was CEF 3.3683.1920.g9f41a27. Both of these releases were based on Chromium 73.0.3683.75, however the new version numbering has the major number the same as the Chromium major version number it is based on.
CEF comes with a sample application called CefClient that is written in C++ using WinAPI, Cocoa, or GTK (depending on the platform) and contains demos of various features.{{cite web|url=https://bitbucket.org/chromiumembedded/cef/src/1364/cef1/tests/cefclient/?at=1364 |title=CEF Git: 1364/cef1/tests/cefclient/}}{{cite web|url=https://bitbucket.org/chromiumembedded/cef/src/master/tests/cefclient/?at=master |title=CEF Git: master/tests/cefclient/}} Newer versions include a sample application called CefSimple that, along with an accompanying tutorial, show how to create a simple application using CEF 3.{{cite web|url=https://bitbucket.org/chromiumembedded/cef/wiki/Tutorial |title=CefSimple Tutorial}}
Documentation can be found in the header files located in the "include" directory{{cite web|url=https://bitbucket.org/chromiumembedded/cef/src/1364/cef1/include/?at=1364 |title=CEF Git: /1364/cef1/include/}}{{cite web|url=https://bitbucket.org/chromiumembedded/cef/src/master/include/?at=master |title=CEF Git: /master/include/}} and on wiki pages.{{cite web|url=https://bitbucket.org/chromiumembedded/cef/wiki/Home |title=CEF Wiki Pages}}
Supported languages
The base CEF framework includes support for the C and C++ programming languages, but there are external projects that provide bindings for other languages:
- Delphi (CEF1) – DCEF 1{{cite web|url=http://code.google.com/p/delphichromiumembedded/ |title=delphichromiumembedded – Delphi Chromium Embedded – Google Project Hosting |date= |accessdate=2012-12-26}}
- Delphi (CEF3) – DCEF 3{{cite web|url=http://code.google.com/p/dcef3/ |title=dcef3 – Delphi Chromium Embedded 3 – Google Project Hosting |date= |accessdate=2012-12-26}}
- Delphi (CEF3) – CEF4Delphi{{cite web|title=GitHub - salvadordf/CEF4Delphi: CEF4Delphi is an open source project to embed Chromium-based browsers in applications made with Delphi.|url=https://github.com/salvadordf/CEF4Delphi|website=github.com|accessdate=25 February 2017|language=en}}
- Delphi (CEF3) – WebKitX CEF3 ActiveX
- Dyalog APL (CEF3) – HTMLRenderer{{cite web|title=HTMLRenderer User Guide|url=http://docs.dyalog.com/17.1/HTMLRenderer%20User%20Guide.pdf|website=dyalog.com|accessdate=1 August 2019|language=en}}
- Free Pascal (CEF3) - fpCEF3{{cite web|url=https://github.com/dliw/fpCEF3 |title=Chromium Embedded Framework for Free Pascal|website=GitHub|accessdate=2017-01-31}}
- Go (CEF3) – CEF2go{{cite web|url=https://github.com/CzarekTomczak/cef2go |title=HTML 5 based GUI toolkit for the Go language |website=GitHub |date= |accessdate=2014-02-06}}
- Java (CEF3) – Java Chromium Embedded{{cite web|url=https://bitbucket.org/chromiumembedded/java-cef |title=javachromiumembedded – Java Wrapper for the Chromium Embedded Framework (CEF)}}
- .NET (CEF1, CEF3) – CefSharp{{cite web|url=https://github.com/chillitom/CefSharp |title=chillitom/CefSharp · GitHub |publisher=Github.com |date= |accessdate=2012-12-26}}
- .NET (CEF1) – CefGlue{{cite web|url=https://bitbucket.org/fddima/cefglue |title=fddima / CefGlue / wiki / Home — Bitbucket |publisher=Bitbucket.org |date=2012-08-21 |accessdate=2012-12-26}}
- .NET/Mono (CEF3) – Xilium.CefGlue{{cite web |url=https://bitbucket.org/xilium/xilium.cefglue |title=xilium / Xilium.CefGlue / wiki / Home — Bitbucket |publisher=Bitbucket.org |date=2012-10-10 |accessdate=2012-12-26 }}{{Dead link|date=July 2021 |bot=InternetArchiveBot |fix-attempted=yes }}
- .NET (CEF3) – ChromiumFX{{cite web |url=https://bitbucket.org/chromiumfx/chromiumfx |title=ChromiumFX – .NET bindings for the Chromium Embedded Framework (CEF) |access-date=2015-03-21 |archive-date=2019-02-20 |archive-url=https://web.archive.org/web/20190220042117/https://bitbucket.org/chromiumfx/chromiumfx |url-status=dead }}
- .NET (CEF3) – WebKitX CEF3 ActiveX
- Python (CEF1, CEF3) – CEF Python{{cite web|url=http://code.google.com/p/cefpython/ |title=cefpython – Python bindings for Chrome / Chromium Embedded Framework (CEF) – Google Project Hosting |date= |accessdate=2012-12-26}}
- Swift (CEF3) – CEF.swift{{cite web|url=https://github.com/lvsti/CEF.swift |title=CEF.swift – Swift bindings for the Chromium Embedded Framework (CEF)|website=GitHub|date=6 December 2021}}
- Visual Basic 6 (CEF3) – WebKitX CEF3 ActiveX{{cite web|url=http://www.webkitx.com/ |title=WebKitX CEF3 ActiveX – Visual Studio 2015 C++11 MFC/ATL ActiveX for VB6}}
- Visual FoxPro (CEF3) – WebKitX CEF3 ActiveX
- PowerBuilder (CEF3) – WebKitX CEF3 ActiveX
- Ruby (via the 'win32ole' library) (CEF3) – WebKitX CEF3 ActiveX
- Visual Basic for Applications 2003/2007/2010/2015/2016 (VBA, Access, Excel) (CEF3) – WebKitX CEF3 ActiveX
- Microsoft Visual Studio .NET 2010/2015/2017 (VB.Net, C#, C++, 32-bit and 64-bit) (CEF3) – WebKitX CEF3 ActiveX
- Xojo (for Windows apps, 32-bit and 64-bit) (CEF3) – WebKitX CEF3 ActiveX
- Qt (any Windows version, only for 32-bit) (CEF3) – WebKitX CEF3 ActiveX
- CodeTyphon Studio -package pl_CEF
- Embarcadero RAD Studio (VCL C++) (CEF3) - WebKitX CEF3 ActiveX
- Broadcom CA PLEX (VBScript / C++) (CEF3) - WebKitX CEF3 ActiveX
- YallFramework (YS /WS ) (FF213 - WevKitX CEF57 ActiveX)
Applications using CEF
{{Cleanup list|section|date=September 2016}}
- 4D – relational database management system and IDE
- Adobe{{Cite web |title=Adobe using Google Chromium Embedded Framework for Edge tools {{!}} Tim Anderson's IT Writing |date=27 September 2012 |url=https://www.itwriting.com/blog/6616-adobe-using-google-chromium-embedded-framework-for-edge-tools.html |access-date=2022-12-02 |language=en-US}}
- Adobe Acrobat
- Adobe Illustrator – vector graphics editor
- Adobe Creative Cloud
- Adobe Dreamweaver – web development tool which uses CEF to control resource loading, navigation and context menus{{cite web|title=CEF integration in Dreamweaver|url=https://helpx.adobe.com/dreamweaver/using/cef-integration.html}} Adobe Chromium Embedded
- Adobe Edge Animate – multimedia authoring tools
- Adobe Edge Reflow – web design tool
- Adobe Brackets – previously closed-source IDE
- AIM – instant messaging client that uses CEF on Windows
- alt:V - multiplayer engine for PC game Grand Theft Auto V
- Amazon Music Player – official media player for Amazon Music
- AOL Desktop – web browser with integrated AOL email and IM clients
- Autodesk Inventor – 3D design tool. Since version 2015, it uses CEF for the 'My Home' feature, a home-page that allows users to create new CAD files and view tutorials.
- Battle.net App – official client for Battle.net
- BeamNG.drive – uses CEF to render UI
- Bitdefender Safepay Browser – part of Bitdefender Internet Security software{{cite web|title=Bitdefender Total Security|url=https://www.bitdefender.com/solutions/total-security.html}}
- Brackets – open source code editor for the web
- Desura client – official client for Desura
- Dish World IPTV – streaming video platform
- Dyalog APL – Uses CEF for its user commands
]HTML
,]Plot
, and]APLCart
- Epic Games Launcher – official client for Epic Games Store
- Eve Online launcher – official launcher for Eve Online{{cite web|title=Eve Launcher – Evelopedia|url=http://wiki.eveonline.com/en/wiki/EVE_Launcher|accessdate=4 March 2013|archive-url=https://web.archive.org/web/20150528033619/https://wiki.eveonline.com/en/wiki/EVE_Launcher|archive-date=28 May 2015|url-status=dead}}
- ExpanDrive – network file system client
- Foxmail – freeware email client by Tencent
- GOG Galaxy – official client for GOG.com
- Google Web Designer – create interactive HTML5 sites and ads
- Grand Theft Auto Online – multiplayer engine for PC game Grand Theft Auto V
- Intel AppUp Encapsulator – Intel app store software
- KKBox – streaming music platform
- League of Legends launcher – official launcher for League of Legends{{cite web|title=The Architecture of the League Client Update|url=https://engineering.riotgames.com/news/architecture-league-client-update|website=Riot Games Engineering|date=16 May 2016 |accessdate=21 March 2017}}
- LiveCode – multi-platform app development software{{cite web|title= How To Add a Web Browser to Your App|url=https://livecode.com/how-to-add-a-web-browser-to-your-app/|website=LiveCode|date=10 November 2015 |accessdate=10 November 2015}}
- LockDown Browser - Secure browser for proctored exams{{cite web |title=LockDown Browser - Resources |url=https://web.respondus.com/he/lockdownbrowser/resources/ |website=Respondus |access-date=10 October 2024}}
- Mailbird – Windows email software
- MATLAB – Uses CEF for its
uifigures
- MediaMan – organizer software
- Microsoft Power BI – Business Intelligence software{{cite web|title=Microsoft PowerBI|url=https://powerbi.microsoft.com/en-us/|website=Microsoft|accessdate=22 February 2019}}
- Minecraft Launcher – official launcher for Minecraft{{Cite web|url=https://www.reddit.com/r/Minecraft/comments/59b7m0/help_us_test_the_new_minecraft_launcher_check_the/|title=Help us test the new Minecraft launcher! Check the comments for instructions. • /r/Minecraft|website=reddit|date=25 October 2016 |access-date=2016-10-25}}
- Multi Theft Auto – multiplayer engine for PC game Grand Theft Auto: San Andreas
- OBS Studio browser plugin - Live streaming software{{Citation|title=obs-browser|date=2021-10-21|url=https://github.com/obsproject/obs-browser|publisher=OBS Project|access-date=2021-10-22}}
- OnlyOffice – office suite{{Citation |url=https://www.onlyoffice.com/blog/2017/09/know-onlyoffice-better-our-commercial-director-reveals-the-story-behind-the-project-in-the-interview-for-diolinux |title=Know ONLYOFFICE better: our commercial director reveals the story behind the project in the interview for Diolinux |date=12 September 2017 |access-date=2024-06-23 |language=en-US}}
- [https://github.com/cztomczak/phpdesktop PHP Desktop] – provide a way for developing native desktop GUI applications using web technologies such as PHP, HTML5, JavaScript and SQLite.
- PokerStars – online poker cardroom
- PTC Creo – Creo Parametric Chromium embedded browser
- QuarkXPress – JavaScript support
- RAGE Multiplayer – multiplayer engine for PC game Grand Theft Auto V
- Rockstar Games Launcher – official client for Social Club
- Second Life – online virtual world{{cite web|title=Second Life 4.0.0.305703 Release Notes|date=25 October 2015 |url=http://wiki.secondlife.com/wiki/Release_Notes/Second_Life_Project_Valhalla/4.0.0.305703|accessdate=7 April 2016}}
- Sling TV – IPTV service operated by Dish Network.{{cite web|title=Sling TV – Watch Live TV Programming Anytime and Anywhere|url=https://www.sling.com/attributions|accessdate=27 August 2015}}
- Spotify Desktop Client – streaming music platform{{cite web|title=Open Source @ Spotify|url=https://www.spotify.com/us/opensource/|accessdate=2 March 2016}}
- StarUML – UML model editor
- Steam client – official client for Valve's Steam{{cite web |title=Chromium Embedded Framework |url=https://developer.valvesoftware.com/w/index.php?title=Chromium_Embedded_Framework&oldid=316840#In_relation_to_Valve |website=developer.valvesoftware.com. Last edited on 15 June 2023 |access-date=27 July 2023}}
- Team Fortress 2 - Video game by Valve that uses Source Engine
- Tencent QQ – instant messaging program (its QPlus part) and web browser
- The Bat! – email client by RitLabs for Microsoft Windows
- TouchDesigner - creative development platform {{cite web|title=Derivative WebRender TOP Documentation|url=https://derivative.ca/UserGuide/Web_Render_TOP|accessdate=2 December 2022}}
- TOWeb – responsive website creation software
- Trend Micro Internet Security – antivirus software
- Ubisoft Connect client – official client for Ubisoft Connect
- UBot Studio – internet marketing and web automation software
- Uniface – Uniface runtime and development environment
- Unity – game engine
- Unreal Engine – game engine
- Xojo – uses CEF with its HTMLViewer control on Windows
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
External links
- {{Official website|https://bitbucket.org/chromiumembedded/cef}}
Category:Free software programmed in C++
Category:Cross-platform free software
Category:Free software for Linux
Category:Free software for Windows