CEF vs. QtWebkit

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

CEF vs. QtWebkit

Postby hawkgao » Thu Aug 04, 2011 10:20 pm

Hi there,
I'm a newbie for webkit. I'm looking for a framework which can hybrid web and native code. It something like js calls c++ code and c++ can call js also. I did some searching on the internet. Found CEF and QtWebit are the things I want. Some other things also under my consideration, 1) license, looser is better, code change should be allowed. 2) installer size, smaller is better. 3)Html5 features, I hope to keep all cool render features .

Anybody could tell me, which one should I choose CEF or QtWebkit or something else.

Thank you very much!
Hawk
hawkgao
Mentor
 
Posts: 83
Joined: Thu Aug 04, 2011 9:40 pm

Re: CEF vs. QtWebkit

Postby magreenblatt » Mon Aug 08, 2011 11:33 am

Hi Hawk,

hawkgao wrote:1) license, looser is better, code change should be allowed.

CEF license: http://code.google.com/p/chromiumembedd ... ICENSE.txt
QtWebkit license: http://doc.qt.nokia.com/4.7-snapshot/qt ... nformation

hawkgao wrote:2) installer size, smaller is better.

The most recent binary release of CEF is 13MB compressed on Windows. I'm not sure what size QtWebkit is.

hawkgao wrote:3)Html5 features, I hope to keep all cool render features .

According to http://trac.webkit.org/wiki/QtWebKitFeatures21 QtWebkit is using a July 2010 branch of WebKit. CEF tracks the current WebKit HEAD revision. This means that CEF likely has more and better support for HTML5 features.

Regards,
Masrhall
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: CEF vs. QtWebkit

Postby cagret » Mon Aug 08, 2011 12:23 pm

QtWebkit is for sure slower, it's build on top of QT framework, CEF is plain fast C++. I've been googling some time ago and found some website comparing speeds of webkit ports and QtWebkit was the slowest of them all, it's probably because of all that QT abstraction that was put into it.

QtWebkit is also bigger, because besides the webkit engine you also need to include standard QT dlls which are: QtCore4.dll (2.5 MB), QtGui4.dll (9.6 MB), QtXmlPatterns.dll (4 MB) and more.. they are total 8 MB compressed, compiling it statically doesn't help too much, I tried and saved only 0.5 MB.

Here are the features supported by QtWebkit currently (only 2.0 on desktop):
http://trac.webkit.org/wiki/QtWebKitSupportedStandards
They seem all to be either "Experimental" or "Not supported".

The link that Marshall pasted is for version 2.1 and as you can read on that page that version does not support desktop, only mobile.
They are working on version 2.2 which is gonna support all platforms:
http://trac.webkit.org/wiki/QtWebKitFeatures22

But you could probably wait for that release a long time... If you heard the news, Nokia is in big trouble and QT is developed by Nokia, they are getting rid of their research department, they already sold the QT commercial support to Digia and they plan to fire all the QT developers, they needed QT for the Maemo platform but now that they are allianced with Microsoft and plan to sell their phones with Windows Phone 7 installed they don't need QT anymore.

I think that Google and its Chromium is a more secure option for the future.

Cheers,
Cezary.
User avatar
cagret
Techie
 
Posts: 41
Joined: Fri Mar 11, 2011 11:42 am
Location: Poland

Re: CEF vs. QtWebkit

Postby hawkgao » Fri Aug 12, 2011 1:17 am

1) Qt can cross platform easily. My plan is to build a web/native hybrid application on Win, Mac, Linux. Is there any script bridge build for webkit on Mac or Linux except Qt?
2) Qt seems easier to startup than CEF. Qtwebkit has more docs and discussion on forum. But I found, on this board, can get quick support from your two guys. :D

Thanks,
Hawk
hawkgao
Mentor
 
Posts: 83
Joined: Thu Aug 04, 2011 9:40 pm

Re: CEF vs. QtWebkit

Postby Benvie » Fri Aug 12, 2011 3:13 am

A non-terrible choice (currently) is going CEF on Windows and Webkit on Linux and Mac (not QT webkit, one that's newish). The rendering engine is going to be nearly identical. Only thing you may run into is one platform supporting a technology when the other doesn't, but it'll be bleeding edge webgl type things.

CEF is really, really easy to get going on Windows. WebKit stuff is a GIANT pain in the ass. Flip it around and you don't even have to ship a control in OSX so it's a no brainer. For linux it i8st ends up being what you find to be easier.

In terms of prepackaged stuff, the only options worth anything are Titanium and CEF. Titanium is actually pretty amazing in what they were able to do (they've even had transparent compositing on top of alpha Windows in their cross browser Webkit for almost a year) but it's languished a bit recently. All the hot mojo is on mobile so there'es essentially no work being done on the desktop platform.

For me personally, I decided to bite the bullet and swap to Titanium despite it not having stuff like the wrapping SDK's around Titanium. Keeping up to date on browser stuff is incredibly important.

Ultimately, my visions are of the web-outside-the-browser world we're hurtling towards and this is a good place to be developing expertise right now. Web rendering engines (especially Webkit) are the most powerful and integrated development and deployment environments that exist. They pull together a huge swath of network, media, and data processing technologies into an insanely well optimized and easy to use package. More and more I'm seeing the signs that people are realizing that on a large scale. Microsoft's thing about Windows 8 UI being built with html5/css/js was just the latest kicker.


What I'm trying to work on now is uniting CEF with Nodejs as a deploy anywhere do anything scripting and rich UI library. The Node and especially the 0.5.x branch in beta now is doing for networking/filesystems/etc. what browsers have done for user interface. It's not just another language to write server software in. It's something that ties together a lot of technologies in a tightly integrate, extremely well performing environment and it now basically has better cross-platform support than anything out there.

Here's some examples right frmo the 0.5.x docs.

All stream I/O has been normalized, so the follow could be any kind of server:

[code]var net = require('net');
var server = net.createServer(function (c) {
c.write('hello\r\n');
c.pipe(c);
});
server.listen(8124, 'localhost');[/quote]

Any action involving files, sockets, streams, etc. is about that easy.
Benvie
Techie
 
Posts: 20
Joined: Wed Aug 10, 2011 2:58 pm

Re: CEF vs. QtWebkit

Postby hawkgao » Fri Aug 12, 2011 7:08 am

@Benvie, I'm unfamiliar with Linux and Mac developing. As you say, it's very easy to use webkit on linux or mac. Could you give any example or link to show how easy it is?

I've seen Titanium days ago. Seems a little complex, even it open source. I want the webkit wrapper open source simple and lightweight.

The community of QtWebkit is not very active.
hawkgao
Mentor
 
Posts: 83
Joined: Thu Aug 04, 2011 9:40 pm


Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 47 guests