From MozillaWiki
Jump to: navigation, search

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

This page is for submitting ideas for Summer of Code projects for 2009. Therefore, it will inevitably contain suggestions of wildly variable quality.

Student: ideas approved by the SoC admins are here. You can also submit ideas from this page, but they are rather less likely to be accepted.

How To Make Good Suggestions

  • Be specific. It's hard to understand the impact of, or the size of, vague proposals.
  • Consider size. The student has eight weeks to design, code, test and document the proposal. It needs to fill, but not overfill, that time.
  • Do your research. Support the idea with well-researched links.
  • Don't morph other people's ideas. If you have a related idea, place it next to the existing one, or add a comment.
  • Insert only your own name into the Mentor column, and then only if you are willing to take on the responsibility. Potential mentors sign up here.
  • Check back regularly. The administrators may have questions about your idea that you will need to answer.

(More thoughts on making a good list)

Suggestion List

Last year's ideas: Confirmed, Brainstorming

Mozilla IT Infrastructure

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

Mozilla Platform

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Metalink support Native support for the Metalink Download Description (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!

It would also be great to have Mozilla people involved with Metalink as well.

Ant Bryan Comments in the bug suggest that this would not be particularly well received by the network team. Sorry... -- Gerv
Support system spellcheck services on Mac and/or Linux/GTK Currently Firefox and other Mozilla products bundle the Hunspell spell-checking engine. It would be great if we could (perhaps optionally at build time and/or run-time) use the system dictionary. For example, that would let people use an existing "user dictionary" of words they've added in other applications. On Mac, there's NSSpellChecker and GTK applications seem to use Enchant. The simplest approach would probably be to add a build-time option to use Enchant or NSSpellChecker instead of Hunspell, with code #ifdefs to call those other APIs instead of Hunspell. Robert O'Callahan The Mac code already exists, and all Moz apps used to use it on the trunk prior to 2008. However, there was much rancor, and osxspell was turned off for all applications other than Camino. Before someone invests time in this again, it's probably a good idea to get everyone on the same page as to whether it's really wanted or not (and/or if the complaints can be addressed). See bug 422760, bug 419959, and bug 343535 (particularly comments 5 and 10) for the backstory and known issues. —sardisson

Oh dear. Thanks for the heads-up! roc

Windows 7 Jump List Jump List will be one of the major interface changes in Windows 7, which provides shortcuts for software features right in Windows Taskbar. If there is an XPCOM component for Windows 7 Jump List, user experience in Windows 7 will be improved a lot. (bug 473045) Littlebtc To me, the major problem is that implementation/example of Jump List COM API does not work for me in Windows 7 Public Beta Build 7000. Is there any workaround? --Littlebtc 21:57, 22 March 2009 (UTC)
Xv video acceleration OLPC and other low-end Linux clients don't have real graphics acceleration but they do have Xv "overlay" acceleration of YUV conversion and some scaling. We could fairly easily detect when a video is being played with no content layered on top of it, and take a special Xv rendering path. This would be great for video performance on OLPC. Roc Roc, Chris Double


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Printable CSS repository The other day I mentioned how cool printable stylesheets were. I figured I'd write up an idea for a Firefox addon (or perhaps a future feature). It would make a pretty cool summer of code project (or two depending on if you split it up). The idea is not all that different from Userstyles or GreaseMonkey though intends to be easier to use.

On the client side when attempting to print a page the addon would inject a printable stylesheet to make the printable output waste less paper, be more readable and just ascetically superior to raw printing. Since each site is unique if it didn't have a stylesheet for the site already it would query a central repository for stylesheets that match that url. If one or more is found it would be offered to the user as a stylesheet that could be installed and then printed with. Installing leaves a copy on the clients computer so that it could be used even in offline mode and if the repository were unavailable.

On the server side of things there would obviously need to be a repository of stylesheets and a way to review and rate them. For privacy purposes I think there should be no remote loading content in the stylesheet that doesn't originate on the server which the stylesheet is for (for example a sites logo would be ok if served from the site's server). Ratings and reviews would let the better ones gravitate to the top and the poorer ones fall to the bottom.

This approach is better than the more popular "select what you want to print" since it allows for not just printing a block of text, but printing web pages in a more meaningful and readable way.

Back- and Frontend for storing web pages Personal web

bug 287066 bug 342916 bug 342917 Today the internet is an essential part of work and life, people have personal browsing habits and some things what they see and read they want to remember later or give to someone else. These pages define very good what the user wants, so they should be used for customization. Furthermore, addresses aren't available for infinity. Goals

  • Integration into bookmarks
  • Weave integration
  • Backend support for fulltext address bar search
  • Backend for extensions which detected updated webpages by source code comparing
  • Making documents and files offline available, but be still able to update them via Firefox
  • Save multiple captures of a web page
