Chromium Embedded Framework

Last updated
Chromium Embedded Framework
Developer(s) Marshall Greenblatt
Initial releaseJune 1, 2009;14 years ago (2009-06-01)
Stable release
121.3.4 (g2af7b91, Chromium 121.0.6167.139) [1] [2] / February 3, 2024;2 months ago (2024-02-03)
Repository
Written in C++
Operating system
Type Framework, Web browser
License BSD
Website 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).

Contents

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. [3] Development of CEF 2 was abandoned after the appearance of the Chromium Content API. [4]

CEF 1 is a single-process implementation based on the Chromium WebKit API. It is no longer actively developed or supported. [5]

CEF 3 is a multi-process implementation based on the Chromium Content API and has performance similar to Google Chrome. [6] It uses asynchronous messaging to communicate between the main application process and one or more render processes (Blink + V8 JavaScript engine). It supports PPAPI plugins and extensions, both internal (PDF viewer) or externally loadable. The single-process run mode is not supported, but still present; currently is being used for debugging purposes only. [7]

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. [8] [9] Newer versions include a sample application called CefSimple that, along with an accompanying tutorial, show how to create a simple application using CEF 3. [10]

Documentation can be found in the header files located in the "include" directory [11] [12] and on wiki pages. [13]

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:

Applications using CEF

See also

Related Research Articles

<span class="mw-page-title-main">Konqueror</span> Web browser and file manager

Konqueror is a free and open-source web browser and file manager that provides web access and file-viewer functionality for file systems. It forms a core part of the KDE Software Compilation. Developed by volunteers, Konqueror can run on most Unix-like operating systems. The KDE community licenses and distributes Konqueror under GNU GPL-2.0-or-later.

A browser engine is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interactive visual representation on a user's device.

<span class="mw-page-title-main">ActiveX</span> Software framework by Microsoft introduced in 1996

ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide Web. Microsoft introduced ActiveX in 1996. In principle, ActiveX is not dependent on Microsoft Windows operating systems, but in practice, most ActiveX controls only run on Windows. Most also require the client to be running on an x86-based computer because ActiveX controls contain compiled code.

WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as all web browsers on iOS and iPadOS. WebKit is also used by the PlayStation consoles starting with the PS3, the Tizen mobile operating systems, the Amazon Kindle e-book reader, Nintendo consoles starting with the 3DS Internet Browser, and the discontinued BlackBerry Browser. WebKit's C++ application programming interface (API) provides a set of classes to display Web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited.

A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.

The Mozilla application framework is a collection of cross-platform software components that make up the Mozilla applications. It was originally known as XPFE, an abbreviation of cross-platform front end. It was also known as XPToolkit. To avoid confusion, it is now referred to as the Mozilla application framework.

<span class="mw-page-title-main">Aptana</span> Text editor

Aptana, Inc. is a company that makes web application development tools for use with a variety of programming languages. Aptana's main products include Aptana Studio, Aptana Cloud and Aptana Jaxer.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

<span class="mw-page-title-main">Site-specific browser</span> Software application for browsing a particular website

A site-specific browser (SSB) is a software application that is dedicated to accessing pages from a single source (site) on a computer network such as the Internet or a private intranet. SSBs typically simplify the more complex functions of a web browser by excluding the menus, toolbars and browser GUI associated with functions that are external to the workings of a single site. These applications are typically started by a desktop icon which is usually a favicon.

Google Native Client (NaCl) is a discontinued sandboxing technology for running either a subset of Intel x86, ARM, or MIPS native code, or a portable executable, in a sandbox. It allows safely running native code from a web browser, independent of the user operating system, allowing web apps to run at near-native speeds, which aligns with Google's plans for ChromeOS. It may also be used for securing browser plugins, and parts of other applications or full applications such as ZeroVM.

<span class="mw-page-title-main">Chromium (web browser)</span> Open-source web browser project

Chromium is a free and open-source web browser project, primarily developed and maintained by Google. It is a widely-used codebase, providing the vast majority of code for Google Chrome and many other browsers, including Microsoft Edge, Samsung Internet, and Opera. The code is also used by several app frameworks.

Content Security Policy (CSP) is a computer security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context. It is a Candidate Recommendation of the W3C working group on Web Application Security, widely supported by modern web browsers. CSP provides a standard method for website owners to declare approved origins of content that browsers should be allowed to load on that website—covered types are JavaScript, CSS, HTML frames, web workers, fonts, images, embeddable objects such as Java applets, ActiveX, audio and video files, and other HTML5 features.

Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly, primarily for execution in web browsers.

A headless browser is a web browser without a graphical user interface.

