Browser engine

The browser engine provides the runtime environment for HTML5 apps. The engine supports many features, including canvas, WebSocket, session storage, offline apps, worker threads, DOM improvements, audio and video tags, and WebGL.

The QNX CAR platform provides a multiprocess architecture that allows system developers to partition the UI into a set of core and sandboxed apps. With this architecture, multiple WebViews (or windows) can either share a common engine instance or run in their own engine instance. Each WebView can be implemented with a separate JavaScript application framework (e.g., jQuery Mobile or Sencha Touch).

By running multiple WebViews in a single engine instance, overall memory footprint can be reduced. However, when all apps share the same engine, they're not isolated from each other. Bad behavior in one app can impact all other apps that share the same engine instance. This mode would typically be used for a set of well-tested apps that are deployed together as a bundle (e.g., core apps shipped from the manufacturer). Or, a single app can be run in its own private engine instance. This provides isolation at the expense of increased memory footprint.

Based on WebKit, the browser engine provides support for HTML5 (and related) standards and technologies, including CSS3 and the JavaScript language and associated standards, such as AJAX, JavaScript Object Notation (JSON), and XML. We have optimized WebKit in a number of ways: