Commits on May 18, 2012
Commits on May 7, 2012
  1. Mac: Embed Info.plist in the executable.

    Info.plist is needed to surpress the dock icon. Up to now, we need to have
    the file available at run-time. With this change, the contents of
    Info.plist are embedded in the executable at the linking stage, thus
    there is no need to deploy the Info.plist file anymore.
    Credit to Smokey Ardisson for the tip.
    ariya committed May 7, 2012
Commits on May 3, 2012
  1. Fix application font loading in basic font db

    ISSUE: 460 (
    this is a backport from qtbase:
    commit 89cfe9eb01ad75c14121dbd6038b7c791226acf1
    Author: Jiang Jiang <>
    Date:   Thu Nov 10 18:01:56 2011 +0100
        We need to reregister fonts in initializeDb because basic font db
        doesn't have an internal record like fontconfig does, so just
        repopulating the font database won't work. db->reregisterAppFonts
        is now used properly as intended (reregister application fonts
        after the system font database has been cleared).
        Also, static variable 'initialized' in initializeDb() is removed
        since we check privateDb()->count to see if it needs to be populated
        Task-number: QTBUG-22063
        Change-Id: Ifc66392b56b72acbe08b99256c61421c204be5d7
        Reviewed-by: Eskil Abrahamsen Blomfeldt <>
    milianw committed May 3, 2012
Commits on May 2, 2012
  1. Properly handle fourth CLI parameter in rasterize.js example.

    After the change to system.args which has the app as first element,
    the rasterize example was not properly adapted. Due to that, one
    could not pass a size parameter to it anymore, resulting in PDFs
    without page breaks.
    ISSUE: 523 (
    milianw committed May 2, 2012
Commits on Apr 30, 2012
  1. 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 (
    milianw committed with ariya Apr 25, 2012
Commits on Apr 25, 2012
  1. Improve 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 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.
    $ scp phantomjs-$version.tar.bz2 yourhost
    $ ssh yourhost
    $ tar -xf phantomjs-$version.tar.bz2
    $ ./phantomjs-$version/
    CC ISSUE: 413 (
    (proper static build would still be desirable eventually if possible)
    milianw committed Apr 25, 2012
Commits on Apr 20, 2012
  1. Properly pass --qt-config value from to src/qt/

    This way one can properly cross-compile PhantomJS for different
    platforms e.g. by passing --qt-config '-platform ...' to
    ISSUE: 507 (
    milianw committed Apr 20, 2012
Commits on Apr 18, 2012
  1. 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
    ISSUE: 503 (
    milianw committed Apr 18, 2012
Commits on Apr 17, 2012
  1. Fixed minor typo in

    Thanks to Alessandro for spotting it.
    ariya committed Apr 17, 2012
Commits on Apr 16, 2012
  1. 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).
    ariya committed Apr 16, 2012
Commits on Apr 15, 2012
  1. Make it possible to print pages with user-defined headers/footers.

    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 (
    milianw committed with ariya Apr 11, 2012
Commits on Apr 12, 2012
Commits on Apr 11, 2012
  1. Squashed commit of the following:

    commit c373ac4
    Author: Danny Wang <>
    Date:   Tue Apr 10 12:38:13 2012 +0800
        moved i and l delarations to the top of page.evaluate()
    commit bf24d4d
    Author: Danny Wang <>
    Date:   Tue Apr 10 08:54:55 2012 +0800
        fixed defects in evaluate() pointed out by detro
    commit 0bb8cff
    Author: Danny Wang <>
    Date:   Fri Apr 6 19:21:47 2012 +0800
        added passing variables to function for page.evaluate
    ariya committed Apr 11, 2012
Commits on Apr 2, 2012
Commits on Apr 1, 2012
  1. Improve PhantomJS description.

    First cut at a more modernized version of the README.
    ariya committed Apr 1, 2012
Commits on Mar 28, 2012
Commits on Mar 23, 2012
  1. Fixing defect in the "Filesystem Spec 03".

    Too strong assumption regarding the Current Working Directory.
    detro committed Mar 23, 2012
  2. Adding Webserver "response.closeGracefully()" to easily (and more ele…

    …gantly) send empty HTTP responses.
    Addresses [Issue 451](
    detro committed Mar 23, 2012
  3. Updating "webserver" test spec.

    I also made a minor fix in the logic of "system" test spec:
    too strong assumption on the CurrentWorkingDirectory
    when launching the test.
    detro committed Mar 23, 2012
  4. Second attempt to solve Issue 439.

    [Issue 439](
    This works for all kind of "Content Body" but with raw bytes: the issue is that QtWebKit doesn't know how to convert a "QByteArray" to a "QVariant" (to inject it in the JavaScript space), resulting in a malformed conversion (somehow it decides to create a map where byte position is the 'key' and the byte at that position is the 'value').
    This fix covers most scenarios (hopefully) but we are blocked on solving it completely.
    detro committed with ariya Mar 22, 2012
Commits on Mar 21, 2012
  1. Bracing for Ghost Flower.

    ariya committed Mar 21, 2012
  2. More changes for 1.5.

    ariya committed Mar 21, 2012
  3. Fix for Issue [439](…

    Even without "Content-Type" set to "application/x-www-form-urlencoded", content in the body of a POST or PUT should be available.
    detro committed with ariya Mar 20, 2012
Commits on Mar 20, 2012
  1. Fixing the "request.url" field, excluding symbols '/', '&' and '#' fr…

    …om "percent encoding".
    Well, it's not really necessary for '#' but I'm just being safe (non-browser clients).
    detro committed with ariya Mar 20, 2012