ariya/phantomjs — pull request #340 by detro (2012-11-07 15:54:07+00:00)
Title: GhostDriver Development Branch - Master Push #5

This is the **5th batch** of changes to PhantomJS to make it suitable for a WebDriver implementation.

### Issues involved
* [Issue #800](http://code.google.com/p/phantomjs/issues/detail?id=800) (later on reworked into #842)
* [Issue #801](http://code.google.com/p/phantomjs/issues/detail?id=801)
* MINOR: Fixing typo - `splice !== slice` (how this worked so far is a mystery to me)
* [Issue #808](http://code.google.com/p/phantomjs/issues/detail?id=808)
* Making webserver module read request bodies and write response bodies using UTF-8 (by @jimevans) (there should be an issue for this I think, but I can't find it right now)
* [Issue #807](http://code.google.com/p/phantomjs/issues/detail?id=807)
* [Issue #842](http://code.google.com/p/phantomjs/issues/detail?id=842)
* [Issue #843](http://code.google.com/p/phantomjs/issues/detail?id=843)

The work is not over, but this should cover the basis for GhostDriver 1.0. Details about what is done and what not are available at the project page.

### Issue 800
Few words about issue 800: I tried to do some rebasing and cherry picking but, given that work was quite mixed and intense, it's very hard to get rid of those commits and only have the ones for Issue #842.
Also, they are a clear representation of how I what I was working towards, and the issues are well connected and referenced. So, it should be clear what happened there.

### GhostDriver into PhantomJS
I plan to have 1 final push for 1.8 to bring GhostDriver 1.0 inside PhantomJS as a resource.
How exactly I'm going to do that, I'm not yet sure: packing so many JS files into the PhantomJS executable is going to require quite some work with `.qrc` files.
Also, GhostDriver uses `require()` and `includeJs()` to load the various dependencies: I'll have to make a thin layer to translate those into Qt Resource Files paths. I don't know exactly how am I going to do that yet.

Suggestions are welcome ;)

Ivan