

Node-Chimera: headless Webkit in Node.js - albertzeyer
https://github.com/deanmao/node-chimera

======
edwinnathaniel
This looks nice with a few exception:

1) Still no Qt version / WebKit features enabler

One of the problems using the "port" version from Qt is that both projects
stuck with that version until Qt releases updates.

This means that you cannot enable/disable WebKit features (i.e.: navigation
timing API) as you build your own Chimera/PhantomJS and this has been one of
the most sought after feature request in PhantomJS project.

2) Memory usage (?)

PhantomJS uses about 40-50MB for a simple website like Twitter.com main login
page (we're not talking about the whole Twitter.com but just the login page).
Not sure if this is because it is piggy backing on Qt or something else?

3) [Varies] Code-style wise

It takes a while to get used to PhantomJS/CasperJS coding style (based on
Promises for CasperJS) and it looks like it is due to the nature of the
interaction of the browser and the programmable API/tooling.

~~~
baudehlo
The Qt port of webkit is also really unstable. Quite a surprising number of
web sites cause PhantomJS to segfault.

~~~
edwinnathaniel
Haven't stumbled upon any of those issues (and we test PJS to a number of
different websites ranging from Sharepoint-type, Drupal, Wordpress, etc).

------
albertzeyer
Btw., along the lines, I just figured out that via Qt Platform Abstraction
(former Qt Lighthouse project) (since Qt 4.8), you can have a _real_ headless
Qt WebKit now. (Earlier, it always was some headless X-server in between -
much heavier.)

Some links:

[http://stackoverflow.com/questions/9213215/how-to-use-
qwebpa...](http://stackoverflow.com/questions/9213215/how-to-use-qwebpage-in-
a-non-gui-application/15471433#15471433)

Esp. this PhantomJS commit is interesting:

<https://github.com/ariya/phantomjs/commit/c78ae190a9>

~~~
niggler
I thought PhantomJS 1.5 got rid of the X dependency ...

~~~
edwinnathaniel
Either that or 1.6, but yeah, they did.

------
tantalor
Since this embeds QtWebKit which uses JavaScriptCore, does that mean that
JavaScript in the browser will be running in a completely different
environment? i.e., JavaScriptCore instead of node (V8).

If so: yo dawg

------
woah
Great stuff! Me and a pen-tester friend may use this to build online scanning
tools. We were going to use phantom, but this should be easier.

------
kanakiyajay
Hope they add native binaries for windows soon

