[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".
André
[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