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 2007 projects with confirmed mentors, and which have been approved by the SoC administrator. Please do not edit this page; new suggestions can be made on the Brainstorming page.

Potential students: you may choose from the list below, from the Brainstorming page, or submit your own proposal. Be wary when choosing from the Brainstorming page; there is often a good reason why the ideas haven't made it to this page.

If the idea has no mentor (or the person who has volunteered is unsuitable) then we would need to find a mentor; you will increase your chances of success if you find one for yourself and submit their name with your application. A mentor should generally be a respected Mozilla project contributor with expertise in the relevant field; projects involving integration with other code could be mentored by someone with expertise in the other codebase. However, lack of a mentor should not be a deterrent - please, still apply even if you don't have one.

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).


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Implement link fingerprints Link fingerprints are a method of making an HTTP or HTTPS URL reference not only a particular resource, but a particular version of that resource, in a way that the fetching client can validate. This would make it harder (not impossible) for crackers to change downloadable software packages without any user (and the site owner) noticing it. Further details can be found in the proposal by Gervase Markham, Gerv's blog post about the recent Wordpress tarball attack and bug 292481 Jens.b Gerv This is similar to Heikki's proposal above and could be done as part of that larger activity, but I think it deserves separate mention as its scope is specified more precisely, and it might be faster to implement. - Jens

There is already an extension which does some of this; a proper patch for the trunk would be required, and then the writing up of the idea as an RFC - Gerv
Firefox automation & Tinderbox integration Firefox 3 automated smoke-testing using Linux Desktop Testing Project; Tinderbox integration of LDTP results. Nagappan Nagappan and Emily Chen Once the system is integrated with Tinderbox, then we can extend it to use for Thunderbird automation testing too.
SMIL Animation Work on extending and polishing the existing patch by Brian Birtles which adds a SMIL animation to mozilla and hosts it in SVG. tor
SVG Fonts Add the ability to define a font with SVG to mozilla's SVG implementation. Doing the "basic" style fonts that handle the "d" attribute, as used by SVG Tiny, should be fairly straightforward once cairo adds a user font API. tor
rich content microsummaries bug 341347
Tufte and Graphical Live Titles
Graphical Microsummaries
MykMelez MykMelez As Tufte notes, it can be very useful to pack a lot of information in a small space. Microsummaries are targeted at that kind of information presentation. But microsummaries can only display characters at the moment, which severely limits how much information they can display and how well they can display it.

In fact, the most dramatically informative microsummaries (like a graph of the day's activity for a stock, or a graphical depiction of the next five day's weather) are currently impossible to implement. But if sites could provide rich content (i.e. HTML or image) microsummaries, then these would be possible.

microsummary builder Microsummary Generator Builder extension MykMelez MykMelez For sites that don't provide microsummaries, it's useful to be able to extract your own. But building one from scratch requires knowledge of XSLT, XPath, and other technologies that even computer-savvy users and software engineers may lack. And even for folks who do have that knowledge, it's much harder than it should be to extract a microsummary from a web page.

Tools could significant improve this situation, and one such tool is already available, but there's still a lot more that can be done in two directions: for regular users, we could have a tool that made extracting a microsummary super-simple. In fact, it could start as simple as clicking an element on a web page and dragging it to the bookmarks toolbar. We could then build on that basic functionality with additional simple mechanisms for massaging the information to be summarized.

For developers, we could have a tool that couples those simple mechanisms for average users with more sophisticated functions for inspecting and manipulating the microsummary generator. For example, we might provide an editable "source" view of the generator. And we might enable more complicated UI gestures for things like anchoring an XPath that retrieves some informatino to a non-root node (f.e. to the node that labels that information, whose relationship to the information is less likely to change over time than the relationship of that information node to the root node).

microsummary generator web service User Styles' Live Titles repository MykMelez MykMelez has set up a repository for microsummary generators, which is a great first step in distributing the generators, but it would be much more useful if users didn't have to browse the repository and install a generator to use it on a site.

