From MozillaWiki
Jump to: navigation, search

Looking for this year's Summer of Code information? Step right this way.

This page lists all the Google Summer of Code 2009 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on the Brainstorming page.

Potential students: you may choose from the list below, but you do not have to - feel free to submit a proposal for your own idea. However, before you do so, see the guidelines for good ideas. You can also discuss your ideas or application in the #developers channel on IRC: irc:// .

In addition to the specifically-named projects below, we have also tagged a number of bugs in Bugzilla with the keyword student-project. However, as the idea of a "student project" is wider than just the Summer of Code, students looking through the list will need to decide whether any particular bug listed there is actually the right size and scope for Summer of Code.

Application Advice

Questions of any sort? Send mail to Gerv and/or chofmann. We will try and respond as soon as possible and get your questions directed to the right person. Please allow at least 48 hours for a reply.

Mozilla Platform

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Web pages over rsync A lot of web pages today are dynamic and so uncacheable, even though large parts of them are the same between requests. The rsync protocol is a great way of sending the deltas between two similar files in a small number of bytes. tridge has done a proof of concept, using proxies and librsync, for caching everything and using rsync to send deltas instead of complete pages when things change a bit. This has the potential to transform the web experience for users on slow connections. The project would be to fix up his proxy, and make a matching Firefox extension which together would form a proof of concept. Gerv tridge has agreed to co-mentor, but we need a Mozilla person who thinks this is cool to mentor as well.
nsIProcess2 Replace the existing nsIProcess interface with a new interface that supports Unicode on all platforms, supports piping to/from processes and can handle asynchronous I/O via callbacks. The primary API should be a JS API, but will be implemented partly using XPCOM underneath. Also, this functionality should be available through Components.utils.import("resource://gre/process.js") or a similar JS module approach. (bug 484246) James Boston Mark Finkle


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments


(See also the Mozilla Labs section below, which has Thunderbird-related projects.)

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
A user-focused front-end to bug submission Like the Bugzilla Helper project, but specific to thunderbird, in order to limit the scope. see bugzilla helper for some thoughts, as well as this mdat thread DavidA Clarkbw See below under Bugzilla - I think that in eight weeks, a student could probably do the wider project, and would encourage students to apply for that. But I'd love to have Clarkbw help me mentor it :-) - Gerv


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Automate Calendar Testing Using Mozmill Mozmill is a UI Automation tool for the Mozilla Platform. We should use it to automate many of the manual test cases used for calendar testing. It can also be used to automate many of the more interesting unit tests - for example, it could be used to unit test the "View" objects in the calendar code base. Fallen Ctalbert


The Camino Project has their own Summer of Code 2009 page.


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Make Weave work on SeaMonkey 2 Weave is a Mozilla Labs project for synchronizing various objects (history, bookmarks, and more) between several Firefox instances in desktops and mobile devices. The work in this student project would be to throw SeaMonkey 2 into this fold and enable synchronization of SeaMonkey 2.x instances possible through Weave among each other and with Firefox and Fennec installs. Robert Kaiser Robert Kaiser Some of this (e.g. history) should be relatively easy and straight-forward, things like bookmarks are probably harder.
Automated tests for SeaMonkey The SeaMonkey/Mozilla codebase and build environment support a number of test suites that can be automatically run but many areas of SeaMonkey code aren't covered with automated tests yet, mostly due to historic reasons (the testsuites are comparatively young). The student will work on creating tests for all areas that are not covered with such automated tests yet, so that all areas of SeaMonkey get automatically tested in the future. Robert Kaiser Robert Kaiser Crisp success/fail criteria still needs to be created.
Message Filter UI Overhaul The current message filter UI is rather hard to work with and doesn't even provide the complexity the backend would allow. I propose to:
  • integrate the account hierarchy into the rule list
  • integrate the actual rules into the rule list, allowing "inline editing" (this may mean a bigger dialog window and twisties to collapse accounts/rules)
  • allow nested rules (and/or)
  • improve overall usability by allowing to copy rules, defining drag'n'drop and context menus, etc.
Karsten Düsterloh Karsten Düsterloh FilterListDialog.xul is almost identical in both SeaMonkey and Thunderbird, so it shouldn't be too hard to fix both or derive a TB version easily.
Folder Views We provide the ability to create and use message views for pre-filtering which messages to show in the thread pane. We don't have a comparable feature yet in the folder pane...

