CSC/ECE 517 Spring 2016/Implement private browsing: Difference between revisions
Line 10: | Line 10: | ||
==Installing Servo== | ==Installing Servo== | ||
===Prerequisites on Debian based linuxes=== | |||
<pre> | |||
sudo apt-get install curl freeglut3-dev autoconf \ | sudo apt-get install curl freeglut3-dev autoconf \ | ||
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \ | libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \ | ||
Line 17: | Line 17: | ||
libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \ | libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \ | ||
libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev | libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev | ||
</pre> | |||
===Building Servo=== | |||
<pre> | |||
git clone https://github.com/servo/servo | git clone https://github.com/servo/servo | ||
cd servo | cd servo | ||
./mach build --dev | ./mach build --dev | ||
./mach run tests/html/about-mozilla.html | ./mach run tests/html/about-mozilla.html | ||
</pre> | |||
===Running Servo=== | |||
./mach run [url] | <pre> | ||
./mach run [url] --devtools <port number> | |||
</pre> | |||
==Implementation== | ==Implementation== |
Revision as of 01:25, 24 March 2016
Implement Private Browsing
Servo[1] is a prototype web browser engine written in the RUST language. Servo currently does not support the mode where the cookies, login, history and downloads are forgotten after the session ends. The goal of this project is to implement this feature in Servo.
Introduction
Servo is an experimental web browser layout engine being developed by Mozilla Research. Servo is written in the Rust language, which is also being developed by Mozilla Research. The language is being refined through feedback from Servo development, and writing the Rust compiler itself. Rust is a systems programming language similar to C and C++ in syntax (but semantically very different). The emphasis is on speed, safety, concurrency and control of memory layout.
Installing Servo
Prerequisites on Debian based linuxes
sudo apt-get install curl freeglut3-dev autoconf \ libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \ gperf g++ build-essential cmake virtualenv python-pip \ libssl-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \ libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev
Building Servo
git clone https://github.com/servo/servo cd servo ./mach build --dev ./mach run tests/html/about-mozilla.html
Running Servo
./mach run [url] --devtools <port number>
Implementation
The following steps were followed to meet the project requirements as per this [1].
Step 1
As required we have added the is_private member to the struct IFrameLoadInfo to check if it's a private iframe or not
We are working on implementing the function to set this member based on the mozprivatebrowsing attribute. We are in touch with Josh regarding the same as currently there is no mozprivatebrowsing attribute in the servo project and hence we are trying to understand how it can be implemented. We have written a basic stub for the same which is as below.
Step 2
We have created an enum that holds an isPrivate message containing pipelineId and sender as attributes
The below member has been added to the pipeline struct to check if it's private
Step 2
We are working on implementing the below function to check if the pipeline is private