CSC/ECE 517 Fall 2014/oss M1453 sst

From Expertiza_Wiki
Revision as of 02:48, 27 October 2014 by Traut (talk | contribs)
Jump to navigation Jump to search

Expand the coverage of the developer tools for inspecting web content in Servo remotely from a Firefox browser - requires the ability to read JavaScript code in Firefox


Background Information

Firefox supports remote debugging - ie. communicating with an arbitrary server that implements a protocol for exposing information about web content. Servo implements a very basic developer tools server that currently supports executing JS remotely and investigating the DOM tree in the document inspector. We want to expand these capabilities by allowing remote modification of the DOM tree, better JS console integration (exposing historical and real-time exceptions), and enabling server->client messages that are not responses to client->server messages.


Developer tools

Servo

Servo is an experimental web browser layout engine being developed by Mozilla Research, with Samsung porting it to Android and ARMprocessors. The prototype seeks to create a highly parallel environment, in which many components (such as rendering, layout, HTML parsing, image decoding, etc.) are handled by fine-grained, isolated tasks. The project is developed in Rust programming language.

Building and running servo On OS X (homebrew):

    brew install automake pkg-config python glfw3 cmake
    pip install virtualenv


On OS X (MacPorts):

    sudo port install python27 py27-virtualenv cmake


On Debian-based Linuxes:

   sudo apt-get install curl freeglut3-dev \
   libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
   msttcorefonts gperf g++ cmake python-virtualenv \
   libssl-dev libglfw-dev


On Fedora:

   sudo yum install curl freeglut-devel libtool gcc-c++ libXi-devel \
   freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXrandr-devel gperf \
   fontconfig-devel cabextract ttmkfdir python python-virtualenv expat-devel \
   rpm-build openssl-devel glfw-devel cmake

pushd . cd /tmp wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec rpmbuild -bb msttcorefonts-2.5-1.spec sudo yum install $HOME/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm popd


On Arch Linux: sudo pacman -S base-devel git python2 python2-virtualenv mesa glfw ttf-font cmake

Rust There are a number of ways to install Rust, but the easiest is to use the rustup script. If you're on Linux or a Mac, all you need to do is this (note that you don't need to type in the $s, they just indicate the start of each command): $ curl -s https://static.rust-lang.org/rustup.sh | sudo sh (If you're concerned about curl | sudo sh, check references) If you're on Windows, please download either the 32-bit installer or the 64-bit installer and run it.

Uninstalling Rust $ curl -s https://static.rust-lang.org/rustup.sh | sudo sh -s -- --uninstall If you used the Windows installer, just re-run the .exe and it will give you an uninstall option.


Reference : http://doc.rust-lang.org/ Download Rust: http://www.rust-lang.org/


Project Description

The project involves the enhancement of

Implementation

Future Scope

  • Separate devtools event handling from script handling tasks.
  • Implement client server messages to update the attribute values of a HTML node.
  • Send a console message to the developer tools server.
  • Synchronously fetch the cached messages from tasks.
  • Create an error reporter for error logging and notification.
  • Dynamic buffering and sending of messages to Developer Tools.
  • Support for disparate client reading and writing.
  • Send a detailed error message to the client when an error is reported to the tasks.

References

<references/>