Archaeopteryx Someone from the Places team?
Support ed2k:// hyperlinks (ed2k/Kad network) Create an extension that facilitates getting content from the (already existing) distributed serverless Kad network and thus allows HTML/CSS constructs like the following:
  • <img src="ed2k://...">
  • <object src="ed2k://...">
  • <video src="ed2k://...">
  • <audio src="ed2k://...">
  • @font-face { ... src: url(ed2k://...); ... }
  • background-image: url(ed2k://...);

The idea is that content does not need centralized Web hosting if it has enough readers willing to participate in file exchange.

The student is not expected to create a brand new Kad servent software from the scratch. The extension should (instead) be able to install (if not installed previously) and then use an existing ed2k/Kad software on the user's machine (free software such as eMule or MLDonkey, probably both should be known); the extension should just be able to determine (using ed2k and AICH hashes and file size given in the URL) whether the designated object exists in servent's cache; thus the extension's algorithm for serving content to Firefox is like the following:

  • If the ed2k://... URL designates an object that exists in servent's cache, grab it.
  • If the ed2k://... URL designates an object that does not exist in servent's cache, launch the servent (if not already running) and feed the URL into the servent.
    • If the object is not popular enough to be downloaded within a reasonable amount of time (e.g. half a minute), the extension signals to Firefox that request failed (similar to 504 Gateway Timeout of HTTP), but servent continues getting the object and thus the subsequent requests for the same object (e.g. when the page is reloaded) are more likely to be successful.

Note: if the «ed2k://» URL has «s=http://...» optional part (see «The ed2k link format» section in the Internet Archive page of Overnet), the extension should try the given Web URL first, and only if it fails (or if the given response does not match URL's filesize/ed2k hash/AICH hash) use the local servent.

Mithgol the Webmaster Previous efforts to add Bittorrent support to Firefox have fizzled. A compelling case would need to be made for a) adding P2P support at all, and b) choosing ed2k rather than bittorrent, particularly as bittorrent has libraries which could be integrated directly rather than the fairly hacky external program solution proposed here. -- Gerv
OpenSearch: Support resultURLs and descriptions from search suggestions resultURLs

descriptions resultURLs are very helpful for catalog searches (i. e. Wikipedia, shops, libraries, ...), descriptions for uncommon or very specific suggestions

Archaeopteryx Gavin? (see bug) This doesn't look to me like it's big enough, or that Gavin is interested in mentoring it... :-( -- Gerv
Provide Firefox MSI package bug 231062

MSI packages of Firefox are a long desired feature and would help enterprise users. Maybe Thunderbird could also benefit from this work. More info from Microsoft

Schedulable Downloads Users should be able to schedule a download to begin at a point of time in future. This will be helpful to queue up downloads for times when the user is not browsing actively or when the bandwidth availability is higher or when the download limitations by the ISP does not apply (in case of a connection which limits the amount of data downloaded during the day and has no limits at night). Initially it may not cover downloads which require authentication. It can be a future enhancement. The final outcome will be something like this:

1) User finds a download link.

2) Right Click -> Schedule this download

or -------- alternately

2) Tools->Downloads->Schedule a download -- In this case user populates the link field where as in the earlier case it is done automatically.

3) A dialog pops up asking the user when to schedule the download

4) User chooses time and saves the download to the queue.

Further control over these queued downloads will be provided with the DM window.

(The various control flow scenarios or use cases can be discussed in detail in a bug if this is accepted.)

Brahmana sdwilsh / Edward Lee / Biesi ?


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Implement more of pop3, imap and smtp fakeserver Would be nice if MailNews:Fakeserver would implement more of the protocols. Would also be nice to be able to have a UI on top of Fakeserver to be able to add emails in mailboxes. Ludovic Hirlimann
Troubleshooter utility A utility to help people troubleshoot their systems, a bit like an integrated "Gmail POP Troubleshooter". The utility should check connectivity, that the ports/addresses are working, offer to try alternative settings etc. Magnus Melin
Ubiquity Integration A set of work was started on making the Labs/Ubiquity extension work with Thunderbird. Finish this work and get the Ubiquity extension working with Thunderbird and Firefox in one package. Mark Banner / Dan Mosedale Jono DiCarlo


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Sync Lightning code to Sunbird (1.0-post Sunbird support) Calendar blog post

Lightning's Calendar and Task mode should be ported to Sunbird, also the Today sidebar, either by modifying existing code or setting up a repacking script which integrates Lightning into Thunderbird, hides the mail UI and brands the build as Sunbird (including Sunbird UI)

Archaeopteryx Fallen?
Enhanced task management Nested tasks

All day tasks Current task support is very basic. All day tasks (which don't calendar pane stuff like today's tasks) and nested task supported would advance the user experience

Archaeopteryx Mailed Fred, no response yet


N.B. Camino brainstorming is taking place on the Camino wiki. Mike Pinkerton or Stuart Morgan will add vetted project ideas with mentors.

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


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


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Refactor Bugzilla::Bugmail into real objects bug 301447

Enhancing the the module for sending bugmails would allow further enhancements like HTML-based stuff

Archaeopteryx mkanat suggests both of these ideas are the wrong size for GSoC, and unfortunately the Bugzilla project doesn't have any mentors anyway :-( -- Gerv
tag-based email preferences bug 482207

If a user adds a tag to a bug, he should be able to specify email preferences for this tag. This would be helpful because votes, ccs and watches can happen for different reasons, even of the same event class, i. e. bug triage, getting notified when bug gets resolved or reopened, discussion in the component your are a peer of etc. I. e. I would like to get rid of some bugs which change the status from unconfirmed to new (and already know that when I get cc-ed). Existing bug dependencies should also be changed to tags which would i.e. allow to get of bugmails for bugs you filed.



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


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


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

Mozilla Labs

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