Back to Programs

Web

Mozilla

Keeping the Internet open and accessible to all.

c++cssjavascriptpythonrustfrontendreacthtmlweb

Participation history

5 GSoC years

2020

11 projects

Official year page

Implementation for Common Voice Kiosk Mode

The common voice project crowdsources voice clips from volunteers in multiple languages towards the creation of an open source dataset to aid in...

Integrate FIDO2 authentication for 2FA on Firefox Account

To better help protect Firefox Account (FxA) users, we want to Integrate FIDO2 (Fast Identity Online) authentication for 2FA on Firefox Account...

Implement cross version support for python

The end goal of this project is to make Mozilla's source code both py2 as well as py3 compatible. Since py2 has officially become obsolete as of...

Debugging Unwanted Scrollbars

It happens often that when an element overflows, its parent element ends up getting an undesirable scrollbar. To help debug such scrollbars due to...

Treeherder

Push Health is a new Dashboard being built inside Treeherder to determine if a push is good based on calculations of Tasks and Tests success rate...

Inline Browser Compatibility Warning For CSS Properties

Cascading Style Sheets is by far the most powerful tool in a web developer's toolbox. It helps you style the website exactly the way you imagined it...

MDN to in-tree migration tool

Writing docs for Firefox's in-tree source docs can be time consuming and difficult. Making the process of contributing to the in-tree docs an...

Extension Activity Monitor

Extensions do most of their work invisibly from users, so extension activity is a complete mystery to most users, even to advanced ones. The...

Bikeshed.rs

The goal of this project is to offer a faithful rewrite of bikeshed, a tool used for generating many standards, in Rust.

Performance improvements to rav1e WASM target

Rav1e is an AV1 encoder that is fast enough to be used in videoconference scenarios on x86_64. This project will implement wasm-simd support in rav1e...

Servo-WebGPU

The aim of this project is to implement WeGPU API on Servo to a point where basic examples can be simulated. It would also involve covering a fair...

2019

14 projects

Official year page

Firefox Reader Redesign

The project involves the redesign of Firefox Reader as well as working on the functionality related issues the current reader is facing. The redesign...

Support importing Instruments profiles in perf.html

Firefox Profiler is a tool which visualizes performance data recorded from various performance analysis tools, which helps us to have an insight into...

Firefox Account Security Dashboard

Firefox Account Security Dashboard The Firefox Account platform tracks security information about an account, but does not surface this information...

Enhancing bugbug : A platform for Bugzilla machine learning projects

bugbug was started with the aim of making the task of bug tracking simpler, by using machine learning algorithms to differentiate between bugs....

FixMe

Open Source software growth is rising. Millions of developers from plenty of countries with different skill-sets and ideas contribute on a daily...

Activity Masking in rav1e

Adaptive Quantization based on an activity mask. The human eye is more tolerant towards errors in areas of high activity and is quick to find out...

WebSocket Monitor

Firefox Developer Tools offers good tooling for monitoring HTTP traffic between the current page and the server. The existing Network panel allows...

Improving Firefox Source Docs Infrastructure

Improve the infrastructure underpinning Firefox's in-tree documentation.

Renderer Backend for Matplotlib based on HTML5 Canvas APIs

Iodide & Pyodide enables one to do data science computations entirely in the browser. These tools explore a rather unique trade-off space, allowing...

Common Voice - WebAssembly MP3 Encoding

I will work to find WebAssembly based solution for missing mediaRecorder API for browsers like Safari and Edge. By using native mp3 encoder that will...

Debugger Inline Variable Preview

In the Debugger tab of the Firefox DevTools when the debugger is paused on a breakpoint users can see the values of variables by hovering over them....

TUID service improvments

Currently the TUID service has stability and speed issues. The aim of this project is to investigate, understand the problems related to it and find...

Ship Public Suffix List (PSL) over Remote Settings

An update to the public suffix list (PSL) is shipped bundled with Firefox releases. The current system creates the DAFSA binary file at build time....

Improve WebDriver support in Servo

