Skip to content

Move to CEF Browser Engine - #247

Merged
5cript merged 25 commits into
mainfrom
feat/cef-engine
Oct 19, 2026
Merged

5cript merged 25 commits into
mainfrom
feat/cef-engine

Conversation

@5cript

@5cript 5cript commented Oct 19, 2026

Copy link
Copy Markdown
Owner

Massively improves performance on linux and fixes the drop issue, that only 1 item could be dragged and dropped from a file manager program.

Resolves #237

5cript added 25 commits October 18, 2026 22:51
- The opener takes the parent window as text, main.cpp gets it from the window
- Chromium moves the process into app-org.chromium.Chromium-<pid>.scope, the portal would attribute the calls to it
- A connection of the opener's own, so the registration is its first portal call
- NUI_SFTP_MACOS followed BROWSER_ENGINE=wkwebview, a macOS frontend for Chromium needs it as well
- Nui gains the CEF engine (NUI_BROWSER_ENGINE=cef), the native engines stay as they were
- The handler only reads files, the native engines keep the UI thread
- The context menu loses its navigation entries, like the WebKitGTK and WKWebView filters
- The drag handler keeps the paths of files dragged into the window for NativeFileDrop::claim
- Once the app is loaded the window does not navigate: a reload loses the RPC setup, a dropped file replaces the app
- WebKitGTK, GTK and WKWebView sources only build for the native engine, GLib is linked explicitly
- Without --enable-dev-tools the DevTools port of Nui is removed from the environment
- Chromium hides their paths like WKWebView, the frontend is built with BROWSER_ENGINE=cef
- The claim carries the file names, the backend only hands out paths of a drag with the same names
- -DNUI_BROWSER_ENGINE=native still builds with WebKitGTK or WKWebView, Windows stays on WebView2
- CEF needs the bundle in the build tree as well, the frontend is copied into its resources
- deploy.sh runs cmake --install on Linux and on macOS with CEF, Windows and WKWebView bundles keep their copies
- The CEF runtime goes to lib/nui-sftp next to bin/, libcef is stripped while installing
- Engine option, how CEF is fetched or provided offline, DevTools over CDP, the installed layout
- Drops from the desktop carry several files now, the WebKitGTK caveat is gone
- interval-tree is v3.1.1, the version Nui fetches
@5cript
5cript enabled auto-merge (rebase) October 19, 2026 01:30
@5cript
5cript merged commit 2f27f37 into main Oct 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move to CEF

1 participant