As always, the Cool VL Viewer is the first TPV to provide you with the latest features added (or soon to be added, in this case) by LL to their viewer.
Today, it's CEF3 media plugin support. What is CEF3, you might ask ? It's an embedded browser framework (Chromium Embedded Framework, but if you are curious and look at the sources, you'll notice that Chromium is actually a derivative of... WebKit !) which LL deemed good enough to replace the current QtWebKit-based plugin (which went unmaintained and is now deprecated to browse a lot of websites, especially TLS-enabled ones, and lacks HTML5 and modern features of today's browsers).
For now, the CEF3 plugin is still in a very preliminary state and in active development, meaning it lacks quite a few of the necessary features before it could replace the QtWebKit plugin currently in use in release viewers. This is why it is implemented only in the new experimental branch (v1.26.15) of the Cool VL Viewer and is disabled by default (i.e. QtWebKit is the default embedded browser). To enable it, simply change the UseCEF debug setting to "TRUE" (this can be done without restarting the viewer: any new web-based UI element opened after the UseCEF variable toggling will automatically use the corresponding plugin: CEF when TRUE, QtWebKit when FALSE).
In excess of LL's implementation of the CEF3 plugin, mine also implements the following features:
- Exists for Linux and for VS2010 Windows builds (LL's only exists for Darwin and VS2013 Windows builds).
- Proper (per-user) setting of the cache and cookies paths.
Proper setting of the user agent string. EDIT: this now also works in LL's latest implementation.- Configurable minimum font size. Use the new "CEFMinimumWebFontSize" debug setting for this purpose (under Linux, if, like me, you use a bitmap font as your system font, you might find out that CEF3 is quite mediocre at picking up the right DPI set for your font, and ends up rendering very poorly the font in question. Simply use 12 for this setting in that case).
- Configurable default font. Use the new "CEFPreferredFont" debug setting for this purpose (here again, under Linux, you might get better results with "DejaVu Sans Condensed").
- Configurable "remote font" usage permission. Use the new "CEFRemoteFonts" debug setting for this purpose (when FALSE, tells CEF to ignore the websites' custom fonts).
Be aware that being a work in progress, the CEF3 plugin still got, in excess of a very poor font rendering and much slower web page rendering when compared to QtWebKit (both of which are probably not actionable by LL), the following limitations:
- Mouse and keyboard support are still incomplete (
and in particular, copy/paste operations do not currently work EDIT: this now works for the embedded browser via CTRL C/X/V). The (SL-specific) "_external" target for links is ignored, meaning that links which are purposely flagged as needing to be opened into the system browser, won't open in the latter but instead load into the embedded browser. EDIT: this now works as expected, even if in a hacky way that doesn't spawn the proper media events.SLURLs are not properly dealt with (when clicked, they will cause the browser to display a blank page, instead of triggering the corresponding viewer action). EDIT: this now works.On prims with shared media, the CEF3 web pages are displayed upside down (!). EDIT: this is now fixed.- In HTML forms, combo elements fail to
get stay pulled down when clicked. EDIT: they now get pulled down, but you must keep the left mouse button clicked to avoid having them vanish before you can select an entry. - The CEF3 plugin doesn't work under Windows XP, because the recent pre-built CEF3 libraries (CEF3 itself, not llceflib) are not compiled with the Windows XP compatibility mode.
Note also that, for Linux users running "old" distributions (4+ years old), you may need to add some libraries to the viewer installation (you need libX11 v1.5 or newer, libXi v1.6.1 or newer, libnss3 v3.14.3 or newer). If needed, you will find them
here with the instructions about how to use them.
Stuff for developers:
Here are resources that TPV developers might be interested about:
- Linux re-compiled CEF v3.2454 pre-built distributions (as provided by the official site, but without tcmalloc, since the latter causes crashes when libcef.so is loaded by SLPlugin: see this message in the opensource-dev list).
- You will find here the pre-built llceflib packages for both Linux (32 bits) and VS2010 Windows (32 bits) builds.
- You will find here a patch (among others) showing you what needed to be changed to implement Linux and VS2010 support to llceflib.
- You will find here the required changes to the viewer code for implementing the CEF plugin.