WebDriver is a remote control interface that enables introspection and control of user agents. Currently, Servo supports only a minimal subset of the...

2018

16 projects

Official year page

Pontoon

The project mainly focuses on improving the User Experience for people who wish to contribute to Pontoon (the localization tool developed by Mozilla)...

Pontoon's path to first contribution

“Pontoon is Mozilla's localization tool, used by hundreds of contributors to translate Firefox, mozilla.org, and many other Mozilla products. It is...

Improved Pulse Inspector Backend

Over the years, Mozilla has shifted to using Taskcluster as its primary continuous integration system. Communication becomes essential between the...

Extending Iodide’s Functionality and Improving Code Quality

Iodide is a browser-based notebook which works with absolute zero configuration. Iodide notebooks are designed for scientists so that they can work...

Implementing cross references and general improvements in ReSpec

This is a project to implement new features, fix some existing issues and improve maintainability of the ReSpec project. Majority of time is expected...

WebAssembly Studio

The goal of this project is to significantly increase test coverage and test quality in the WebAssembly Studio project. This will make it easier to...

Servo: Prototype ways of splitting up the script crate

The aim of this project is to investigate and propose a plan for separation of Servo script crate. Script crate lays in the core of the Servo and...

Improve Enigmail User Experience

Enigmail is a seamlessly integrated security add-on for Mozilla Thunderbird. The main idea behind this project is to improve Enigmail UI so that...

D3D11 backend for gfx-rs HAL

The aim of the project is to implement the D3D11 backend for the gfx hardware abstraction layer (HAL) in order to get it ready to be used by...

AOM - accessibility API

AOM (Accessibility Object Model) is a JavaScript API that allows for modifying an accessibility tree like DOM. In this project, AOM phase 1 & 2 is...

Download Spam Protection for Firefox

The goal of this project is to prevent sites from bombarding the browser with multiple non user initiated downloads. This would mean that a mechanism...

Adding and Improving Functionalities in Autowebcompat

Basic functionalities which will lead to the completion of the project will be added in this proposal. Adding desktop browsers with options of...

Software-Isolated WASM Processes in Ring 0

Design and partially implement a research operating system that uses WebAssembly to implement software-isolated processes (SIPs) that run in ring 0...

metricsgraphics - zooming and brushing

