UCefView 1.1.0 Install On Fab Fab logo
GPU-accelerated WebView plugin for Unreal Engine. UCefView delivers GPU-accelerated rendering, seamless cross-platform integration and both C++ code and Blueprint development approaches.
Loading...
Searching...
No Matches
Technical Details

This document provides a technical breakdown of the UCefView plugin's architecture, modules, and key components.

Architecture

The plugin is built upon a layered architecture to ensure modularity and ease of maintenance:

  1. Chromium Embedded Framework (CEF): The browser engine hosted by the standalone XCefHost process.
  2. XCef: A native library that exposes browser features through a stable C ABI and moves CEF lifecycle, rendering, and browser callbacks into XCefHost.
  3. UCefView Plugin: The Unreal Engine module that consumes XCef and provides SCefView (Slate), UCefView (UMG), Blueprint libraries, and engine rendering integration.

Modules

The plugin is composed of two primary modules:

Module Description
UCefView The main plugin module containing all Unreal Engine integration code. This includes the UMG and Slate widgets, Blueprint function libraries, and asset types.
UCefViewEditor Project settings, SDK catalog/download/installation, shared SDK directory resolution, and Editor setup guidance. Excluded from packaged games.

XCef is a dynamically loaded native SDK, not an Unreal module. Only one cross-platform header copy is bundled at Source/ThirdParty/XCef/include; the SDK runtime is installed separately.

For Editor targets, UCefView depends on UCefViewEditor and gets the absolute selected runtime directory through FUCefViewEditorModule::ResolveSelectedXCefSdkDirectory. The Editor module resolves the project selection independently of the settings UI or catalog. UCefViewEditor has no reverse build dependency on UCefView; it registers the runtime settings object through reflection.

Editor startup checks SDK package identity and required files. Games load from the copied runtime directory and only check required files, library loading and exports; they do not read SDK selection configuration or package records. The Editor module owns the Slate setup dialog; runtime loading reports errors without showing UI. Editor builds do not stage SDK files, including during Live Coding.

Game targets have no dependency on UCefViewEditor. UBT copies the configured SDK into <Project>/Binaries/ThirdParty/XCef/<platform[/architecture]> and UAT stages those files as NonUFS. Packaged games resolve this copy relative to the game project directory. See XCef SDK Management for configuration and runtime paths.

Distribution

The local publish workflow runs BuildPlugin, then creates source ZIPs for the configured Unreal versions. BuildPlugin output retains compiled binaries and precompiled build files. Source ZIPs contain Source, Content, Resources, Config, Docs, and the selected distribution scripts, and omit Binaries and Intermediate.

PublishPlugin.ps1 -SkipUpload performs the local workflow without uploading. Generating a ZIP for an Unreal version updates its descriptor; only the engine passed to the build step is actually compiled. Validate other engines and platforms separately.

Key C++ Classes

Class Header Description
UCefContext CefContext.h A singleton that manages the global lifecycle of the CEF process.
UCefSettings CefSettings.h UObject-based settings that can be configured in Project Settings to control global browser behavior.
SCefView Slate/SCefView.h The core Slate widget for embedding a web view into Slate-based UIs.
UCefView UMG/UCefView.h The UMG widget that wraps SCefView, making it accessible to Widget Blueprints.
UCefViewEvent CefViewEvent.h A helper class used to send events and data from C++ to JavaScript.
UCefViewQuery CefViewQuery.h A helper class used for asynchronous request/response communication between JavaScript and C++.
FCefViewSettings Slate/SCefViewSettings.h A struct containing per-instance settings for a web view, such as the initial URL and size.
CefViewTypes CefViewTypes.h Contains common enumerations and type definitions used throughout the plugin.

Blueprints

The plugin includes several pre-built Blueprint assets to help you get started quickly. These are located in the UCefView Content folder.

Widgets

  • WBP_CefView: A simple widget that directly encapsulates a UCefView component.
  • WBP_CefViewBrowserTab: A complete browser tab widget, including an address bar and navigation controls (Back, Forward, Reload).
  • WBP_CefViewSingleTabBrowserWindow: A fully functional single-tab browser window example.
  • WBP_CefViewMultipleTabBrowserWindow: A fully functional multi-tab browser window example.

Actors

  • ACefView: An Actor that can be placed in the world to display a web view on a static mesh component.
  • ACefViewSingleTabBrowser: An example Actor that demonstrates how to use the browser widgets in a 3D world context.

Materials

  • sRGBToLinear: A utility material function for converting the web view's texture from sRGB to Linear color space, which is necessary for correct color representation in Unreal Engine's rendering pipeline.