From MozillaWiki
Jump to: navigation, search

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

Projects with a confirmed mentor and approved by the Mozilla project SoC administrator will be moved to Community:SummerOfCode07. Potential students should look at that page to find project ideas for which we'd like submissions.

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: General, Thunderbird

Please use this format for submitting ideas.

Title Abstract - links to details/bugs/etc Reporter Mentor(s) Comments
Mozilla Encryption and Signing Suite for Stored Communications and Packages This project aims to improve the encryption and signing features in SeaMonkey, i.e., the shared Mozilla codebase, with an integrated suite of functions that extend and complete several Mozilla code modules including NSS, PSM, XPInstall, and the Mail and News Backend. These features and improvements will make encryption technologies more feasible and practical, encouraging users to protect the confidentiality of their communications using easy, user-friendly techniques. Many of these features are aimed at improving S/MIME and certificate support and usability in the Mozilla codebase, from the NSS (C language) layer up through the UI layer.

The suite includes solving problems and adding features in:

  • the NSS libraries,
  • the PSM, and
  • the XPInstall UI and backend.
seantek The full proposal, including background, was submitted to the Google Summer of Code at 2007/03/18 07:42:04 PDT.
Internal streamed audio player for Firefox This tool will play streamed audio files in firefox itself.( For example .ra files). Currently there must be external player (like real player) to play them. maxaeran When user clicks to play a streamed audio file, I am suggesting two methods to play it. First one is view the downloader and supply a Firefox’s “internal player” to play it. Second one is supply a player options within tool bar. I don’t know the possibility of this project. Please comment on this.

maxaeran: how does this fit with the WHAT-WG Audio object proposals? - Gerv

Extension for bookmarking and sharing scripts and extensions. An extension tying into a web-based tool - a " for extensions" that also allows users to load their preferred extensions on any firefox browser in seconds. Hivemya JS coded extension (w/ Open ID based accounts?). SQL-based bookmark accounts directly linking to XPIs, with support for RSS. Is extension auto-installation possible through RSS/JSON subscription?

Who regularly wants to "load their preferred extensions on any firefox browser in seconds"? - Gerv

That would be a side-benefit. Basically, it's adding the same batch-installation that is currently being discussed in the Google Greasemonkey group, but for extensions at large. Once enough extensions are bookmarked and tagged, the social bookmarking system could be integrated into the Mozilla Add-Ons site.

I think it's an *important* idea because the quantity of extensions is going to increase ten-fold over the next year, and therefore there is much more of a need for (1) attention agents and (2) spam filters; both needs can be solved through a social bookmarking system. - Hivemya

Firefox Tab Grouping This feature will group the logically related tabs into related groups in Firefox into similar logical groups. maxaeran These groups can be made by user or it can be done automatically ( can be configured )

This proposal is too vague - Gerv
Allow the option of passing URL to helper application instead of downloading See bug 225882 and bug 137339
Metalink A simple XML format for downloads (bug 331979) that 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. This is currently supported by over ten download managers. Antini
Auto verify MD5/SHA1 hashes & PGP signatures Automatically verifying MD5/SHA1 hashes, and optionally PGP signatures, of downloads. When you have downloaded a file, the download manager should try to download filename.md5, filename.sha, filename.asc and run the associated tool on the downloaded file to verify. Mark the entry as red or something in the download manager, and change the Open link to Info link, if the file did not verify. The Info link would open a page explaining what is wrong. It could perhaps have a open or preferably just delete file button. More difficult case would be to get the md5/sha1 signature if it is just embedded on the page where the download link is, but you could try some heuristics... (see also bug 292481). HeikkiToivonen PGP signature support would probably be easiest to build on top of Enigmail extension. See Metalink which supports associating MD5/SHA1 hashes and PGP signatures with files, and hash microformat for embedding within a page.

Making three extra 404 hits on a website for each file downloaded is not a friendly thing to do (remember favicon.ico) - Gerv

Maybe the verification should check the referrer page in memory for additional links which match the given pattern and only download them if a matching link is found (e.g. Apache directory listing) - Felix.Schwarz
Internal audio Allow Firefox to play WAV and AIFF audio files internally schapel This would probably need to be done following the WHAT-WG specs for the Audio() object - Gerv
Memory Manager Try to implement an internal memory manager. It should, for example, pre-allocate about 10% of system ram memory and try to operate within that memory. All calls to "free()" should release memory to this global memory pool and all calls to "malloc()" must allocate memory from this memory pool. If properly implemented, we can even reduce the overheads that may arise due to such an implementation. Shyam A repost of the idea I posted Here (Firefox3 Brainstorming).

Shyam: what qualifications do you have to mentor this project? - Gerv

Grev: Replied to you by e-mail, and updated this wiki. Needless to say, I {can/would like} to get dirty in implementing this along with the student (In case of time constraints).

Shyam: mentors need to have Mozilla community experience. A mentor is not a co-worker by another name :-) - Gerv.