MetricsGraphics is a great data visualization library. We hope to add natively support brushing and zooming feature (this part can also be used to...

Multi-tab select in Firefox

The purpose of this project is to allow the selection of several tabs in Firefox and thus perform specific actions on them at once. These actions...

Fretboard: A/B Testing Framework for Android

This proposal is about developing Fretboard: an A/B testing framework for Android written in Kotlin, taking as foundation the Switchboard fork used...

2017

21 projects

Official year page

Servo Custom Element Proposal

The custom element API allows javascript authors to create reusable web components. The author can create custom element constructors and setup...

Implementing some of the WebExtension APIs

We will be implementing browsingData and contextMenu APIs of WebExtension (a cross-browser system) for android firefox. There are some bugs related...

Streams API in PDF.js

This project aims to implement Streams API polyfill for PDF.js, and use it for networking and rendering purpose. PDF.js current uses xhr for...

about:telemetry redesign

about:telemetry is present on all builds of Firefox as a way for users to view the data being stored and sent via Telemetry. It was built before...

Boost Session Restore Performance

Session Restore is important as a key feature of Firefox. Many people rely on it to re-open a tab from the past or recover from an unfortunate power...

GitHub Issue Parser

The purpose of this project is to create a software tool that is capable of parsing popular online version control repositories, like GitHub, via...

JSON in Sqlite

Problem: JSON is a nice format to store data and it has become quite prevalent. If we are not overwhelmed by the diversity of JSON now, we soon will...

Livelog Proxy

TaskCluster workers are hosted on services such as EC2 and currently expose ports to the internet to allow http-clients to call API endpoints. This...

Off-main thread HTML parsing

The goal of this project is to fully implement off main thread, speculative HTML parsing. Performing HTML parsing on a separate thread gives rise to...

Adding Collaboration Features to Thimble

The audience of Thimble largely consists of teachers, educators and students. One of the most requested feature in thimble is collaboration. Right...

Improve bug filing interface for bugzilla.mozilla.org

At present, bugzilla.mozilla.org uses enter_bug.cgi to file bugs. This is particularly unwieldy due to a lot of reasons like two hop db access,...

SemVer compatibility tool

The goal of this project is to develop and implement a scheme to verify a library crate's adherence to the semantic versioning specification in the...

Matrix Protocol Support for Instantbird.

Matrix is an open, decentralized protocol for instant messaging (and more!) It has bridges to many other networks and protocol, e.g. IRC, Slack, and...

Convert XUL to HTML

Lightning has traditionally been using XUL for its user interface. To modernize, we would like to convert dialogs, tab content and other parts of the...

Migrate Balrog’s Admin API to OpenAPI-Specification

Balrog is the software that runs the server side component of the update system used by Firefox and other Mozilla products. It helps ship updates...

Canvas for Study Group Event Page

The current page of Study Group Event needs enhancement as to provide information about Study Group Programs and Events. Through this page, people...

View Details of Performance Test Results on Perfherder

Perfherder is the dashboard which monitors and analyses performance tests run against Mozilla products. Currently, Perfherder provides aggregated...

MDN Documentation Tester WebExtension

Note: This is one of Mozilla proposed Subject Rewrite the MDN doc tester add-on as a (well-tested, modern, documented) WebExtension that runs in...

Mozilla Science Lab: science.mozilla.org phase 2

This project is about implementing a bunch of features from phase 2 of science.mozilla.org

Firefox Developer Tools: CSS Grid Inspector

I will be adding and refining existing features to Firefox Devtools' CSS Grid Inspector tool. One major feature I will be working on is the grid...

Rust Language Server (RLS)

The aim of this project is to improve the Rust developer experience via the Rust Language Server by introducing few notable improvements. The scope...

2016

13 projects

Official year page

Thunderbird - Implement mbox -> maildir converter

Currently Thunderbird uses mbox as primary storage format for mails (locally). All the mails in a folder are stored in the same file with the same...

Implement RFC7512 PKCS#11 URI support and system integration

Part - 1 : It is desirable for applications or libraries that work with PKCS #11 tokens to accept a common identifier that consumers could use to...

Improving and expanding the JavaScript XMPP Implementation

The aim of this project is to replace libpurple's XMPP implementation with JavaScript implementation of XMPP protocol after adding missing features...

Schedule TaskCluster Jobs in Treeherder

Over the last ten years, Mozilla has been using Buildbot as its primary continuous integration tool in order to schedule builds and tests for every...

Mozilla Calendar – Event in a Tab

Currently, events and tasks are created and edited in a dialog window. This project will add the option to create and edit them in a tab instead,...

Web-based GDB Frontend

In this project the goal is to provide a GUI for GDB in the browser so that other developers can use it to easily and intuitively debug projects...

Prevent Failures due to Update Races

Balrog is the new age update server used by Mozilla to serve updates to Firefox. This project aims to address a situation in Balrog where multiple...

File Support

In this project, File API and related functionalities will be completely implemented in the Servo browser engine. With these features landed, the end...

Download app assets at runtime

Firefox for Android is one of the most widely used browsers. The team is currently involved in reducing the size of the Android Package - APK. As a...

Implementing Service Worker Infrastructure in Servo Browser Engine

Servo has support for Web Workers, and the new Fetch Api whose development is in progress is another new standard, that aims to replace...

Two Projects to Make A-Frame More Useful, Accessible, and Exciting

In a matter of weeks, HTC and Oculus will begin shipping the first generation of VR to tens of thousands of consumers. While VR content is easy to...

Proposal of Redesign SETA

We have tons of testing jobs for a push but we don't want to run each of them, as they are time consuming and requiring hardware resources. The SETA...

Mozilla Investigator(MIG): Auditd integration

Mozilla Investigator(MIG) is a platform that provides distributed and real time digital forensics at the speed of the cloud i.e. obtaining forensic...