[webkit-help] Using QtTestBrowser on Windows (and avoiding Cygwin...)

André Caron andre.louis.caron at usherbrooke.ca
Thu Nov 24 12:25:33 PST 2011

Hi All,

I’m investigating the use of QtWebKit as a means to develop a desktop 
application with web technologies (HTML/JavaScript).  I have a sample 
application with an embedded QtWebView that displays a small page with a 
JavaScript-powered graph application (Dracula[1] -- based on Raphael[2] --  
is used to render the graph).  When using a small graph (~10 nodes), 
everything is fine.  On larger graphs (~100 nodes), however, the rendering 
lags so much that the graph is barely usable.  Using recent Chrome and 
Firefox public releases (Windows and Linux), the display is snappy for ~100 
nodes and pretty good even for much larger graphs (~500 nodes).  Safari for 
Windows shows the same lag behavior as my application.

On Linux, experimentation with the QtTestBrowser in the WebKitTools shows 
that using a QGraphicsWebView instead of the "traditionnal" QWebView gives a 
substantial increase in performance, comparable with that experienced in 
Chrome.  Enabling "AcceleratedCompositingEnabled" in the QWebSettings gives 
an additional performance boost.  I thus did the switch to QtWebView in my 
application and enable accelerated compisiting.  In these conditions (on 
Linux), the larger graphs (~100 nodes) are very responsive and really large 
graphs (~500 nodes) are totally usable.  However, on Windows, there was a 
small performance boost but the lag did not dissapear.  It is still unusable 
for ~100 nodes.

Thus, I'd like to try the QtTestBrowser in Windows to see if I can get 
similar performance before I start changing my code, but the WebKittools 
don't seem to be shipped with Qt.  I though I'd build QtWebKit from source 
to get a local copy of the QtTestBrowser.  Looking at WebKit, it seems to 
require use of Cygwin and the build instructions for WebKit on Windows[3][4] 
are overcomplicated and describe a long, painful and very flaky process (the 
page describes far too many *known* points of failure).  Moreover, I've had 
bad experiences in the past with installing Cygwin on Windows, so I'm a bit 
hesitant to installing it on my dev machine.

Since I don't have Cygwin, QuickTime or DirectX installed and I can build Qt 
(which includes QtWebKit) from source, I started looking around.  It seems 
Qt uses it's own ".pro" files and that the WebKit source code (at least, the 
one shipped with Qt) doesn't depend on Cygwin.  What exactly is the role of 
Cygwin in WebKit?  Is it only used in the build configuration?  Is that why 
Qt does not need Cygwin to compile WebKit?  Can I somehow get a build of the 
QtTestBrowser for Windows without spending two days trying to build WebKit? 
If I don't need Cygwin after WebKit is compiled, it would mean that I can at 
least build WebKit with the Cygwin toolchain in a virtual environment (or 
better, some pre-built package for Windows).

In the hope that this may help, here are the versions used to run tests:
A) My application: Windows 7 64-bit, Visual Studio 2008 Professional, 
CMake+NMake, Qt 4.7.4, 64-bit optimized build
B) My application: Ubuntu Linux 11.10 64-bit, CMake+Make+GCC, Qt 4.7.4, 
64-bit debug build
C) QtTestBrowser: Ubuntu Linux 11.10 64-bit, today's trunk of QtWebKit 2.2 
built with "build-webkit --qt".


[1]: http://www.graphdracula.net/
[2]: http://raphaeljs.com/
[3]: http://trac.webkit.org/wiki/BuildingOnWindows
[4]: http://www.webkit.org/building/tools.html 

More information about the webkit-help mailing list