From MozillaWiki
Jump to: navigation, search

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

Ground Rules

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

(More thoughts on making a good list)

Suggestion List

Last year's ideas: Confirmed, Brainstorming

Mozilla Platform

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
9P/Styx Add generic support for 9P/Styx filesystem, so other components can access 9P servers (eg. as storage backend or just IPC) and provide 9P-based interfaces to other applications. This will also obsolete the (currently unused and unmaintained?) IPC component. Should use libmixp, libmixpsrv and libmvfs, which are near to stable release. metux metux: what benefits does this bring to users? Three libraries sounds like a significant increase in codesize. Are you suggesting a core feature or an extension? -- Gerv. ... @Gerv: these libs are quite small (I'll even trimm them further down)

The Web9 project already provides generic access to 9P in Firefox. --Anant

Profile data via Styx Let the access to certain profile data (eg. bookmarks, cookies, secrets-db) via synthethic filesystems metux
Schedulable Downloads Users should be able to schedule a download at a particular time, say at night when probably the usage is less and the internet connection is essentially idle. This will also avoid a major part of bandwidth being consumed by downloads when browsing. Along with resumable downloads support, this feature will make a the Download Manager a really useful tool. Brahmana mconnor says we aren't interested in this as a core Firefox feature. -- Gerv
Implement speculative preloading see this WebKit blog post :) dao dao: you are going to need to find a Networking code mentor who thinks this would make a good SoC project. It looks to me like it would be too complicated. -- Gerv
ASR API Create an API for Automatic Speech Recognition in Mozilla Platform as an extension and enabling user to execute different platform related features by speech commands. It can be specific Firefox/Thunderbird related commands or common platform jobs. Initially it may look for specific command words in the speech and later on may also be able to execute complex commands based on semantics and grammar.

It will be highly useful when researching and developing multimodal User-Interfaces & will heavily enhance fast interaction with the applications. Good tests will be developed while implementing this API to create a bug free product. This can work in synergy with the TTS API project.

rahul_delight Olli Pettay 'smaug'
TTS API Develop an extension to Mozilla Platform by creating a Text-to-Speech API. This API will be responsible to read aloud the data written on the screen intelligently and interactively by recognising certain page elemnts like Meta tags, DOM elements, XML and multimedia information. It can be developed for different languages and can be made fully configurable by the user. Using the ASR API project (as above), it can be effectively used for User-Platform interaction.Sufficient tests for the API will be carried out to ensure that the features work in tandem providing accurate results. pscoe2 Olli Pettay 'smaug'


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Secure My Stuff This will be a Firefox extension through which a user can encrypt and secure his stuff. The files that can be encrypted can be mp3, flash , video , docs or even a zip file around size 500-600 mb. There will Be several Encryption Techniques according to the kind of File to be encrypted a user will have choice out of them and can also add a key given by his own in encryption and same same will be required when decryption will take place. * The Reasons Firefox should have this one :- 1* all users use to upload their stuff in various file sharing/ uploading sites for easy share , many a times we wish only particular persons should get that stuff from other side any time just by using this extension and user key that he gave to the receiver. 2* More over we can upload our stuff and secure/encrypt it easily through firefox without any need of any external software. 3* no one can make any changes or misuse our stuff without our permission 4* any kind of file can be secured/encrypted. 5* Users can upload as many stuff he wish because its secure now 6* Best One There will different encryption techniques to choose from according to the stuff and size , which will take minimum time and no data loss at all. Kapil Manchanda Why does this have anything to do with Firefox? -- Gerv

@Gerv * I have mentioned the reasons please read them i am a student of and realy wish to work on this project. How should i send you more details on this please mention.

Kapil: you can propose anything you like; it doesn't have to be an official idea. -- Gerv

Web page highlighter A Firefox extension that allows the users to highlight text on any web page they visit. So the next time user visits the page, markings on page will be helpful to him in many ways. The extension would store page info of the marked page in an efficient manner. On page request, extension would determine if the page on website and page which was highlighted are same or not. If yes it shows the page with user markings else notifies the user and prompts for his choice. Manjeet Chayel At least one extension already exists with this sort of function. You would need to explain why your idea is different, and why it would take eight weeks to implement. -- Gerv
Extension: Remote Cookie Storage A Firefox extension that stores/retrieves cookies on a server instead of locally, allowing cross-machine cookie sharing. Includes a UI to choose which cookies to share. This is similar to Google Browser Sync, but is open-source (including server-side code so users can run their own servers if they like). Eric H. Jung Eric H. Jung How does this relate to Weave? -- Gerv.

