# chromiumembedded/cef

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/chromiumembedded-cef).**

4,379 stars · 572 forks · C++ · other

## Links

- GitHub: https://github.com/chromiumembedded/cef
- Homepage: https://chromiumembedded.github.io/cef/
- awesome-repositories: https://awesome-repositories.com/repository/chromiumembedded-cef.md

## Topics

`browser` `cef` `chromium` `framework`

## Description

The Chromium Embedded Framework (CEF) is a framework for embedding a full Chromium web browser into native desktop applications, enabling them to render web content and execute JavaScript. It provides a multi-process browser runtime that manages isolated browser, renderer, and GPU processes to maintain application stability and security, along with a process sandboxing framework that restricts child process capabilities to prevent malicious web content from affecting the host system.

CEF distinguishes itself through a comprehensive native JavaScript bridge library that bridges native application code with web environments via shared memory, message routing, and function calls, allowing bidirectional communication between JavaScript and C++ code. It includes a custom network protocol handler that intercepts and customizes HTTP requests and responses at the application level before they reach the browser engine, and an off-screen web renderer that produces browser content as a pixel buffer instead of a native window for custom UI compositing. The framework also offers a cross-language binding toolkit that exposes C and C++ APIs so external projects can create bindings for .NET, Java, Python, Go, and other languages.

The framework supports embedding a browser window that loads specified URLs, registering custom protocol schemes to serve content from non-standard URLs, and intercepting resource loading and navigation events from the host application. It provides capabilities for overriding default context menus and print dialogs with application-specific options, and includes a build automation toolchain that downloads, compiles, and packages Chromium source code into redistributable binary distributions with configurable platform-specific build options.

## Tags

### Programming Languages & Runtimes

- [Embedded Browser Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/embedded-browser-frameworks.md) — Embeds a full Chromium web browser into native desktop applications to render web content and execute JavaScript.
- [C++ Callback Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/interoperability/javascript-to-native-bridges/c-callback-bindings.md) — Binds JavaScript functions to C++ callbacks for bidirectional communication between web and native code. ([source](https://chromiumembedded.github.io/cef/tutorial))

### User Interface & Experience

- [Embedded Browser Controls](https://awesome-repositories.com/f/user-interface-experience/embedded-browser-controls.md) — Embeds a full Chromium browser window inside native desktop applications to render web content. ([source](https://chromiumembedded.github.io/cef/tutorial))
- [Off-Screen Rendering](https://awesome-repositories.com/f/user-interface-experience/web-based-rendering-engines/embedded-web-renderers/off-screen-rendering.md) — Renders web page content to a pixel buffer instead of a native window for custom UI compositing.

### Part of an Awesome List

- [Native Object Registrations](https://awesome-repositories.com/f/awesome-lists/devtools/javascript-extensions/native-object-registrations.md) — Provides a native JavaScript bridge that registers custom objects and functions for web page invocation. ([source](https://cdn.jsdelivr.net/gh/chromiumembedded/cef@master/README.md))
- [C and C++ API Exposures](https://awesome-repositories.com/f/awesome-lists/devtools/gpu-acceleration/gpu-accelerated-vector-indexing/multi-language-api-bindings/c-and-c-api-exposures.md) — Exposes C and C++ APIs for creating bindings to .NET, Java, Python, Go, and other languages.

### Data & Databases

- [Browser Resource Interceptions](https://awesome-repositories.com/f/data-databases/data-loading-optimizations/loading-interception/browser-resource-interceptions.md) — Ships a resource loading and navigation interception system for customizing browser behavior from the host application. ([source](https://cdn.jsdelivr.net/gh/chromiumembedded/cef@master/README.md))

### Development Tools & Productivity

- [Multi-Language Bindings](https://awesome-repositories.com/f/development-tools-productivity/compilers-toolchains/c-extension-interfaces/multi-language-bindings.md) — Exposes C and C++ APIs so external projects can create bindings for .NET, Java, Python, and Go.
- [Custom URI Scheme Handlers](https://awesome-repositories.com/f/development-tools-productivity/custom-uri-scheme-handlers.md) — Intercepts and processes non-standard URL schemes at the application level for custom content serving.
- [Scheme Response Handlers](https://awesome-repositories.com/f/development-tools-productivity/custom-uri-scheme-handlers/scheme-response-handlers.md) — Intercepts and customizes HTTP requests and responses at the application level before they reach the browser engine.
- [Protocol Scheme Registrations](https://awesome-repositories.com/f/development-tools-productivity/url-scheme-handlers/protocol-scheme-registrations.md) — Registers and processes custom protocol schemes to serve content from non-standard URLs. ([source](https://chromiumembedded.github.io/cef/tutorial))

### Software Engineering & Architecture

- [Native-Backed JavaScript Functions](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/design-patterns/functional-design-patterns/functional-programming/closures/function-to-closure-coercions/native-function-closures/native-backed-javascript-functions.md) — Registers custom JavaScript objects and functions from the host application for bidirectional communication.
- [Multi-Process Browser Runtimes](https://awesome-repositories.com/f/software-engineering-architecture/multi-process-browser-runtimes.md) — Manages isolated browser, renderer, and GPU processes to maintain application stability and security.

### Web Development

- [Web-Native Integration Bridges](https://awesome-repositories.com/f/web-development/web-native-integration-bridges.md) — Bridges native application code with web environments through shared memory, message routing, and function calls.
- [Embedded Browser URL Loads](https://awesome-repositories.com/f/web-development/custom-page-url-resolution/embedded-browser-url-loads.md) — Supports loading specified URLs into the embedded browser via command-line arguments or code changes. ([source](https://chromiumembedded.github.io/cef/tutorial))

### Networking & Communication

- [Custom Network Protocols](https://awesome-repositories.com/f/networking-communication/custom-network-protocols.md) — Ships a custom network protocol handler that intercepts and customizes HTTP requests and responses at the application level.
- [HTTP Request Interceptors](https://awesome-repositories.com/f/networking-communication/traffic-interception/http-request-interceptors.md) — Intercepts and modifies HTTP requests and responses at the application level before they reach the browser engine. ([source](https://chromiumembedded.github.io/cef/tutorial))

### Security & Cryptography

- [Process Sandboxing](https://awesome-repositories.com/f/security-cryptography/process-sandboxing.md) — Restricts child process capabilities to prevent malicious web content from affecting the host system.