Imagine an extension (or an enhancement to an extension like Microsummary Buddy or Microsummary Manager) that automatically notifies users when a generator is available for a page they're browsing and shows them the microsummary it generates. Then, if users decide they want to use the microrsummary, the extension installs the generator automatically and creates the microsummary-enabled bookmark for the user. And all the user has to do is something simple like clicking on the "microsummary available" notification icon or dragging it to the bookmarks toolbar.

JPEG 2000 Add JPEG 2000 support to Mozilla schapel pavlov (maybe) This would be done as an extension, perhaps as described in this Bugzilla comment
SVG as an image format One of the possibilities that having a native SVG implementation in the browser provides is being able to use SVG in contexts where normally a raster image would be used, such as <html:img> and CSS properties that accept images.

Someone interested in taking this on as a SoC project would need to be pretty familiar with the Mozilla codebase, as this involves getting bits of code that weren't originally planned to work with one another to play nicely together.



Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Add tabbed messages support for Thunderbird Tabbed message reading is a highly demanded feature for Thunderbird and was on the planned feature list for version 2, but missed the bus and currently there is nobody working on it. Having to change the selected folder and/or message or opening a new window decreases productivity (increases waste of time). The new message pane should also be available for the tabbed view. See Bug 297379 and Bug 218999 Archaeopteryx mscott There had been experimental builds by Myk in the past, so there are already some concepts.
Thunderbird: Vista Desktop Search Integration Implement Vista Desktop Search for Thunderbird mail messages as described in bug 369283 Bienvenu Bienvenu There is a lot of code in the Spotlight integration code that could be re-used for the Vista search integration.
Thunderbird and Firefox Integration Points Make using Thunderbird and Firefox together a better user experience. mscott mscott Add some integration hooks between Firefox and Thunderbird such as: adding a url to Thunderbird could autocomplete against Firefox bookmark and history urls. Filling out an address form in Firefox could extract the address data from your Thunderbird address book. I'm sure there are other ideas that could be explored here too.
RSS Feed Improvements mscott mscott Start with the work Ian did in Bug #255834. Convert Thunderbird's feed parsing implementation to use the feed parser in mozilla\toolkit. Consider moving the feed files to mailnews\extensions\newsblog so it can be shared with seamonkey. Once that's done, let's design some new user interface hooks for subscribing and managing RSS feeds because the current UI is very poor.
Improve Thunderbird mail filters Thunderbird's (and SeaMonkey's) mail filter system lacks features present in other clients. Implementing some of them (and new, unique features) would make it much more useful to advanced users, and could increase the user base.
  • Allow to define filters for outgoing messages (e.g. file messages to folders based on found keywords), bug 11039
  • Allow filtering on whether sender is in certain addressbook groups, bug 180013
  • Add ability to filter by attachment presence or file names (e.g. file extension), bug 224392, bug 105169
  • Allow extensions to tie in to filters (filter actions implemented in JS / XPCOM), bug 366094
