add 'onUrlChanged' and 'onNavigationRequested' listeners on WebPage, and added a 'navigationBlocked' property on WebPage to control if navigating away from the currnt page is permitted
Merge remote-tracking branch 'upstream/master' into navigation-event
merged
Added tests for customHeaders.

http://code.google.com/p/phantomjs/issues/detail?id=77.
Improve PhantomJS description.

First cut at a more modernized version of the README.

http://code.google.com/p/phantomjs/issues/detail?id=419
Improve PhantomJS README with various use cases.

http://code.google.com/p/phantomjs/issues/detail?id=419
Improve PhantomJS README, mention well-known related projects.

Also minor editing everywhere else.

http://code.google.com/p/phantomjs/issues/detail?id=419
Improve PhantomJS README, fix minor editing issue.

http://code.google.com/p/phantomjs/issues/detail?id=419
Squashed commit of the following:

commit c373ac4d17814588f4e3344f634ec469e56c0303
Author: Danny Wang <wangyang0123@gmail.com>
Date:   Tue Apr 10 12:38:13 2012 +0800

    moved i and l delarations to the top of page.evaluate()

commit bf24d4d1ecdb9e06c7bf461e87c222b10b74bc9d
Author: Danny Wang <wangyang0123@gmail.com>
Date:   Tue Apr 10 08:54:55 2012 +0800

    fixed defects in evaluate() pointed out by detro

commit 0bb8cff7803b70fe60fd761b1b748b5510705ee0
Author: Danny Wang <wangyang0123@gmail.com>
Date:   Fri Apr 6 19:21:47 2012 +0800

    added passing variables to function for page.evaluate

    http://code.google.com/p/phantomjs/issues/detail?id=132
Moved to gh-pages branch.

http://code.google.com/p/phantomjs/issues/detail?id=490
Update CoffeeScript compiler to version 1.3.1.

http://code.google.com/p/phantomjs/issues/detail?id=496
Fix crash on close due to an uninitialized pointer in QEventDispatcherQPAPrivate.

ISSUE: 497 (http://code.google.com/p/phantomjs/issues/detail?id=497)
Make it possible to print pages with user-defined headers/footers.

Usage:

page.paperSize = {
  margin: "1cm",
  header: {
    height: "1cm",
    contents: phantom.callback(function(pageNum, numPages) {
      return "<h1>" + pageNum + " / " + numPages + "</h1>";
    })
  },
  footer: {
    height: "0.5cm",
    contents: phantom.callback(function(pageNum, numPages) {
      return "<h2>" + pageNum + " / " + numPages + "</h1>";
    })
  }
};

Note: The contents can return arbitrary HTML but since we cannot
re-layout the whole website for every page, the header/footers
must have the static height defined in the height property.

Note: The new example printheaderfooter.js shows the usage. It
also shows how one could delegate the above to a JavaScript
function on the loaded website, which allows one to print pages
and let the actually printed page decide how the header/footer
should look like.

Note: The page-counter can be reset by adding the class "phantomjs_reset_pagination"
to HTML block-elements that should reset the counter.

ISSUE: 410 (http://code.google.com/p/phantomjs/issues/detail?id=410)
Improve README.md regarding the contributors.

http://code.google.com/p/phantomjs/issues/detail?id=419
Build system: do not assume 4 parallel jobs on Linux.

Try to grab the number of CPU cores from /proc/cpuinfo and use it as
the number of parallel make jobs (limit to 8 as a safety measure).

http://code.google.com/p/phantomjs/issues/detail?id=454
Fixed minor typo in README.md.

Thanks to Alessandro for spotting it.
Reuse number of jobs configured in MAKEFLAGS env var if available

Especially on machines that are connected to a compile farm, the
MAKEFLAGS env var is usually set to configure the default number
of jobs that should be used. This way, one can just call the
PhantomJS build script without passing the number of jobs every
time.

ISSUE: 503 (http://code.google.com/p/phantomjs/issues/detail?id=503)
Properly pass --qt-config value from build.sh to src/qt/preconfig.sh.

This way one can properly cross-compile PhantomJS for different
platforms e.g. by passing --qt-config '-platform ...' to build.sh.

ISSUE: 507 (http://code.google.com/p/phantomjs/issues/detail?id=507)
Improve package-linux-dynamic.sh to create a quasi-static phantomjs.

The script now copies all required shared libraries found via ldd
to the deployment folder.

Furthermore, a run-script is created that runs the phantomjs binary
through the copied build-host's ld-linux.so to ensure all symbols
are properly resolved.

Last but not least, we now include a very slightly modified brandelf.c
from FreeBSD. This version can be compiled on Linux machines and is
used to change the ELF ABI of the binary and libs in the deployment
folder, such that they all use the old SYSV OS ABI for compatibility.

Usage:
$ package-linux-dynamic.sh
$ scp phantomjs-$version.tar.bz2 yourhost
$ ssh yourhost
$ tar -xf phantomjs-$version.tar.bz2
$ ./phantomjs-$version/phantomjs.sh

CC ISSUE: 413 (http://code.google.com/p/phantomjs/issues/detail?id=413)

(proper static build would still be desirable eventually if possible)
Extend printheaderfooter.js example documentation

The comment now explains how to delegate the header/footer setup
to the loaded HTML page by giving an explicit HTML example that
defines the required PhantomJSPrinting object

ISSUE: 512 (http://code.google.com/p/phantomjs/issues/detail?id=512)