Grev: Point taken ! Removed my name from mentor column. I can help the student who comes in to work on this as an outside contributor, and not as GSoC student, as I just graduated :-(
Image type finder Implement an image type finder as described in this Bugzilla comment schapel
Remote Cookies Write a Firefox extension that stores/retrieves cookies on a server instead of in the local cookies.txt file. This will enable Firefox users to use the same cookies on all their computers and Firefox profiles. Eric H. Jung Eric H. Jung Think of never having to authenticate against all of your websites again! If the student runs out of time, I will write code to keep the server contents encrypted and the SSL delivery/retrieval mechanism. Student needs to write the GUI and web progress listener hooks.

Why just cookies? Why not full remote profiles? Do you have an algorithm for handling merge conflicts? How does this relate to Google Sync? - Gerv
Broken Add-on Detector Let the user show a problem with the application which happens only with extensions enabled (fine in -safe-mode) and let the application search for the broken add-on/conflicting add-ons itself. Archaeopteryx The user recognizes a problem with the application (Fx, Tb, ...) which does not happen in safe mode, so a wizard will demand him to perform the steps to reproduce in normal mode and for comparing in safe mode and try to find the problematic extension by disabling an extension, starting the app and testing and continue with the next extension. Basically, I think about the red code (broken translations and so on) or obvious problems with doubling the event handler which let the tab control keys jump two tabs instead of one. Finally, the problematic extension(s) should be disabled and the user informed about this action.
E-mail send/receive progress dialog Write a Thunderbird extension that displays a dialog showing the progress of e-mail send/receive, showing the total number of mails to process, their size and a progress bar. Bartosz Piec Look at Microsoft Outlook or Outlook Express for an example dialog

What benefits does having such a dialog give us? - Gerv

If you have a slow connection (ISDN: <8 kB/s) and receive big mails it is nice to have a preview (who sent the mail, how long will it take to download everything etc) - Felix.Schwarz
"Search as you Type in addressbar" extension This extension will search in local bookmark and History jigar shah jigar shah Most of the time user want to find a page on a particular website; say mozilla developer, He goes to that website and browses through all available links. If when he starts typing in addressbar he gets suggestions based on his bookmarks and History it will reduce his search time. This is easy to do in Firefox 3 since there are plans to add SQLLite in FF3. Don't know about possibilities for FF2.
ODF stylesheet support Extension using XSLT stylesheets to make ODF documents viewable in-browser Gerv ODFReader already exists, although it's quite simple, for OpenDocument Text only, and requires a stylesheet whose licensing isn't quite compatible with that of Mozilla. This project would enhance ODT support, and perhaps add support for ODS (spreadsheet) and ODP (presentation), such that these types could be reliably viewed in a pleasant (if not 100% accurate) way directly in the browser. A "Save" link or button would also be provided, for the potentially confused.
Firefox 2 Go. Write an extension that will allow users to sign into firefox anywhere in the world and have their history,bookmarks,browser settings, plugins(firefox profiles) automaticaly loaded into the browser. They will basicaly have a browser that will go anywhere they do. Ofcourse when they sign off everything will be removed if they wish.

Please post comments on this idea

Peter Kemp (BCIT Student) Looking for mentor Why should you be limited to surfing your way and style only at home! What if you could travel anywear in the world, to any computer and your browser would be right there for you. It would Supply you all of your bookmarks, your browser settings, your history and even the plugins that you use everyday.

No long is firefox just a browser, but a travel companion.

Firefox, you travel, we follow.

Comment(jigar): Google Browser Sync extension already exist for this purpose Google Browser Sync

Such an extension would have value if it were open source and usable with any storage backend, not just Google's - Gerv

Comment(Peter Kemp): Thank you jigar, I didnt know about the browsersync.
(To Gerv):For the storage backend i was thinking about implementing it via XML files. What is your opinion for a backend storage ? Thank you

I think you can't sprinkle magic XML pixie dust on a hard problem to make it easier. Why are the files not stored server side in whatever format they are stored in the profile? - Gerv
(To Gerv): lol pixie dust.
I was thinking of having the plugin record all the information and put it into an xml file then encrypt and send to the server. When fetching the xml from the server the plugin would grab the xml deycrypt and then do the dirty work.

The reason for xml is because the only thing i need to load are bookmarks, history, links to plugins and browser settings. All of this is plain text that each plugin could reconize. So something light and fast to transfer no matter what connection speed your on.

Index visited pages. Allow query on it. People need to re-find the information that they have already found on the web. This mechanism is currently provided through bookmarks, history and the navigation buttons. Firefox 3 is set to include a number of features through “Places”. “Places” can be further enhanced by allowing user “word-search” the visited web pages. This project will add indexing capabilities to firefox and allow user queries on visited web pages. Thus helping the user find what they need to know. Reported as an enhancement for firefox3. bug 342913 Kunal Looking for mentor Places will add exciting capabilities to firefox. Indexing visited pages is a consistent demand seen in the wikis. Further users spend a lot of time on re-finding information on the web. A feature like this will enhance his user-experience. Sooner or later, competiting browsers will implement this feature. An early start on this will make firefox even more competitive compared to its rival browsers.
CRON-like repeatable event specification in Sunbird Desktop calendar applications use repeatable event specification where a user can exclusively choose one of the following repeat patterns: daily, weekly, monthly, yearly. Server-side deamon CRON uses more sophisticated way of repeat pattern specification. One can mix daily patterns with weekly patterns and etc. in one event specification.

The project's aim is to implement CRON-like pattern specification in Desktop calendar application Sunbird. The idea is new and not seen in any other calendaring application due to the following reason. CRON uses on-line algorithm: checks every minute if current time/date matches any of the list of patterns. Desktop calendar however, needs daily, weekly, monthly (and sometimes yearly) view. Generating all occurrences of a pattern within a specified time bound is not an easy task. I have been doing research in this topic and came up with an idea of doing this kind of computation efficiently. I managed to implement it in a commercial system that is not a calendaring application but has similar functional requirements. I have put algorithmic design into a whitepaper that explains all the details.

Now I would like to implement this algorithm in an open source calendaring application as a proof of concept of my algorithm.

Dominik Zalewski Looking for mentor