Giter Club home page Giter Club 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 only on Linux)

Prerequisites:

  • Qt (we tested with 4.8.1, but it could probably work with 5.x as well)
  • gcc or g++ (tested with 4.6.3)

Compiling instructions (these instructions are standard for QtWebKit):

  • Set an environment variable with the location of Qt
    • export QTDIR=/home/$USER/QtSDK/Desktop/Qt/4.8.1/gcc
  • Add Qt to the PATH
    • export PATH=$QTDIR/bin:$PATH
  • Compile
    • 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 the browser

To run the browser, call:

  • Tools/Scripts/run-launcher

The browser produces a file WTF_actionlog. This file is then passed to EventRacer race analyzer.

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

Using auto exploration

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

After auto-exploration, a WTF_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, WTF, 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).

webkit's People

Contributors

vraychev avatar

Watchers

Martin Vechev 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.