Seems to fit nicely with weave. Weave allows for plugins; let's make this a weave plugin. Note that weave currently only supports history and bookmarks, not cookies.
Extension : Avahi Support Avahi is an application to discover services available on local network ( known as Zeroconf) and is currently being used by many distributions and softwares to implement the same technology. An extension and UI would be developed, so that user can access and administrate services found by Avahi daemon.

Services: Avahi can detect all the hardwares capable with IPv4LL addressing and can access all the services like FTP servers, shared files available on remote machine running Avahi. Benefits to Firefox users: They can access printers , FTP servers, Web servers, SSH Remote terminal available on local network with Firefox. We can develop some kind of protocol as KDE people have for Konqueror to access Avahi services. Bug 173804

Sunil Ghai Sunil: why does Firefox need to do any of those things? We don't need to manage printers, for example - and we print to them via the OS, which does all the hard work. Konqueror is not a good comparison because it does far more things in the KDE desktop than Firefox will ever do. -- Gerv

@Gerv: This would make firefox capable to access Zeroconf networks. To implement Zeroconf, many distributions are using Avahi. Resources could be anything, not just a printer.

@Gerv: see bug 173804. It's very useful to discover webservers on your network, or to configure devices (if they use a webserver). Try it out in Safari. -- jhermans

@jhermans: Thanks about the bug information.
Display date/time depending on user's location Pages where a user can edit (eg.- wikis, orkut scrapbooks), usually show the time on which the edit took place according to the server. It would be nice if that date/time is displayed according to the country the user is sitting in. For example, if I edit a wiki page, or I scrap in my friends scrapbook, the date/time at which I did that, is currently displayed according to the server, not my machine. Siddhant Goel Sounds like an extension, and a fairly trivial one, to me. -- Gerv
Improve responsiveness of user interface Improve speed and responsiveness of user interface, especially switching between tabs and creating a new tab is quite slow even on fast computers. Very bad in combination with some extension that opens multiple new tabs at once. Opera for example is much faster in that, so I think there are some possibilities for optimization there. User:bilbo This is too vague. -- Gerv
Improve history GUI History GUI could be improved. History items now show only title of the page, which could be very bad for sites that have same title for all urls on site (you do not see URL's and you can't distinguish what is what. And there are many sites that neglect what gets in title). Example of quite well done history is in opera, where you see title, date and url for each item. Further improvements could go to allowing effective multiselect in items and operation on all selected URLs (open in new tabs, delete) on them (plus view "by site" could group items). Plus, searching in history could search also in contents of pages in history (perhaps only as long as they are cached, or build an index) - though this feature may be a bit hard. User:bilbo How does this relate to the Places work done in Firefox 3? Do your comments apply to Firefox 2 or the latest builds? Can you be more specific about the changes? Is there a bug number or a UI design? -- Gerv
KDE support Add KDE desktop environment support. Use Kdewallet for password storing. Use xdg-utils or KDE commands to open files, send emails. Use KDE dialogs. Maybe add some GUI tweaks. Šimon Tóth Šimon - if you want this to happen, you are going to have to find a mentor; I'm not sure anyone in the Mozilla community knows much about KDE. Perhaps it would be better as a KDE project? -- Gerv

A KDE project? You must be kidding. The source code of Firefox has to be modified to it at least follow standards. Why should this be a KDE project? If Firefox developers don't know standards, then maybe they should learn them. But why should KDE developers understand Firefox code? -- Šimon

Someone from one project is going to have to understand the code of the other. And it seems that the reason we don't have KDE support at the moment is that no-one in the Mozilla project cares about KDE enough. So, for a start, it might be hard to find a mentor. Which is why I suggested approaching it from the KDE side. -- Gerv
Improved FAYT Add support for advanced searches within FAYT like basic boolean search and the use of wildcards. i think this could prove useful as more information is available directly within the browser, like a wikipedia article, and not just as PDF files. User:D_leaper
Better way to delete History I think we should have a better way to delete the history. Thats the only thing which i don't like is that i have to open the History in sidebar then i have to go on all items and right click on them to delete. We can have a better way by providing an option in the History tab itself of deleting the History contents. User:puneetarora
Way to restrict sites access I think we should have a better way to restrict any website from being opened . We can have a better way by providing an option in the Tools tab -> Options -> Contents and then a label "Restricted Sites " with "Settings" button to add restricted sites list .Thus it will not allow to open those restricted sites anyway even after a reinstall of Browser. User:Harshal Bidkar
MoTo: Next Generation Tooltip See:MoTo mowsen
show your friend what you are doing May be this type of thing has been used in different ways and in a inappropriate way.

