Browser Engine

The browser engine is based on the WebKit and supports features such as canvas, WebSocket, Document Object Model (DOM) improvements, session storage, offline apps, worker threads, and WebGL.

About the browser engine

The browser engine provides support for HTML5, associated technologies (including CSS3 and JavaScript), and standards, such as AJAX, JavaScript Object Notation (JSON), and XML. The browser engine is based on the WebKit (www.webkit.org) open-source web browser engine. The browser engine has also been extended and optimized for embedded systems in the following ways:
  • improved user interaction (complex touch event handling, smooth zooming/scrolling, fat-finger touch target detection, etc.)
  • improved performance and battery life for mobile devices
  • enhanced user operations such as fast scrolling and zoom (e.g., zooming in on a webpage) to reduce RAM utilization
  • enhanced JavaScript execution that improves performance and reduces CPU utilization
  • reduced power consumption (e.g., by throttling background threads) and reduced battery drain
  • added support for multimodal input (e.g., trackpad, keyboard, and virtual keyboard)
  • improved overall speed (e.g., by selective image down-sampling)

By default, the browser engine implements the most basic browser functionality: the ability to follow links and to download and display content. You can use the engine's functionality at the most basic level to display web content in your app, or you can use Webplatform APIs to create your own full-featured, customized, web-based app.

The great variety of content and encoding types used on the Internet makes the simple tasks of browsing and downloading content from the web a daunting task for a browser—and the browser designer. The SDK's browser engine handles different content types transparently. It creates and manages the objects necessary to render the incoming content, and provides the view classes used to display content. Each view class (called a WebView) contains frames (called WebFrames); each frame implements its own scroll bar. You don't need to implement custom views or custom frames to display content in your app.

Sandboxing permits each app runs in its own instance of the browser engine, so that bad behavior in one app doesn't affect all other apps. For more information about sandboxing, see Web Sandbox Model.

Sample Browser apps

The QNX SDK for Apps and Media includes two reference apps (Browser and Browser Lite). Both reference apps are browsers that utilize the browser engine. The Browser Lite app provides a sample that shows you how to build a web browser. The app is implemented with HTML5, CSS3, and JavaScript. The Browser Lite app provides basic components, such as a URL address entry, back and forward buttons, while the Browser app provides components (bookmarks, toolbars, etc.) that you would expect from a desktop browser. A browser without these components is called a chromeless browser. You can customize or replace the Browser Lite app because the source code is available to you. For more information about reference apps, see " Browser" and "Browser Lite" in the User's Guide.