The exact set of bugs fixed as part of SoC activity would be determined by the mentor and the participant. More ideas can be found in meta bug 66425
Jens.b bienvenu
Extend Bayesian feature set Upgrade Bayesian classes to support multi-state Bayesian, and support auto-filtering. gandalf


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Camino: Tabspose Expose for tabs, but in the browser window (bug 312007) pinkerton pinkerton I've wanted to do this for years...
Camino AppleScript Support Camino currently has very little AppleScript support. One of the most useful commands for a browser, "do javascript", remains unimplemented. Several other bugs separate Camino from parity with Safari's and OmniWeb's scripting support. Filed bugs include bug 178917, bug 160106, bug 314061, bug 253486, and bug 156078. Those bugs cover a lot of ground, including the ability to refer to tabs. Peter Jaros (Peeja, Bard College) Mike Pinkerton


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Make SeaMonkey Not Suck As A News Reader Basically, get some traction on some of the highlights of bug 176238/bug 12699 , in particular: "clickable references" (bug 62033) and headers in general (bug 23114), a more usable subscribe dialog (bug 40260), reordering of the folder pane (bug 150274, maybe even hierarchical?). For bonus points, a correct implementation of the nntp/news protocols (bug 89939) would be really cool! Mnyromyr Mnyromyr UI stuff would be for SeaMonkey, but should be portable to Thunderbird easily. Both would profit from backend fixes.
Real Mail Templates Currently, mail templates are too static, their interaction with mails you respond to etc. is almost zero (bug 21210, bug 107876 and others). It would be an enourmous progress if we could have variables like $$EMailAddress$$, $$QuotedBody$$, $$Date$$, $$CustomVariable(with Parameter)$$ in a template which get filled in when replying or composing. Mnyromyr Mnyromyr UI stuff would be for SeaMonkey, but should be portable to Thunderbird easily. Both would profit from backend fixes.
Score Filter A score filter (bug 151622) would associate an integer with every message. This integer could then be changed by filter actions like "Increase by x", "Set to Y", etc. and have itself filter criteria like "If score is lower than A", "If score has value B", etc. Several other message properties alterable by filter actions (like isJunk or isThread) would need to be made usable as filter criteria for that for full points. In toto, this would allow for very fine-grained message control. Mnyromyr Mnyromyr UI stuff would be for SeaMonkey, but should be portable to Thunderbird easily. Both would profit from backend fixes.


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Bugzilla: Plugin System bug 371333: Bugzilla has many methods for being extended, but they are not always clearly documented or coordinated. There is also no central repository for downloading plugins, or a standard way to install them. This task would be to make it easy for developers to write plugins, make it easy for administrators to install them, and write a useful sample plugin that demonstrates all of this. mkanat mkanat
Bugzilla: Overhaul Charting System Bugzilla currently has two charting systems, the Old Charts and the New Charts. Old Charts are very simple, and work. New Charts are very complex, and the code has been abandoned for several years. However, charting is a feature that many users want in a bug-tracking system.

This task would be to implement a charting system that is simple to use, respects Bugzilla's built-in security, and provides the flexibility that administrators want. In particular, the ability to go "back in time" and chart data about the past would be very welcome. (Our current system only starts charting data as soon as you set up a chart, so you can't find out anything about last month, or even yesterday.)

mkanat Gerv There may be some questions about importing data from the old systems. I think that New Charts are not in much use, since they aren't complete. The system would have to be able to import Old Charts, but the New Charts system could be entirely replaced by the system built in this project. (However, any left-over New Charts would have to be exported as CSV so that users wouldn't lose their data.)
Bugzilla: Duplicate Bug Detection Implement a system in Bugzilla that detects automatically that the user has likely entered a bug that is a duplicate of another bug, and display a list of bugs that this bug might be a duplicate of. mkanat vladd Malone can do this now, although I'm not certain its code is actually open source. (Anyhow, GPL'ed code can't be included in Bugzilla, which uses the MPL.)


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Easing the way for localizers
  • fixing .label/.accesskey combination in the whole codebase, so that automatic tools have a chance to catch them all.
  • Step by step documentations for new localizers.
  • A script to align Mozilla Translator files to en-US files.
Abdulkadir Topal pike
Merge the two existing French spelling dictionaries There are currently two French spelling dictionaries for MySpell. The first was made available from a former ISpell dictionary, and it was later "enhanced" by another group wanting to support new spellings only (1990 reform), although those are not mandatory. As a result, we have two dictionaries, but none of practical use (the first is outdated, the other is underlining perfectly valid words).

A possible implementation of this project would be to take the new dictionary, re-add the hundreds of words that were removed from the old one, and enhance it in other ways (for example, HunSpell allows you to remove some words from the spelling suggestions without underlining them). It might looks like a trivial task, but it is not the case. There were structural changes in the affix dictionary file which can't be resolved by a simple diff.

Benoit / The FrenchMozilla team
Create a new French dictionary (HunSpell) from scratch No matter how good the French spelling dictionary may become, it can't be shipped with Firefox or Thunderbird because of licensing issues (It's GPL only, Mozilla products are tri-licensed)explanation in French.

This proposal is to build a new French dictionary from scratch, taking advantage of the new features in HunSpell

Someone interested in taking this on as a SoC project would probably need to have a strong background in linguistics or a similar field.

Benoit / The FrenchMozilla team
L10n GUI Tool Create XulRunner based L10n:Tool gandalf gandalf