While this would basically mean to port Thunderbird's bug 251296, the UI should be more in sync with the SeaMonkey look and feel, e.g. columns for unread count, size, etc; a drop down menu for switching views; allow custom folder views; ...

Karsten Düsterloh Karsten Düsterloh


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Better Bugzilla Helper The current Bugzilla Helper was great for its time, but other Bugzillas have done their own step-by-step versions since which are easier to use. And people have had good ideas, like "here's a screenshot of a Thunderbird window - click on where you think the problem is" and so on. Someone needs to research what others have done, write a plan for a much better simple bug filing system, get it discussed and approved in the community, and build it. Gerv Gerv


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
HTC "click wheel" integration The directional pad on the HTC Touch Pro (and other phones) is touch sensitive. That interface could be used to control zooming in Fennec. blassey blassey
Accelerometer interface Many mobile devices have accelerometers built in. Implement an generic interface to provide this input data to the browser and support for at least one device. blassey blassey
Haptic interface Implement a generic interface for controlling haptic output of mobile devices and support for at least one device. blassey blassey
Windows Mobile Today Screen Plugin Embed Mozilla in a Windows Mobile Today Screen plug-in. blassey blassey


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Verbatim/Silme GSoC participant will work with the l10n team to build a web-based tool to help localize Firefox. The tool interface may be written with the web application framework Django and will use the python library Silme as an intermediary layer. One of the main features of the webtool will be a unified dashboard to show the status of all localization projects in each locale inside Mozilla, including Firefox, AMO, SUMO, Thunderbird, Fennec, and more. SethB SethB, Axel (Pike on IRC), Zbigniew Braniecki (Gandalf on IRC) No comments.

Firefox Support (Sumo)

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Rhino JavaScript performance optimization A number of JavaScript engines have recently increased their performance substantially, using approaches such as a tracing JIT. Investigate and implement new code generation and runtime strategies to increase Rhino's JavaScript execution speed. Norris Boyd Norris Boyd (norrisboyd[at]
ES3.1 Support in Rhino The EcmaScript 3.1 specification effort is making good progress. Investigate and begin implementation of support for the new 3.1 language features in Rhino. Norris Boyd Norris Boyd (norrisboyd[at]

Mozilla IT Infrastructure

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Weighted & GSLB GeoDNS Blog post #1 & #2 for background and here for project notes. Would like to build on the existing GeoDNS platform and include per resource record weighting & better management/reporting tools. Would also like to build on this tool to become an open-source Global Load Server Load Balancing tool. mrz mrz (Matthew Zeier)/IT Trying to find out ways to get more community involvement with IT-related activities. We have a lot of community involved with Firefox but little with how IT runs Mozilla's services. I believe this will also help give more insight into IT and enable us to be more transparent and help replace some of the closed-source tools we use to deliver Mozilla products & services.

Labs: Weave

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Integrate Thunderbird and Weave Weave is a way of storing personal Firefox data in the cloud (better description needed). This project would build an interface to Weave from Thunderbird, such as address book data, configuration parameters, etc. DavidA Anant dmose already has a basic port running, but there's lots more to be done w.r.t data sync engines.
Port the Weave web client to 0.3 There is an existing web based interface to access data items stored by Weave. However, after major architectural changes to the server-side, it needs a complete overhaul (and possibly a rewrite) to work with the latest version. Anant Anant

Labs: Bespin

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Thunderhead: Cross browser JavaScript UI toolkit Work with us to implement a cross browser UI toolkit experiment, code named "Thunderhead" Dion Almaer & Ben Galbraith Almaer/Galbraith
Bespin: Pluggable Syntax Highlighting Build a syntax highlighter that groks emacs, vim, and Textmate highlighter files Dion Almaer Almaer/Galbraith
Bespin: Offline editing Create an offline Bespin editing experience Dion Almaer Almaer/Galbraith
Bespin: Server Side JavaScript Create a server side JavaScript Bespin server implementation Kevin Dangoor Almaer/Galbraith?
Bespin: Heuristic analysis Build server side rules analysis to check project code for errors and hints Dion Almaer Almaer/Galbraith