WebKit fork with the EventRacer instrumentation for race detection.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 44 commits ahead, 102605 commits behind WebKit:master.
Latest commit f82deab Dec 20, 2016
Permalink
Failed to load latest commit information.
Examples Rollback 88521 Jun 10, 2011
LayoutTests Removing line in computeViewportAttributes that enforces a minimum sc… May 3, 2012
ManualTests .: Rename attribute. May 3, 2012
PerformanceTests Need tests for PerfTestRunner.computeStatistics May 3, 2012
Source Compilation fix Nov 12, 2016
Tools QtTestBrowser Sep 5, 2013
WebKitLibraries Resort FeatureDefinesCairo.vcprops to actually be alphabetical (in pr… May 3, 2012
Websites Add notice about running xcode-select before using Xcode 4.3.2 comman… Apr 24, 2012
linux_browser Add flag to hide windows for the Web version of EventRacer Sep 6, 2013
.dir-locals.el emacs: unreviewed. add settings for editing js files. Dec 20, 2011
.gitattributes remove WebKit files from .gitattributes Apr 4, 2012
.gitignore Split up top-level .gitignore and .gitattributes Mar 30, 2012
CMakeLists.txt [CMake] Use jsc target instead of ONLY_BUILD_JAVASCRIPTCORE Apr 18, 2012
ChangeLog .: Rename attribute. May 3, 2012
GNUmakefile.am Unreviewed. Fix make distcheck. Apr 30, 2012
Makefile Entering "make" in Source builds only JavaScriptGlue and ANGLE Dec 28, 2011
Makefile.shared <http://webkit.org/b/77717> Makefile should provide control over outp… Feb 3, 2012
README.md Update README.md Feb 25, 2015
WebKit.pro [Qt] Fix WebKit1 build with V8 Apr 12, 2012
auto_explore_site.sh Update actionlog filename Sep 6, 2013
autogen.sh [GTK] Respect NOCONFIGURE option in autogen.sh Mar 28, 2012
configure.ac [GTK] Fix gstreamer detection during configure May 1, 2012
deploy_webkit.sh Add scripts for building Sep 2, 2013
run_browser.sh Add a run_browser script Sep 9, 2013
wscript [wx] Unreviewed. wxMSW build fixes. Mar 29, 2012

README.md

EventRacer WebKit-based browser

WebKit fork with the EventRacer instrumentation for race detection.

This tool has been tested with Ubuntu linux only using the Qt port of it. Most of the instrumentation must be portable for other targers, but auto-exploration depends on Qt.

Compiling (tested on 64-bit Ubuntu 12.04 and 14.04)

The compilation instructions are standard for QtWebKit (when qt4 is used):

Download prerequsities:

sudo apt-get install bison flex libqt4-dev libqt4-opengl-dev libphonon-dev libicu-dev libsqlite3-dev libxext-dev \
                     libxrender-dev gperf libfontconfig1-dev libphonon-dev libpng12-dev libjpeg62-dev g++

Set environment variables and compile:

export QTDIR=/usr/share/qt4
export PATH=$QTDIR/bin:$PATH
cd webkit
Tools/Scripts/build-webkit --no-netscape-plugin --qt --makeargs="-j8"

This should complete the building of WebKit.

Troubleshooting Compilation

Use the steps below only if your linux distro does not have a libqt4-dev package. Then, you need to download and install Qt from source.

  • Download Qt4.8.1 source from here: http://download.qt-project.org/archive/qt/4.8/4.8.1/
    • You need a file called: qt-everywhere-opensource-src-4.8.1.tar.gz (.zip is also fine)
  • Only source packages can be downloaded nowadays. The instructions are in doc/html/installation.html
    • Run export MAKE=/usr/bin/make && ./configure -prefix /home/$USER/Qt4.8.1 && make && make install
  • Then, before compiling WebKit, set export QTDIR=/home/$USER/Qt4.8.1
  • Compile WebKit with Tools/Scripts/build-webkit --no-netscape-plugin --qt --makeargs="-j8"
  • Alternatively, one can use the standard instructions for compiling QtWebKit at http://trac.webkit.org/wiki/BuildingQtOnLinux and compile with different setting.

Running WebKit

To run the browser, call:

  • ./run_browser.sh

The browser produces a file called ER_actionlog. This file contains a trace of the releveant events. This file passed to EventRacer for race analysis.

The race analyzer is available here: https://github.com/eth-srl/EventRacer

Running WebKit in auto-exploration mode

We added code to QtTestBrowser to automatically explore a website once it is loaded. To use this feature, type:

After auto-exploration, the ER_actionlog file is produced. This file is then passed to EventRacer race analyzer.

The race analyzer is available here: https://github.com/eth-srl/EventRacer

Compiling other targets

With the exception of the auto-exploration, the instrumentation is entirely in WebCore, Web Template Foundation, and the JavaScriptCore interpreter (the JIT or V8 is not supported). However, other targets are not tested. We would be glad to hear your experience if you want to use some other port.

Credits

This modified browser uses a fork on WebKit from 2012 (version 116000 from the WebKit svn) (newer versions do not include the classic interpreter and are not compatible, newer versions may also require qt5).