CSC/ECE 517 Spring 2018- Project M1802: 2D Canvas Rendering
CSC/ECE 517 Spring 2018/OSS: M1802
“M1802: Simplify the 2d Canvas Rendering”
As robust and fast Servo is, Servo’s implenetation of its HTML 2D/3D “<canvas>” has several inefficiencies that make some websites perform slowly or run out of memory when performing complex canvas operations. The goal of this project was to make these websites perform better when loaded in Servo.
Introduction
This section briefly describes the main parts of this project: Servo, Rust, and HTML Canvas.
Servo
Named after a robot from the show Mystery Science Threater 3000, Servo is an experimental web browser layout engine developed by Mozilla. It is currenly being developed for 64-bit OS X, 64-bit Linux, 64-bit Windows, and Android. While working with Samsung, Mozilla seeks to create a highly parallel environment where the many things in a web browser like rendering, image decoding, and HTML parsing are handled by isolated tasks.
Rust
Since existing languages like C++ did not provide a direct way to achieve a parallel environment, Mozilla developed and uses a programming language called Rust to further develop Servo.
HTML Canvas
A <canvas> in HTML is a container for graphics that is used to draw graphics “on the fly” by using Javascript. The HTML <canvas> can: • Be animated • Be interactive • Draw text • Be used in games