<span class="mw-page-title-main">Electron (software framework)</span> Development framework built on Chromium

Electron is a free and open-source software framework developed and maintained by OpenJS Foundation. The framework is designed to create desktop applications using web technologies that are rendered using a version of the Chromium browser engine and a back end using the Node.js runtime environment. It also uses various APIs to enable functionality such as native integration with Node.js services and an inter-process communication module.

<span class="mw-page-title-main">ArkWeb</span> Proprietary software engine from Huawei

ArkWeb is a native proprietary software engine by Huawei for HarmonyOS NEXT system on HarmonyOS used for Huawei Browser and third-party WebView applications.

References

  1. "CEF3 WIKI Current Releases Supported".
  2. "CEF Automated Builds".
  3. "Versions – Overview of the CEF architecture".
  4. "Content API – The Chromium Projects".
  5. "CEF1 Retirement Plan".
  6. "CEF 3 Architecture – CEF wiki pages".
  7. "Single process – Process Models- The Chromium Projects".
  8. "CEF Git: 1364/cef1/tests/cefclient/".
  9. "CEF Git: master/tests/cefclient/".
  10. "CefSimple Tutorial".
  11. "CEF Git: /1364/cef1/include/".
  12. "CEF Git: /master/include/".
  13. "CEF Wiki Pages".
  14. "delphichromiumembedded – Delphi Chromium Embedded – Google Project Hosting" . Retrieved 2012-12-26.
  15. "dcef3 – Delphi Chromium Embedded 3 – Google Project Hosting" . Retrieved 2012-12-26.
  16. "GitHub - salvadordf/CEF4Delphi: CEF4Delphi is an open source project to embed Chromium-based browsers in applications made with Delphi". github.com. Retrieved 25 February 2017.
  17. "HTMLRenderer User Guide" (PDF). dyalog.com. Retrieved 1 August 2019.
  18. "Chromium Embedded Framework for Free Pascal". GitHub . Retrieved 2017-01-31.
  19. "HTML 5 based GUI toolkit for the Go language". GitHub . Retrieved 2014-02-06.
  20. "javachromiumembedded – Java Wrapper for the Chromium Embedded Framework (CEF)".
  21. "chillitom/CefSharp · GitHub". Github.com. Retrieved 2012-12-26.
  22. "fddima / CefGlue / wiki / Home — Bitbucket". Bitbucket.org. 2012-08-21. Retrieved 2012-12-26.
  23. "xilium / Xilium.CefGlue / wiki / Home — Bitbucket". Bitbucket.org. 2012-10-10. Retrieved 2012-12-26.[ permanent dead link ]
  24. "ChromiumFX – .NET bindings for the Chromium Embedded Framework (CEF)". Archived from the original on 2019-02-20. Retrieved 2015-03-21.
  25. "cefpython – Python bindings for Chrome / Chromium Embedded Framework (CEF) – Google Project Hosting" . Retrieved 2012-12-26.
  26. "CEF.swift – Swift bindings for the Chromium Embedded Framework (CEF)". GitHub . 6 December 2021.
  27. "WebKitX CEF3 ActiveX – Visual Studio 2015 C++11 MFC/ATL ActiveX for VB6".
  28. "Adobe using Google Chromium Embedded Framework for Edge tools | Tim Anderson's IT Writing". 27 September 2012. Retrieved 2022-12-02.
  29. "CEF integration in Dreamweaver".
  30. "Bitdefender Total Security".
  31. "Eve Launcher – Evelopedia". Archived from the original on 28 May 2015. Retrieved 4 March 2013.
  32. "The Architecture of the League Client Update". Riot Games Engineering. Retrieved 21 March 2017.
  33. "How To Add a Web Browser to Your App". LiveCode. Retrieved 10 November 2015.
  34. "Microsoft PowerBI". Microsoft. Retrieved 22 February 2019.
  35. "Help us test the new Minecraft launcher! Check the comments for instructions. • /r/Minecraft". reddit. Retrieved 2016-10-25.
  36. obs-browser, OBS Project, 2021-10-21, retrieved 2021-10-22
  37. "Second Life 4.0.0.305703 Release Notes". 25 October 2015. Retrieved 7 April 2016.
  38. "Sling TV – Watch Live TV Programming Anytime and Anywhere" . Retrieved 27 August 2015.
  39. "Open Source @ Spotify" . Retrieved 2 March 2016.
  40. "Chromium Embedded Framework". developer.valvesoftware.com. Last edited on 15 June 2023. Retrieved 27 July 2023.
  41. "Derivative WebRender TOP Documentation" . Retrieved 2 December 2022.