Home

Matthias Mailänder edited this page Jul 22, 2016 · 24 revisions

Integrating and extending wxWebViewChromium backend

Work Summary

This summer, I worked with my mentor Steven@ on "Integrating and extending wxWebViewChromium backend" project in wxWidgets. My work mainly foucsed on wxWebviewChromium development on three desktop platforms(Windows/Linux/Mac OS X).

Below is my work brief:

  • Integrated the wxWebViewChromium code into wxWidgets source tree.
  • Upgradeed the wxWebViewChromium CEF version to the newest release version 3.1750.1738
  • Implemented GetPageSource/GetPageText/Print API and added custom handler supports.
  • Resolved some gaps between CEF3 API and wxWebView API.
  • Ported to Linux platforms
  • Ported to Mac OS X platforms
  • Enabled wxWebViewChromium sample application.

wxWebviewChromium Description

wxWebviewChromium is a new wxWebView using Chromium Embedded Frameworks 3 as backend.

Like other backend wxWebview(Trident, WebKit), wxWebviewChromium keeps the same API of wxWebView, so that developer can use it without much CEF3 knowledge. It insulates wx-developers from underlying CEF3 architecture and APIs by offering wxWebView API. Most wxWebView features are suppported, except some are not supported in CEF3 API(Refer here for more details.)

wxWebViewChromium is available on three desktop platforms(Windows/Linux/Mac OS X 10.8+) with current release CEF3 version 3.1750.1738(based on Chrome 33).

CEF3 is a library of Google Chromium project on content API layer, which allows developers embbed Chromium-based browser in their applications. Integrating with CEF3, wxWebViewChromium takes advantage of the high performance and HTML5 features and technologies available in Google Chrome web browser.

In addition, a wxWebViewChromium sample is provided in wx_root/sample/webview_chromium for showing usage. wxWebViewChromium building instructions and usage and complete API documention are available at here.

Below is a screenshot:

Image

HTML5 Features Test

wxWebview uses system default backend on Win/OS X, which is the same as system default web browser(Windows: IE, OS X: Safari), while useing libwebkitgtk as a backend on Linux. Below is HTML5 features scores from html5test.com between different backends:

Backend version:

  • Windows 7: Trident version ie10
  • Mac OS X 10.9.2: Safari version 7.0.3
  • Ubuntu 12.04: libwebkitgtk 1.8

Backend IE WebKit(OS X) WebKit(GTK) Chromium
scores 329 395 351 475

wxWebViewChromium:

Image

wxWebView on Windows 7:

Image

wxWebView on Mac OS X 10.9.2:

Image

wxWebView on Linux(Ubuntu12.04 libwebkitgtk1.8)

Image