Chromium Embedded Framework – a Solution for Desktop and Web Technologies Integration

For a long time, the only way to deploy web technologies was a web browser application in the operating system. Custom desktop applications and web applications evolved mostly independently. Gradually, web apps outcompeted desktop ones, with improvements in functionality pioneered by increases to browsers’ API resources. Despite these advances, web apps rarely turned into traditional desktop apps due to strict browser security policies and isolation of the application in the browser from the rest of the system.

Nevertheless, web integration into desktop apps can endow developers with a variety of useful tools. Starting with the trivial ability to launch web browser windows inside a running program, we can now achieve deep seamless integration of the best web solutions that do not stand out from the common desktop environment. The entire range of such integration tasks can be solved by using Chromium Embedded Framework (CEF).

[pullquote]CEF is a library that allows software developers to implement all sorts of web technologies in desktop applications and, therefore, to integrate the desktop ecosystem and the web.[/pullquote]

Auriga’s engineering team used CEF in one of its recent projects. Initially it was proposed to replace some outdated in-place technologies. However, this decision became the key insight for the project development plan – the integration of C++ code and web technologies was increased dramatically, adding enormous value to the developed product. CEF was used not only as a simple embedded web browser, but also to perform the following tasks:

  • rendering of texts, HTML, and raster and vector graphics so the C++ code could utilize them;
  • absolutely seamless integration of HTML editor in JavaScript into the desktop interface;
  • Integration of the WebHelp system;
  • providing the built-in browser operation with the integrated web server without unlocking network ports;
  • custom C++ code extensions with executable JS scripts, allowing third-party developers to enhance the system functionality.

Thus, we managed to transfer a part of C++ programmers’ tasks to the JS language to speed up the development process. Content creation tasks for the application were also simplified – it became possible to delegate them not only to web developers but also to designers working with SVG. All this had a positive impact on the cost and time of product development, product efficiency, content quality, and end-users’ usability experience.

Another Auriga’s project involved CEF in its basic configuration as a replacement for the OS’s built-in browser to improve security level for the organization’s employee assessment portal. A set of minor extensions helped us to expand the browser’s functionality and organize additional user access control during assessment procedures to avoid falsifications. As a result, the system met the reliability requirements and achieved one more competitive advantage on the market.