Dolphin Smalltalk language bindings to the Chromium Embedded Framework (CEF).
Dolphin Version: 7.2.0
CEF Version: 127.0.6533.120
For creating a custom browser on top of Chromium, or otherwise embedding web content inside of a native Windows app.
While simpler and already available in Dolphin 7, WebView has multiple limitations that make it unsuitable for anything beyond rendering web pages. The biggest one being that it only operates in windowed mode and doesn't support offscreen rendering. This subjects it to the airspace problem, where it is impossible to render anything on top of a web page. And WebView being owned by Microsoft means that they can snoop on usage and hold the reins on bugfixes and feature development.
Currently, this library provides minimal support for use with Win32 widgets and Dolphin's MVP framework. Recommended usage is with Dolphin-SDL.
- Install Dolphin Smalltalk 7
- Install
Chromium Embedded Framework.pax
in a Dolphin image - Copy everything inside this repo's
cef
directory into the same directory as your image, then extract thelibcef.zip
folder and movelibcef.dll
into the same directory. It needs to be compressed to get around GitHub's 100mb file limit. - Inside the image, run
WebBrowserView example
to open a window with the Dolphin Github page
Alternatively, you can download CEF Windows 32-bit binaries, then copy everything inside the Release and Resources folders into the same directory as the image. In that case, you'll either need to use cefclient.exe
from the sample application build or use CefSubprocessRunner.exe
from this repo as the subprocess executable. From Dolphin's perspective, the only difference between them is that CefSubprocessRunner.exe
sends an additional event to the browser process for tracking mouse over events.
The source for CefSubprocessRunner.exe
can be found in https://github.com/JBetz/CefSubprocessRunner.
| shell view |
shell := ShellView new.
shell
layoutManager: ProportionalLayout new;
create;
extent: 1200 @ 1000;
show.
view := WebBrowserView new.
^view
parentView: shell;
arrangement: 1;
create;
show;
loadUrl: 'https://github.com/dolphinsmalltalk/Dolphin';
yourself