From MozillaWiki
Jump to: navigation, search

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

This is the Mozilla Project's list of potential Google Summer of Code projects for 2008.

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 on the Brainstorming page.

You may wish to consider How Not To Apply For Summer Of Code before making your application. Then apply here (you'll need a Google Account).

If you have questions about Summer of Code or if you are having problems connecting up with the right Mozilla developer that might be helpful in framing a proposal 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.

You can also kick ideas around on in any of the bugs listed under the projects below or the #developers channel on irc:// .

Mozilla Platform

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
NPAPI Test suite bug 105959 - Write a comprehensive testsuite plugin for the NPAPI implementation of the browser bsmedberg bsmedberg
Package Dehydra for General Use Create an automated build system for Dehydra_GCC: create a buildbot setup which builds and packages GCC and dehydra on Linux and mac. bsmedberg bsmedberg
Convert Litmus tests to automated tests We have many tests in Litmus that must be ran by a person. This won't catch bugs nearly as fast as if many of these were found at check-in time (or when a developer is hacking on a module). Shawn Wilsher Shawn Wilsher or Edward Lee Depending on how many things need to be converted, I could help out – especially with download manager and location bar autocomplete tests — Ed
Metalink Support Native support for the Metalink XML format (bug 331979) which lists mirrors and checksums, along with other useful metadata such as mirror location. Listing multiple URLs for a file increases availability while the checksums guarantee integrity and let downloads be repaired automatically. You can also filter downloads by location and other things. Metalink is currently supported by most download managers including DownThemAll! Ant Bryan Edward Lee
Server-Sent DOM Events Add support for WhatWG's Server-Sent DOM Events HTML5 There is already a partial patch. Bug338583 The patch does need quite a bit hacking and the project should include also writing good tests for server sent events. Olli Pettay 'smaug' possibly Olli Pettay
Quicktime or DirectShow video backend Implement a backend for the <video> element so it can use native codecs on Windows or Mac for playing video and audio. Chris Double has a gstreamer backend already working for Linux/GTK which can be used as a template. Chris' code should be landed on trunk by the summer. roc doublec
Layout-flush reporting Certain DOM APIs --- e.g., offsetLeft --- require a "layout flush" to bring layout up to date. Flushes can be very expensive; unnecessary use of these APIs (or use at the wrong time) can slow down web applications dramatically, but it's hard for Web developers to detect the problem or fix it. Firebug and other tools should receive reports of layout flushes and include them in profile data or console logs, along with the Javascript stack trace associated with each flush. This requires a small amount of core engine work to report the flushes, plus work to actually expose them in Firebug. roc roc
Implement CSSOM RangeView Currently there is no standards-based way to discover the bounds of a substring of a DOM text node. The CSSOM spec defines a way, but no browser implements it yet. roc roc
Rewrite Mac OS X Carbon printing impl in Cocoa Currently Mozilla's Mac OS X printing code is written in Carbon. Our Carbon implementation uses quite a few deprecated APIs and conflicts with the rest of our Cocoa-based platform in some significant ways. josh josh
Improved lxr see Dave's blog, Taras' blog and proposal

LXR could be improved by hooking it up to semantic information extracted with Dehydra. Sample improvements: Class browsing, exact way of finding method definitions/implementations, list of callers of a method

taras taras, dmandelin?


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Save Changes In Firebug The top requested feature in Firebug is "save my edits". The general problem is very hard, but several specific versions are easier and that allows incremental progress during the summer. Saving the generated page in a nice way or saving diffs (patches) are two cases. Lots of Firebug users would give good feedback. Could be implemented as a Firebug plugin. Johnjbarton Johnjbarton
Extension: Firefox Reader Build a rich UI for newspaper reading that covers the major features of the Microsoft NYT (etc) Reader: offline page storage, full-text indexing and searching, a nifty XUL UI, and a columns presentation. See Manu's Greasemonkey script for a start. User:roc
Test Framework for Responsiveness of User Interface Elements We currently have no tests for response time of specific application interactions such as: opening a new tab, opening each menu in primary UI, opening the Places Library, opening/saving pref panes, bookmarks and history sidebars, etc. This SOC project would entail using the Mochitest framework to build a set of tests that time these common UI interactions, and report the results to Tinderbox, so that the results can be tracked over time. User:Dietrich User:Dietrich
Javascript Framework for Automating Complex User Interface Interfactions We currently have no tests for UI interactions involving copy and paste, nor drag and drop. This has been problematic during the Fx3 development cycle, as these types of interactions are only able to be tested manually, usually long after a regression has occurred. This SOC project entails the development of a standalone Javascript library that provides the ability to script copy/paste and drag/drop operations in the Firefox UI from within the Mochitest framework. User:Dietrich User:Dietrich


Note: the Thunderbird team is extremely short on mentor time. Therefore, any Thunderbird-related proposals not on this list will have a much greater chance of being accepted if you can confirm a mentor before you submit the proposal. Otherwise, the barrier is going to be very high.

Note also that there is another project with a Thunderbird-related suggestion, and they have mentors available.

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.

Google Contacts Extension Google recently released a Contacts API for accessing contacts. This project would build an extension capable of accessing those contacts and treating them as an address book within Thunderbird/SeaMonkey.

This project may include Thunderbird/SeaMonkey core mailnews modifications as work may be required to the core to get the extension truly pluggable.

Standard8 Standard8


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Implement Full iTIP/iMIP support Lightning uses the iTIP/iMIP protocol to send and receive email invites. Currently, Lightning has the ability to send and receive event invitations. It can also send and reply to event updates. We are asking for help to implement deletion of appointments, rescheduling invitations, and delegating invitations to another person. We must also do this in a way that upholds the iTIP specification and still manages to interoperate with Outlook invitations from Outlook 2000, 2003, and 2007 (as well as Evolution, Apple iCal, and other calendar clients - these tend to be more standards based, though). Implementing this would improve Lightning's interoperability significantly. Simon Paquet Clint Talbert
Enhance Sunbird's/Lightning's accessibility Our accessibility is pretty basic right now (we've implemented keyboard shortcuts and accesskeys in most of the application) but to really make the application accessible, we still need to implement the nsIAccessible class for all our bindings, improve the overall keyboard navigation and make sure that our apps works well with screen readers. Simon Paquet Philipp Kewisch
Implement natural language parsing for event creation It would be totally cool and has been requested by our users for quite some time, if you could just drag and drop a text or an email to your calendar and our app would automatically parse the text/email for possible dates, times and locations and prefill the event details with this information. This should be designed with localization in mind, because our apps are released in 30+ languages. Simon Paquet Philipp Kewisch
Implement an Exchange WebDAV Provider A calendar provider for accessing Microsoft Exchange stores is a highly demanded feature from lots of users. The provider should be able to read and write calendar items (incl. recurrency support). The provider should be built on top of the existing WebDAV protocol support to be able to complete the project within the allotted timeframe. Daniel Boelzle Daniel Boelzle W.r.t. the time scope of GSOC, the provider should not aim to implement a MAPI-based interface (because of the cross-platform issues).


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Unit Testing Add a unit testing framework to the Camino build system, and create unit test suites for significant portions of the Camino-specific code below the UI level (which would likely include refactoring some code for testabiliy). This would include generation of code coverage information to measure progress. Stuart Morgan Stuart Morgan
User scripts (partial Greasemonkey support) Add Greasemonkey-like support for site-specific, user-created JS modification to be run automatically to Camino, with as much compatibility with existing Greasemonkey scripts as is feasible. Stuart Morgan Stuart Morgan or Mike Pinkerton


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Anti-Discrimination Extension Create an extension for SeaMonkey (possibly working in Firefox as well) that utilizes a local list (storage format TBD) to warn users about websites that discriminates against certain browsers by shutting them out, possibly even doing dynamic user agent spoofing to make the websites work in SeaMonkey despite that.

This is a first part of the dynamic UA spoofing mechanism proposed earlier, the project does not aim for this full mechanism, only for the basic client-side functionality.

Robert Kaiser possibly Robert Kaiser
Using the Places Backend Make SeaMonkey's browsing history (and possibly bookmarks) build on the Mozilla platform's "places" backend. The target is to leave the user interface very similar to current SeaMonkey while building on a more modern, SQLite-based backend that allow extensions to add an interface for bookmark tagging and similar features of this new backend. This mostly involves porting front end code from Firefox and tweaking it so that it resembles the well-known SeaMonkey user interface, and can be done in separate steps for history and bookmarks. Robert Kaiser
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.


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Integrate Bugzilla with a Wiki Many bug tracking systems have the capability to integrate with a wiki. Bugzilla doesn't. There are plenty of ways anyone could integrate these two types of systems. Bugzilla supports plug-ins as well. Some possible integrations are:
  • Linking from the wiki directly to Bugzilla via a simple tag.
  • Displaying a query on a wiki page, ie blockers for 3.2.
  • Linking to a wiki page from bugzilla and showing designs for more in depth enhancements, perhaps in an iframe?
  • Integrating project, component and other pages into the wiki might be neat. Maybe making a new component/project automatically makes a space in the wiki that shows some basic info about the state of bugs and also has places for the user to enter other info? Users in bugzilla have wiki pages that let them put more info about themselves like their IM or other stuff? This would be a super tight integration so that might want to be avoided due to annoyances in maintenance.
  • Examples from confluence/jira (neither are foss): 1, 2, 3
  • I've got to look at other wiki/bug tracking integrations for more ideas.

The list is as long as your imagination. Also including Testopia into the mix might make it interesting as well. The solution could be a generalize way of hooking bugzilla into any wiki, or a specific wiki into bugzilla.

Atsushi Shimono & Guy Pyrzak Max Kanat Alexander & Guy Pyrzak
A Firefox Extension for Bugzilla Firefox has many useful extensions that integrate bug trackers into it. There are extensions that integrate task systems into email such as Remember The Milk(RTM). We're interested in a useful way of integrating Bugzilla with Firefox, extra props for integrating it into an email client! Yeah, this one is a bit fuzzy. See Bugxula for more ideas. Since Bugxula has not been worked on in a long time it could pick up from where it left off. It could focus more on finding and reporting bugs since it is probably the 2 main things users do without a full interface. It could also be a whole new think like the RTM extension which appears oh so cutely inside of gmail. Maybe it is an extension that works in both thunderbird and firefox! I'd kinda like to get feedback on places they would like to see this one. Guy Pyrzak Max Kanat Alexander & Guy Pyrzak
Support general autolinkification for integration with Software Configuration Management systems One of the most frequently requested features in Scmbug is adding autolinkification support for Bugzilla. When a developer browses changeset comments in a Bugzilla, they would like to click on a commited file and be directed to a ViewCVS/ViewSVN application that annotates the changes. However, implementing this requires changes to Bugzilla (and bug-trackers in general, e.g. Mantis suffers from the same issue, but other bug-trackers, like JIRA don't) to enable them to transform changeset comment descriptions according to a predefined convention. Merely instructing Scmbug to produce such "autolinkified" comments is not enough, because for security reasons (cross-site scripting attacks) Bugzilla will not blindly linkify anything in a comment. Thus, special support is needed in Bugzilla to allow users to define possible log comment autolinkifications using regular expressions. Kristis Makris another mentor that ... *understands* Bugzilla is needed & Kristis Makris


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

Firefox Support (Sumo)

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Online in-wiki screenshot annotator and editor Sumo runs on TikiWiki. This will be a tool that will allow direct editing of images in the TikiWiki image gallery from which screenshots are embedded into support articles (i.e. wiki pages). This editing tool will primarily be used for annotation (in a way which is visually pleasing, preferably with tranparency), but other basic image processing functions such as resizing and cropping should also be supported. Nelson (nkoth) Possible approaches - Integrating fotonotes or wikigraphe or DOM Image Annotation or something else -- Nelson
Add customized online screencast annotation using Kaltura Kaltura is an open source project that allows collaborative editing of videos wiki-style. This can be used in sumo. However, the annotation/overlay capabilities do not currently include an easy way to add a support-style annotation. This project will create a kplayer extension for a custom overlay designed specially for support-style screencasts. Nelson (nkoth) Nelson (nkoth)
Switch to more powerful search engine SUMO currently uses Google as its search engine, which limits the possibility to integrate SUMO/tikiwiki specific features like categories and tags. Switching to and improving the built-in tiki search engine would allow us to better integrate forum and knowledge base searches, rank pages on more things than just page hits, etc. Improving performance would also be crucial for the success of this search engine switch. David Tenser (djst) Nelson? (nkoth) See Search Requirements


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Rhino Wish List See norrisboyd [at] gmail[dot]com norrisboyd [at] gmail[dot]com Note: Rhino is the Mozilla project's implementation of JavaScript, written in Java.