You are viewing a mail or opened some funny stuff. You want to show it to your friend, with out leak of your cookies or by letting your password out. The main aim of my plan is to send data from your browser to your friends browser by opening a new socket or through an existing one. The data that you are getting from some server will be sent to that guy from your server. Cookies/No inetrnal info is shared, So he can only view the data and doesn't mess up with it.

Uses: - You can show some pages and take his opinion - Take their help while booking some tickets - share some funny errors( even google page doesn't load properly, you can show how it looked). which he can't see when he opens that url.



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

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Maildir Support Bug 58308
Implement the possibility to store Thunderbird mails in Maildir format. Storing mails as individual files and using SQLite for the index file should increase data safety.
KAMiKAZOW The bug number you give is about Calendar. Also, what to do the new Thunderbird team think of this? Reading bugs, bienvenu seemed to think that pluggable storage was the way to go. -- Gerv

I suspect this is too big / complex to do as an SoC project. -- dmose
Asynchronous IMAP Make Thunderbird behave asynchronously when dealing with IMAP servers. Currently, every operation spawns a 'processing' UI response, which makes the interface clunky on high-latency connections. Apple Mail's behavior is something that we should try and emulate in this aspect. Anant
Better signing/encryption Support Reimplement the "Encrypt if possible"-option for S/MIME. And Better interaction / integration with/of Enigmail. Maybe add some abstraction layer. Morty
Improve search using hierarchy of keywords

Make it possible to organise/search contacts using a hierarchy of keywords. Adobe Lightroom does something like this for the organisation of photos. Selecting the root node would show all the contact entries. Selecting 'Collegues' shows only the collegues. Selecting 'team' (a subclass of Collegues shows only your close collegues. Contacts can be in multiple points in the hierarchy (as they can be tagged with multiple keywords). Tagging can be made possible by dragging a contact onto a keyword (or the other way around).

This project will make it possible to organise the contact entries in address book into a hierarchy. It can be considered to contribute to achieving the Increased Adoption Thunderbird 3 goal, particularly the 'faster content search' and 'improved address book usability' goals.


A possible extension to the project would be to allow "tagging" of emails and/or meetings (in Lightning). Tags can be recommended based on the superclasses of the person who sent the emails (or with whom the meeting is). It would then be possible to search for all emails from a particular set of collegues, regarding a specific project, or meetings with a certain group op people. Also, "virtual" mail folder containing all mails tagged with one of the tags could be useful too (bit similar to mail tagging as it is in gmail)

KDE Suport Add KDE desktop environment support. Use Kdewallet for password storing. Use xdg-utils or KDE commands to open files, open urls. Use KDE dialogs. Maybe add some GUI tweaks. Šimon Tóth Šimon - if you want this to happen, you are going to have to find a mentor; I'm not sure anyone in the Mozilla community knows much about KDE. Perhaps it would be better as a KDE project? -- Gerv
Integration with Windows Vista/Windows Desktop Search Allow Vista search/Windows Desktop Search to index Thunderbird mail and news conversations. A similar project was carried out last year, but from the status of the bug Bug 377249 it seems like it was never followed through. Sid0
Import email, settings and addressbook from other programs not currently supported Import email from other programs. Currently TB support old communicator, eudora and outlooks.

I suggest adding support for more programs could be useful and nice. Some suggestions:

Pegasus Mail (BUG 251980): mail uses three formats: one .cnm file per new email (but I think more mailers use this storage schema or are able to export mail in ti, therefore such filter could be more universal - define directory and file mask, then use these to import) and for email in folders it uses either some proprietary format or standard unix mailbox format. Addresses are stored in the .pml file, which is text file with small header (title of addressbook). Settings are stored in kind of an ini-file. Most config files have text format, which should be easy to figure out.

I personally would like support for Pegasus Mail, but as part of SOC 08 import from any other email programs could be done too. Advantage is that number of import filters that would be implemented can be changed so that the work would fit into 8 weeks :)

Other import wishes I found in the bugzilla:

Martin Petricek
Image Resizing during Attachment Bug 401991
OBJECTIVE: Implement physical image resizing during attachment of pictures in email. MOTIVATION: Thunderbird does not currently have the option to physically resize an image to a sensible size suitable for sending via Internet and for screen viewing. Therefore, the sender is baffled and confused when it takes several minutes to send a few pictures even on a broadband connection, and when their friends complain that they received and can only see the 'corner' of the pictures on their screen. Alternatives involving using GIMP,Photoshop,etc to locate,open,resize the image, save and then attach the scaled-down version to the email are too complex and annoying for most users, leading sometimes even to the destruction of the original high-resolution picture when the unexperienced user rewrites it with the scaled-down version. A quick google search for 'thunderbird resize image attachment' shows lots of users requesting this feature. INITIAL ASSESSMENT: I already did some analysis of the thunderbird code (js and c) and it seems that the best course of action to solve this problem is by adding a hook in the function 'AttachFile' at MsgComposeCommands.js to intercept the url of the file being attached and replace it by the url of the version resized on-the-fly. I'm currently thinking about using functionalities from convert/ImageMagick to be able to resize the broadest possible range of image types, but of course I can reuse existing functions in thunderbird chrome for dealing with jpg,png,etc if only these formats end up being enough. I believe this project is very useful to thunderbird, not too complicated for one person to execute and has a high probability of success.
Support for Google Contacts API [1] - Try to implement native support to synchronize Google Contacts with Thunderbird's contact list.
Feed item grouping Example: - Analyze RSS feed items from all feeds and group them by topic (also use provided tags by the pages and parse the content). Also nice as an Firefox extension. Archaeopteryx


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
creating task mode into sunbird add task mode into sunbird and adjust feature between lightning and sunbird to resolve [bug 405508] Djo0012


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
WebService client Create a command line and/or GUI client for Bugzilla's WebService API. This would give users scripting abilities and allow them to access a project's bugzilla outside of a web browser. Freshmeat, the Bugzilla wiki, and a quick search indicate that only proprietary clients currently exist (and these may not use the WebService API anyway). andrewy mkanat says that the current WebService isn't really complete enough for this. So, at minimum, any proposal would need to also include enhancements to the WebService itself. -- Gerv


Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Locale strings verifier Guidelines - Nearly every extension today provides locales which ship as different languages with the extension. At the moment, where is no tool which can automatically validate the existing locales if all files and string exists. If not every string exists or the files are wrong encoded, the application will only start up with an error message and the user has to uninstall the extension in safe mode. Wanted features: Setting default locale, export of valid ones, warnings if strings equal etc. Archaeopteryx This would be a standalone tool run by the developer, and not a part of Firefox/Thunderbird, right? -- Gerv

Standalone is recommended, but an extension is also possible (which "scans" the other extension) if the browser locale is valid in the extension. -- Archaeopteryx There is compare-packs as part of the MDC:Compare-locales package -- Axel

Auto URL fixer Most of non-latin character language users mistake mispell url code because of not to change toggle key for language. For example, when one types, www is misspelled by ㅈㅈㅈ (Korean), ててて(japanese) etc. There are many similar user-cases. If we can fix them automatically, it's good for users. Channy Risk) It would be made by extensions.

This really seems to be a Firefox extension project, not an l10n one. -- Axel
And I suspect it's not eight weeks work either -- Gerv.

Augmenting search in Wikipedia Wikipedia currently ships as a default across all l10n locales and where there are very few articles (like 1000 or less) the search engine doesn't allow a user to switch to english results in addition to the language they search. See comment 36 in this bug bug 380785. This project would enable the search engine to work in this way, Brion Vibber's thoughts (from Wikipedia) are that might be best done by doing multiple queries and combining results Mic Brion Vibber

Add-on Management

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Add-on viewer Create a system that allow people to view source, compare, and share Mozilla add-on code. This could take the form of tools for importing all add-ons into CVS then providing a LXR type front end. Would be used for code browsing and add-on testing. Alex Polvi (polvi) Alex Polvi (polvi)
Add-on Debugger/profiler Many a times badly written add-ons make Firefox use too much resources (CPU/memory). If some sort of debugger/profiler can we created which shows something like add-on XYZ is eating 12% CPU and 23MB memory, it would be cool. I am not sure how easy this task is.
Add-on Sandbox Many a times add-ons make firefox crash. And there is no way which addon it was (or was it the Firefox core, which is less likely). For example, my firefox has 20 addons installed, and my firefox crashes frequently (once every few hours), and I have no idea what is the reason. If firefox could place addons in a sandbox and monitor them, it can provide some feedback (which can then be sent to addon developers).