GSoC/GCI Archive
Google Summer of Code 2014

Mozilla

License: Mozilla Public License 2.0 (MPL-2.0)

Web Page: https://wiki.mozilla.org/Community:SummerOfCode14

Mailing List: https://www.mozilla.org/about/forums/#dev-planning

The mission of the Mozilla Project is to preserve choice and innovation on the Internet. We are the producer and provider of the award-winning Firefox web browser, Firefox OS mobile operating system and Thunderbird email software, and are also expanding into Identity (with Mozilla Persona) and Open Web Apps. We are an advocate for open standards on the Net, and provide tools for developing high quality web content and applications. We also provide software development tools used by hundreds of free software projects worldwide.

Projects

  • A Desktop Environment based on B2G I have used most of linux desktop environments ranging from gnome2,gnome-shell(GNOME3),Unity, KDE ,LXDE , XFCE , e17, mate, cinnamon. I really think we need a new desktop environment for touch-friendly devices and small-form PC that include Raspberry PI. I have been using Firefox OS on my keon for some months now and I have lately tried the desktop build with tablet UI.this project may ultimately lead to dedicated linux distro for Mozilla Devs.
  • Add markdown support to Bugzilla In this project, we aim to add Markdown features to Bugzilla comments. Currently, Bugzilla comments are plain-text-based and do not support HTML structures. This project involves implementing most of the Markdown standard structures as well as some additions to it by Github Flavoured Markdown features. Finally, we will have a documentation written for end users to help them know what structures are supported by Bugzilla Markdown engine.
  • Browsercast The goal of this project is to implement an HTML5+Javascript replacement for screencasting and integrate it with a composition tool. The end result of this project will allow non-specialists to author an HTML5+Javascript slideshow using something like Thimble, add a voiceover, and create something that plays back in the browser (so that search engines and accessibility aids can "see" the content) with a fraction of the data download required by video.
  • Development of both online as offline speech recognition to B2G and Firefox Mozilla needs to fill the gap between B2G and other mobile OSes, and also desktop Firefox lacks this important feature already available at Google Chrome. In addition, we’ll have a new Web API empowering developers , and every speech recognition application already developed and running on Chrome, will start to work on Firefox without changes. On future, this can be integrated on other Mozilla products, opening windows to a whole new class of interactive applications.
  • Firefox OS Games Resources This project is called "Firefox OS Games Resources" and the objective is to create game samples, an ebook and some reusable libraries to aid game developers in Firefox OS. Games count for 50% of the app usage on smartphones, we don't have developer resources and training material to help developers build good quality games for Firefox OS low-end devices. This project aims to fix that and help our platform advance further.
  • Functional Test Suite and Features for QA Taskboard - One and Done The aim of this project is to write functional tests using Selenium WebDriver for the features developed in QA team’s on going project One and Done in Version 1 Milestone 1, Try and adapt new/better ways of testing which do not exist in current model of testing for Web QA projects such as using FactoryBoy for data population. Automate the process of task creation, and develop a Firefox extension to deliver user notifications for Version 2.0.
  • Implement Electrolysis Support for Addon SDK Multi-process support, or "Electrolysis", is likely to be the next big project that Firefox product team focuses on after shipping "Australis" redesign in spring 2014. Addon SDK was designed to provide easy to use, high-level APIs to addon developers, hiding complex implementation details such as multi-process support. The aim of this project is to actually implement Electrolysis support in Jetpack and provide a smooth transition path for addon developers.
  • Implement Speech Synthesis on Desktop Firefox The main goal of the project is: To add the Text to speech API in Firefox browser for the desktop OSes. Current status is that, we have speech synthesis service working with pico on gonk. The project aims to extend it to have speech synthesis supported on Firefox for desktop OSs as well. In the process of speech generation on different platforms, the idea is to communicate with the platform speech services, so that we don’t have to care about the engines that are being used.
  • Implement XMLHttpRequest in Servo Currently, Servo has no AJAX support exposed to JavaScript. AJAX is an integral part of the web these days, so the lack of this feature makes Servo much less useful as a browser. The goal of this project is to have a partial implementation of the XMLHttpRequestobject -- one which is self-consistent and covers most use cases that are found today.
  • Implement Zest recorder and runner Currently Zest is implemented in java only and is being used in OWASP ZAP. This proposal is about a javascript implementation of Zest runtime based on Firefox Add-on SDK which would also provide recording and editing zest scripts graphically as a Firefox add-on.
  • Implementation of SVG Backend for PDF.js PDF.js currently draws graphics onto a HTML Canvas element. SVG, a vector based graphic technology, would be a good alternative to the existing Canvas implementation. This project aims to provide an alternate backend, to PDF.js, using SVG technology. Since any graphics that can be drawn using Canvas, can also be drawn with SVG, it’s a feasible and interesting project.
  • Improve Calendar Backends The aim of this project is to extend and enable cached mode as the default for online calendar providers in Lightning. Doing so allows for Lightning to function effectively in an offline environment. In addition, this will ensure that only the changes that have been made are communicated with the server, resulting in performance improvements.
  • Improved messaging functionality and interaction in the SMS app SMS App of Firefox OS currently has features like ‘forward’, ‘delete’ and ‘save as draft’ for sent and received SMSs. The aim of this project is to add new features to it such as (i)a ‘mark selected SMS thread as read’option(ii)a ‘protection on/off’ option to an SMS (Lock Message option)(iii)supporting vCard 2.1 (mime-type: text/x-vCard)(iv)option to add important SMS information related to timing & dates of events to calendar app and (v)option to block messages (sorted by subject or address).
  • Instantbird: Indexed Chat History and Infinite Conversation Scrollback The broad goals of this project are: a) Logs should be searchable without knowing the date on which the message to be found was sent/received. b) Scrolling up in a conversation should load more context c) Searching a conversation should work even if the message to be found isn’t already displayed.
  • Instantbird: WebRTC Support The project aims in adding voice and video support to the Instantbird chat keeping in mind the existing user interface of the application and have a seamless integration. This involves integrating the WebRTC API with XMPP protocol to allow voice/video communication to a contact. WebRTC makes it easy for us to have real-time communication without the use of additional plugins.
  • Kitherder Kitherder would provide abilities for mentees and mentors to submit projects, for matches to be made and approved by coordinators, and for mentors and mentees to track the process of the projects through milestones.
  • Math virtual keyboard The aim of this project is to implement a native mathematical virtual keyboard for Firefox OS and a demo of note webapp that use it. The math virtual keyboard will enhance the user experience for K-12 and undergraduate (pre-calculus) students taking notes or writing scientific documents involving math expressions.
  • MDN – Bug Fixing and Polishing Collaborated with the MDN Team squashing over dozen bugs under the mentorship of David Walsh. The UI/UX improvements and features implemented during the project directly contributed to MDN reaching 700 active editors/translators in July.
  • Migrate from YUI2 to YUI3 . Bug 453268 The present stable release of Bugzilla uses YUI2 library for its user interface which is now deprecated and is no longer maintained . There is a compelling need to migrate to the latest version of YUI that is YUI3 as it is a more secure and an actively maintained framework . Therefore in this application , I propose to perform the task of complete migration of the Bugzilla codebase from YUI2 to YUI3 and subsequently carry on the task of refactoring the code.
  • Mochitest Failure Investigator The contributors in Mozilla spend a large amount of time investigating tests and managing known failures that occur occasionally. In many cases, we probe test failures and cannot reproduce them while running the test by itself. It has been found that some tests alter the state of Firefox which cause future tests to behave differently. The aim of this project is to build a tool which will take a given test failure and work backwards to find its failure point.
  • Mozilla Intellego -- Terminology-driven automatic translation of web sites. This project will lay the foundational code for Intellego by aiming at the completion of the first key milestone: creating an automatic translation tool for web sites aimed to translate all key source terminology in a site into the target language equivalents.
  • Peer instruction on the Web Currently no MOOCs (Massive Open Online Courses) or e-learning systems support a peer instruction method, which has shown some advantages over traditional lecture-based learning techniques. In this project I will implement a tool that helps instructors and their students experiment with this teaching method online. The project will mainly leverage WebRTC technology.
  • Porting key Meemoo modules to NoFlo Meemoo.org is a platform for web-hackable creative image/animation apps. Noflojs.org is a more-powerful dataflow environment, with hooks to Node.js and Arduino. This project idea involves designing a Canvas 2d library of Noflo components which will allow Meemoo components to be ported as Noflo subgraphs. Having this library implemented on Noflojs we will start migrating Meemoo apps to this new environment and make Meemoo closer to a WebMaker integration.
  • Thunderbird - Make the unit test framework work with maildir mailbox format I plan to make the existing unit test infrastructure work with maildir enabled as the email storage format. My work will make the xpcshell and mozmill tests pass with maildir enabled. This will also help in uncovering bugs in the core implementation that can be fixed.
  • Update Lightning Invitations to Latest Specification This proposal specifies improve Lightning’s scheduling system by updating available codebase to the latest CalDav specification and by implementing required CalDav properties from RFC6638 to make the Lightning’s scheduling possible with any server. Furthermore, this covers writing mozmill tests for various invitation scenarios focusing mostly on sections where the code will be updated.