Coder Social home page Coder Social logo

webkit's Introduction

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).

webkit's People

Contributors

vraychev avatar mvechev avatar momchil-velikov avatar pavol-bielik avatar

Watchers

Christoffer Quist Adamsen avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.