Personal tools

Community:SummerOfCode12:Brainstorming

From MozillaWiki

(Difference between revisions)
Jump to: navigation, search
(Documentation)
(new GSOC proposal: Implement MathML 3 linebreaking)
(32 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 
   
 
   
Mozilla community members - submit ideas here for 2012 Google Summer of Code projects with Mozilla.
+
Mozilla community members - submit proposals here for 2012 Google Summer of Code projects with Mozilla. (If this page looks empty, it's because accepted ideas have already been transferred to the [[Community:SummerOfCode12|official list]].)
  
<b>Are you a students looking to apply to SoC with Mozilla?</b> Project ideas formally approved by the Mozilla SoC admins are [[Community:SummerOfCode12|here]]. You can also submit your own ideas - you don't have to put an idea on this page and get it made official in order to propose it.
+
<b>Are you a students looking to apply to SoC with Mozilla?</b> First, have a look at the [[Community:SummerOfCode12|official list of ideas]]. However, you <i>can</i> also submit your own ideas - you don't have to put an idea on this page and get it made official in order to propose it.
  
 
==How To Write A Good Project Proposal==
 
==How To Write A Good Project Proposal==
Line 20: Line 20:
 
[[SummerOfCode|Here are the ideas lists from previous years]].
 
[[SummerOfCode|Here are the ideas lists from previous years]].
  
Proposals can be in almost any part of the Mozilla project - don't be fooled by the "Code" in the title. If there is no category for your part of Mozilla, add one!
+
Proposals can be in almost any part of the Mozilla project - don't be fooled by the "Code" in "Summer of Code". If there is no category for your part of Mozilla, add one!
  
 
== Mozilla Platform (Gecko) ==
 
== Mozilla Platform (Gecko) ==
Line 32: Line 32:
 
! Comments
 
! Comments
 
|-
 
|-
|Networking Dashboard
+
|Improve support for MathML tabular expressions
|Build a UI for insight into Mozilla Networking. This is really both a gecko and firefox project. Show what connections are active, how fast connections have run in the past, what protocols are in use with protocol specific context  information (http versions, spdy, websockets), allow management (e.g. shutdown) of particular connections, and even trigger some diagnostic tests.
+
|As you can see on the [https://developer.mozilla.org/en/Mozilla_MathML_Project/Status#Tabular_Math Mozilla MathML Status page], some work needs to be done on Gecko's  [http://www.w3.org/TR/MathML3/chapter3.html#presm.tabmat tabular math] support. The main goal is to fix {{bug|731667}} by rewriting the implementation of the rowalign, columnalign, rowlines and columnlines attributes. As a next step one can work on the support for rowspacing and columnspacing attributes ({{bug|330964}}). <mlabeledtr> ({{bug|689641}}) and <maligngroup> ({{bug|122253}}) are also other interesting elements to consider.
| mcmanus
+
|Frédéric Wang
| mcmanus plus hopefully a ux sponsor
+
|Frédéric Wang
|
+
|Better tabular support and more specifically support for the <mlabeledtr> element is [http://www.mathjax.org/2012/03/02/news/mathjax-2-0-and-the-default-rendering-in-firefox/ important for the MathJax project]. Removing private _moz- attributes may allow Gecko to pass more test cases from the html5lib test suite. This will hopefully also fix {{bug|491384}}, which has been experimented several times by people who use columnalign to implement LaTeX alignment environments.
 +
|-
 +
|Implement MathML 3 linebreaking
 +
|MathML 3 comes with an entirely new description of [http://www.w3.org/TR/MathML3/chapter3.html#presm.linebreaking linebreaking] that could greatly improve our linebreaking support in mathematical expressions. A complete implementation may be hard in view of the limited time-frame available, but more modest objectives and incremental steps are proposed in {{bug|534962}}.
 +
|Frédéric Wang
 +
|Frédéric Wang
 +
|Linebreaking support is [http://www.mathjax.org/2012/03/02/news/mathjax-2-0-and-the-default-rendering-in-firefox/ important for the MathJax project].
 
|}
 
|}
  
Line 99: Line 105:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
| Improve Invitation support
 
| While Lightning supports invitations, there are still some features that are not supported yet and others that are not quite as stable. Possible goals for this project include improving the UI to make sure users are not confused and implementing/adapting code to support previously unsupported features of invitations like delegations or counters. Lightning relies on the [http://tools.ietf.org/html/rfc6047 itip/imip] standard for invitations, which is also used by most other calendaring clients and servers, so an interested student should look into these. Related bugs are {{bug|420516}}, {{bug|426532}}, {{bug|445982}}, {{bug|538043}}, {{bug|720263}}, {{bug|624332}}, {{bug|433848}}. This is not the final list of bugs to be fixed, just to give you an idea of what can be done here.
 
| [mailto:mozilla@kewis.ch Fallen]
 
| ludovic?
 
|
 
|-
 
| OS Integration
 
| Lightning should improve its integration into the Operating system, most importantly on Windows. If you've ever wanted to doubleclick on an event to open it in Lightning, this project is for you. Note this might be a bit more tricky than it intially sounds, but you will have the chance to contribute to multiple projects, as some parts of this project could possibly be better solved within Thunderbird or even the Mozilla Platform. To get prepared, see the list of [https://bugzilla.mozilla.org/buglist.cgi?product=Calendar&component=OS%20Integration&resolution=---&list_id=2260690 OS Integration bugs], and especially {{bug|352566}}.
 
| [mailto:mozilla@kewis.ch Fallen]
 
| Fallen+someone else?
 
|
 
 
|}
 
|}
 
== Thunderbird ==
 
== Thunderbird ==
Line 122: Line 116:
 
! Comments
 
! Comments
 
|-
 
|-
| Search toolbar
+
|Thunderbird Profile backup/transfer
| Thunderbird comes with a powerful search feature. When performing a search, the results appear in a new search tab.  This new tab allows you to drill down and filter the results of your search. We would like to expand this search result tab so that users can modify their search query as well. A WIP patch has already been started, and so if the project is completed with time to spare, there are a few other things we can add and rearrange to the search tab to make it better for our usersSee {{bug|719008}}.
+
|backup and restore of Thunderbird profiles. Should allow users to transfer profiles between machines. Would need to investigate Mozbackup and figure out how this would be better. Options about which files to backup would be a start.
| [mailto:mconley@mozilla.com mconley]
+
Level of difficulty: hard. Skills required: JS, C++, XPCOM, XUL
| mconley
+
|bienvenu
 +
|bienvenu,standard8
 +
|
 +
|-
 +
|Thunderbird Profile discovery/recovery
 +
|Handle things like profiles.ini getting corrupted on upgrade (e.g., try to find a profile dir and hook it back up to profiles.ini), and perhaps profile repair, when accounts get corrupted. Level of difficulty: medium. Skills required, JS and/or C++.
 +
|bienvenu
 +
|bienvenu,standard8
 +
| This is probably relatively easy, but diagnosing and repairing some of the trickier corruptions might be complicated.
 +
|-
 +
|Improve GMail interoperability
 +
|See https://bugzilla.mozilla.org/show_bug.cgi?id=721316 for more info.  The biggest win here is probably avoiding downloading the same message to offline stores multiple times and multiple gloda full-text indexing, by using X-GM-MSGID, X-GM-THRID may help with threading in gloda, cross-folder views, and even within a folder. There are probably other things we can do to improve our gmail integration. For example, we could avoid notifying for multiple new messages just because a message has multiple tags.
 +
Level of Difficulty - medium to hard, depending on how deep we go here. Skills required: C++.
 +
|bienvenu
 +
|bienvenu
 +
|
 +
|-
 +
| Big File Providers
 +
|Add Other big file providers (e.g., SFTP, Google Docs, WebDAV (for MS's sharepoint!))
 +
Level of difficulty - medium to hard, depending on the provider API and how well it maps to our provider interface. Skills required: JS.
 +
|bienvenu
 +
| bienvenu, mconley, squib, bwinton
 +
|
 +
|-
 +
|Other pluggable stores
 +
| Add one or more other pluggable stores, e.g.,, sqlite, Unhosted (https://groups.google.com/forum/#!topic/unhosted/gra3dStGjDM))
 +
Level of difficulty - hard. Skills required, JS or C++.
 +
| bienvenu
 +
| bienvenu
 +
|
 +
|-
 +
|Gloda-powered attachment browser.
 +
|Use Shane's extension as a starting point, figure out how to integrate it into Thunderbird.  This feature allows the navigation through email attachments. Presented in a  additional tab, it offers previews of supported email attachments. It  allows full view of the attachment by launching the appropriate  registered application or can switch to the email in the email view. Filters allow to the display of attachments of a given type, individual  or all folders view. Initially, pictures, PDFs, HTML docs,  YouTube/DailyMotion videos should be supported. Other attachments types  could be added in core or via plugin.
 +
Level of difficulty - hard. Skills required: JS, HTML.
 +
|bienvenu, jb
 +
|squib, protz, Shane(?)
 +
|
 +
|-
 +
|No reply reminder
 +
|Often you're sending an email and expecting an answer within a certain number of days. This feature will set a reminder to notify you if no answer has been received in between. One possible way of being reminded is to automatically forward the original email to yourself, with an explanation subject/header. Another way can be to set a Lightning event if it is installed. A few good extension provides a similar feature but do not 'watch' for answered email: https://addons.mozilla.org/en-US/thunderbird/addon/remindit and https://addons.mozilla.org/en-US/thunderbird/addon/follow-up
 +
Level of difficulty: medium (?)
 +
Possible mentor: ?
 +
|jb
 +
|protz(?), jb
 +
|
 +
|-
 +
|Configure Android stock email client with Thunderbird account settings
 +
|f you want to email other than gmail on Android, you have to go through the pain of setting the stock email client with IMAP/POP3 settings, ports, user names, passwords, and other reply & compose settings. This feature would allow you to automatically set your Android device email application with the right parameters. It could take the form of an Android thunderbird application, or some other more direct parameter settings via device policy infrastructure
 +
Technical investigation to be done
 +
|jb
 +
|jb?
 +
|
 +
|-
 +
|Offer url preview within Thunderbird
 +
|Many emails contain links to a single web page. The default TB behaviour  is to launch the stock browser to view them. This feature allows direct preview in a Thunderbird tab through ctl-click, or direct inline preview for known content (ex: Youtube...).
 +
Level of difficulty: medium (easy if initial groundworks is available).
 +
Existing bug: https://bugzilla.mozilla.org/show_bug.cgi?id=661742
 +
|jb
 +
|mconley
 +
|
 +
|-
 +
|Compose in a tab
 +
|One way to move the compose window into a tab is to load the compose window document into a XUL iframe (which is like an HTML iframe, except it hosts XUL). To test this out, install the [https://addons.mozilla.org/en-US/firefox/addon/extension-developer/ Developer Assistant] extension for Thunderbird, then go to Tools -> Extension Developer -> JavaScript Shell and run the following code:
 +
 
 +
<pre width=70>enumerateWindows();
 +
Shell.enumWins[0].document.getElementById("tabmail").openTab(
 +
  "chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});</pre>
 +
 
 +
Then try playing around with it, sending a message, etc. As you can see, the basic concept works, but there are currently issues with the UI. Your job will be to sort them out, make everything work properly, and ship your code as part of Thunderbird.
 +
 
 +
Easier way: Tools -> Error console, then
 +
 
 +
  <pre width=70>top.opener.openTab("chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});</pre>
 +
 
 +
Level of difficulty: hard. Will require writing XUL (menus will probably need to be moved out into an [https://developer.mozilla.org/en/XUL_Overlays overlay]), JavaScript (passing [https://developer.mozilla.org/en/XUL_Tutorial/Commands menu commands] down to the child iframe) and CSS (to fix theming issues) and writing unit tests to ensure that things work as expected. Since Mac OS X has a global menu, getting it right might require more work. ''You will need access to a Mac for your proposal to be accepted.''.
 +
|sid0
 +
|sid0, mconley, protz
 +
|-
 +
| Thunderbird Get Satisfaction support dashboard
 +
| Create a real-time Thunderbird support dashboard by implementing i) a REST API to read Thunderbird support data from a MongoDB database ([http://rolandtanglao.com/archives/2011/12/23/mongohq-gs-api-mongopollrb-my-vps-emailreport2rb-cron-awesome-twice-daily blog post on the code that generates the MongoDB Database]) of Thunderbird Get Satisfaction Support topics ii) a JavaScript client that calls the aforementioned API  in order to display a real time Thunderbird support dashboard in Firefox - (i.e. [http://blog.xulforum.org/index.php?post/2010/09/02/GetSatisfaction-dashboard-magic port the existing Thunderbird GS Dashboard to the new API])
 +
Level of difficulty:easy to medium
 +
Skills needed: JavaScript; Helpful: MongoDB & Information Visualization in the browser using JS and an infoviz toolkit like [http://mbostock.github.com/protovis/ protovis] or [http://mbostock.github.com/d3/ D3]
 +
| [mailto:rtanglao@mozilla.com rtanglao]
 +
| Roland Tanglao aka rtanglao
 +
|
 +
|-
 +
| Investigate an alternate composition window
 +
| We still want to overhaul the composition window. Most of the hard work was done already in compose (https://addons.mozilla.org/en-US/developers/addon/compose-for-thunderbird ) or Conversations (https://mail.mozilla.org/pipermail/tb-planning/2012-February/001547.html ). A motivated student could explore a new UI for the composition window, and consider integrating an external editor such as aloha.
 +
Level of difficulty: hard
 +
Skills needed: JavaScript; HTML (no XUL)
 +
| [mailto:jonathan.protzenko@gmail.com protz]
 +
| protz, mconley
 +
|
 +
|-
 +
| Investigate designing a home tab
 +
| Outlook has a home tab, i.e. some sort of dashboard that gives you all the relevant information at a glance. We could do something similar in Thunderbird:
 +
* unread mail,
 +
* pending events,
 +
* unread RSS items,
 +
* a couple icons to open websites in new tabs (for, say, google contacts or twitter),
 +
* to-do list, etc.
 +
Level of difficulty: hard
 +
Skills needed: JavaScript; HTML (no XUL)
 +
| [mailto:jonathan.protzenko@gmail.com protz]
 +
| protz, bwinton, sid0
 
|
 
|
 
|}
 
|}
Line 138: Line 236:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
| Shell Service
 
| The Mozilla Suite only supported a shell service on Windows, and SeaMonkey has inherited that limitation. Both Firefox and Thunderbird support the shell service on other platforms, so it is technically feasible to implement the shell service for SeaMonkey on those platforms too.
 
| [mailto:neil@parkwaycc.co.uk Neil]
 
| Neil
 
| This proposal requires some knowledge of platform-specific APIs. Only one platform needs to be implemented by any particular student. I can only give limited support for the Mac but it may be possible to find another mentor.
 
 
|}
 
|}
  
Line 240: Line 332:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
|Create examples for SVG Reference
 
|The [https://developer.mozilla.org/en/SVG SVG Reference] needs examples! Lots of examples! We need live samples for all the various SVG elements and attributes, examples for how to do cool stuff with SVG in the DOM, etc. The goal would be to have in-line, live SVG samples, with the code and an explanation of how the code works, for every SVG element and attribute.
 
|Sheppy
 
|Sheppy
 
|Also talk to Jeremie Patonnier about helping with mentoring.
 
|-
 
|Create examples for HTML and CSS references
 
|The HTML and CSS references on MDN need examples. While there are some here and there, someone needs to go through and ensure that every HTML element has good examples that cover a variety of use cases and interesting capabilities, and that every CSS property has good coverage as well. These would include live examples with the code and an explanation of how it works.
 
|Sheppy
 
|Teoli
 
|
 
|-
 
|Add jsFiddle integration to Kuma
 
|The new Kuma wiki for MDN needs to have good integration with jsFiddle for easily creating examples then editing, experimenting with, and embedding them into documentation. Should be able to view the source and live output, then experiment with the code in real time (either in place or, perhaps preferably, in a new window).
 
|Sheppy
 
|Sheppy
 
|
 
 
|}
 
|}
  
Line 338: Line 412:
 
! Comments
 
! Comments
 
|-
 
|-
|
+
| Provide browser compatibility warnings
|
+
| sites like caniuse and html5please provide information about which modern features are available in which browsers. Browser developer tools have the running app in hand and it would be a huge help for many developers if the tools could provide warnings about features being used that are not compatible with the set of browsers that the user cares about.
|
+
| kdangoor
|
+
|
|
+
|  
 +
|-
 +
| CSS Source Maps
 +
| Last year, a student implements "source maps" that can take minified JavaScript or even CoffeeScript and map errors back to the original source file(s). We'd like to do the same for CSS which is often minified or generated from languages like LESS or Stylus.
 +
| kdangoor
 +
|
 +
|
 +
|-
 +
| Highlight JS that causes reflows to occur
 +
| Gecko developers are able to point out statements that trigger reflows from code inspection. We can do better: {{bug|453650}} discusses adding notifications for timing reflows and calls that trigger a reflow. With this information, we can create a tool that obtains stack traces when reflows are triggered, and order the results by duration, and link this to specific triggering JS statements.
 +
| [mailto:josh@joshmatthews.net jdm]
 +
| Someone from devtools, with platform support
 +
| C++ and JS required.
 +
|-
 +
| Highlight slow CSS selectors
 +
| We have a wiki pages of ways to write CSS rules that take advantage of Firefox's internals: https://developer.mozilla.org/en/Writing_Efficient_CSS. If we could add timing data to CSS selector matching, we could use that information to profile rules on a page and display a profiling view that links to specific problematic rules.
 +
| [mailto:josh@joshmatthews.net jdm]
 +
| Someone from devtools, with platform support.
 +
| C++ and JS required.
 
|}
 
|}
  
Line 354: Line 446:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
| Slide Drive Improvements
 
| Slide Drive (https://github.com/dseif/slide-drive) combines the deck.js HTML5 slideshow package with Popcorn.js. It was originally developed for Software Carpentry, but would be useful to many other people who want to move off PowerPoint and recorded video.  Many enhancements are possible, the most important being accessibility support.
 
| [mailto:greg@mozillafoundation.org greg]
 
| greg
 
|
 
 
|}
 
|}
  
Line 371: Line 457:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
| Tryserver automation improvements
 
| We currently have a trychooser syntax which allows developers to customize what they'd like to test their patch with (out of over 200 build & test options) - this syntax can use some improvements to allow for even more granular control and also needs a web-driven interface as well as logic that would let users specify a repo (mozilla-hosted), a custom test package, and much more.  Bugs include [https://bugzilla.mozilla.org/show_bug.cgi?id=try_enhancements try_enhancement tracking] and most importantly {{bug|625463}}
 
| [mailto:lsblakk@mozilla.com Lukas Blakk]
 
| [https://wiki.mozilla.org/User:Lsblakk Lukas Blakk]
 
| useful skills include some webdev and python programming
 
 
|}
 
|}
  
Line 388: Line 468:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
|
 
|
 
|
 
|
 
|
 
 
|}
 
|}
 
  
 
== Emscripten ==
 
== Emscripten ==
Line 406: Line 479:
 
! Mentor(s)  
 
! Mentor(s)  
 
! Comments
 
! Comments
|-
 
| Port the open source C++ project of your choice to the web
 
| Emscripten lets us compile C++ to JavaScript. Porting a project involves building it with Emscripten and fixing any problems along the way (changes to makefiles, implementing missing library support in Emscripten) as well as analyzing the generated code and seeing how to optimize the code for the web. Any interesting open source C or C++ codebase would be a good project to work on here, some examples: GTK, Qt, SuperTux, PyPy, etc.
 
| Alon Zakai
 
| Alon Zakai
 
|
 
 
|}
 
|}

Revision as of 01:37, 8 March 2012

Mozilla community members - submit proposals here for 2012 Google Summer of Code projects with Mozilla. (If this page looks empty, it's because accepted ideas have already been transferred to the official list.)

Are you a students looking to apply to SoC with Mozilla? First, have a look at the official list of ideas. However, you can also submit your own ideas - you don't have to put an idea on this page and get it made official in order to propose it.

Contents

How To Write A Good Project Proposal

Before adding an proposal to this list, please consider the following:

  • 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. If you think the SoC admins won't know who you are, leave contact details.
  • Check back regularly. The administrators may have questions about your idea that you will need to answer.
  • Know when to give up. If you've added the same idea for the last three years and it hasn't made it to the official page, perhaps you can predict what will happen this time.

Suggestion List

Here are the ideas lists from previous years.

Proposals can be in almost any part of the Mozilla project - don't be fooled by the "Code" in "Summer of Code". If there is no category for your part of Mozilla, add one!

Mozilla Platform (Gecko)

Title Details - with links as appropriate Reporter Mentor(s) Comments
Improve support for MathML tabular expressions As you can see on the Mozilla MathML Status page, some work needs to be done on Gecko's tabular math support. The main goal is to fix bug 731667 by rewriting the implementation of the rowalign, columnalign, rowlines and columnlines attributes. As a next step one can work on the support for rowspacing and columnspacing attributes (bug 330964). <mlabeledtr> (bug 689641) and <maligngroup> (bug 122253) are also other interesting elements to consider. Frédéric Wang Frédéric Wang Better tabular support and more specifically support for the <mlabeledtr> element is important for the MathJax project. Removing private _moz- attributes may allow Gecko to pass more test cases from the html5lib test suite. This will hopefully also fix bug 491384, which has been experimented several times by people who use columnalign to implement LaTeX alignment environments.
Implement MathML 3 linebreaking MathML 3 comes with an entirely new description of linebreaking that could greatly improve our linebreaking support in mathematical expressions. A complete implementation may be hard in view of the limited time-frame available, but more modest objectives and incremental steps are proposed in bug 534962. Frédéric Wang Frédéric Wang Linebreaking support is important for the MathJax project.

Firefox

Title Details - with links as appropriate Reporter Mentor(s) Comments

Firefox Mobile

Title Details - with links as appropriate Reporter Mentor(s) Comments

Boot2Gecko

Title Details - with links as appropriate Reporter Mentor(s) Comments

Calendar

Title Details - with links as appropriate Reporter Mentor(s) Comments

Thunderbird

Title Details - with links as appropriate Reporter Mentor(s) Comments
Thunderbird Profile backup/transfer backup and restore of Thunderbird profiles. Should allow users to transfer profiles between machines. Would need to investigate Mozbackup and figure out how this would be better. Options about which files to backup would be a start.

Level of difficulty: hard. Skills required: JS, C++, XPCOM, XUL

bienvenu bienvenu,standard8
Thunderbird Profile discovery/recovery Handle things like profiles.ini getting corrupted on upgrade (e.g., try to find a profile dir and hook it back up to profiles.ini), and perhaps profile repair, when accounts get corrupted. Level of difficulty: medium. Skills required, JS and/or C++. bienvenu bienvenu,standard8 This is probably relatively easy, but diagnosing and repairing some of the trickier corruptions might be complicated.
Improve GMail interoperability See https://bugzilla.mozilla.org/show_bug.cgi?id=721316 for more info. The biggest win here is probably avoiding downloading the same message to offline stores multiple times and multiple gloda full-text indexing, by using X-GM-MSGID, X-GM-THRID may help with threading in gloda, cross-folder views, and even within a folder. There are probably other things we can do to improve our gmail integration. For example, we could avoid notifying for multiple new messages just because a message has multiple tags.

Level of Difficulty - medium to hard, depending on how deep we go here. Skills required: C++.

bienvenu bienvenu
Big File Providers Add Other big file providers (e.g., SFTP, Google Docs, WebDAV (for MS's sharepoint!))

Level of difficulty - medium to hard, depending on the provider API and how well it maps to our provider interface. Skills required: JS.

bienvenu bienvenu, mconley, squib, bwinton
Other pluggable stores Add one or more other pluggable stores, e.g.,, sqlite, Unhosted (https://groups.google.com/forum/#!topic/unhosted/gra3dStGjDM))

Level of difficulty - hard. Skills required, JS or C++.

bienvenu bienvenu
Gloda-powered attachment browser. Use Shane's extension as a starting point, figure out how to integrate it into Thunderbird. This feature allows the navigation through email attachments. Presented in a additional tab, it offers previews of supported email attachments. It allows full view of the attachment by launching the appropriate registered application or can switch to the email in the email view. Filters allow to the display of attachments of a given type, individual or all folders view. Initially, pictures, PDFs, HTML docs, YouTube/DailyMotion videos should be supported. Other attachments types could be added in core or via plugin.

Level of difficulty - hard. Skills required: JS, HTML.

bienvenu, jb squib, protz, Shane(?)
No reply reminder Often you're sending an email and expecting an answer within a certain number of days. This feature will set a reminder to notify you if no answer has been received in between. One possible way of being reminded is to automatically forward the original email to yourself, with an explanation subject/header. Another way can be to set a Lightning event if it is installed. A few good extension provides a similar feature but do not 'watch' for answered email: https://addons.mozilla.org/en-US/thunderbird/addon/remindit and https://addons.mozilla.org/en-US/thunderbird/addon/follow-up

Level of difficulty: medium (?) Possible mentor: ?

jb protz(?), jb
Configure Android stock email client with Thunderbird account settings f you want to email other than gmail on Android, you have to go through the pain of setting the stock email client with IMAP/POP3 settings, ports, user names, passwords, and other reply & compose settings. This feature would allow you to automatically set your Android device email application with the right parameters. It could take the form of an Android thunderbird application, or some other more direct parameter settings via device policy infrastructure

Technical investigation to be done

jb jb?
Offer url preview within Thunderbird Many emails contain links to a single web page. The default TB behaviour is to launch the stock browser to view them. This feature allows direct preview in a Thunderbird tab through ctl-click, or direct inline preview for known content (ex: Youtube...).

Level of difficulty: medium (easy if initial groundworks is available). Existing bug: https://bugzilla.mozilla.org/show_bug.cgi?id=661742

jb mconley
Compose in a tab One way to move the compose window into a tab is to load the compose window document into a XUL iframe (which is like an HTML iframe, except it hosts XUL). To test this out, install the Developer Assistant extension for Thunderbird, then go to Tools -> Extension Developer -> JavaScript Shell and run the following code:
enumerateWindows();
 Shell.enumWins[0].document.getElementById("tabmail").openTab(
  "chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});

Then try playing around with it, sending a message, etc. As you can see, the basic concept works, but there are currently issues with the UI. Your job will be to sort them out, make everything work properly, and ship your code as part of Thunderbird.

Easier way: Tools -> Error console, then

top.opener.openTab("chromeTab", {chromePage: "chrome://messenger/content/messengercompose/messengercompose.xul"});

Level of difficulty: hard. Will require writing XUL (menus will probably need to be moved out into an overlay), JavaScript (passing menu commands down to the child iframe) and CSS (to fix theming issues) and writing unit tests to ensure that things work as expected. Since Mac OS X has a global menu, getting it right might require more work. You will need access to a Mac for your proposal to be accepted..

sid0 sid0, mconley, protz
Thunderbird Get Satisfaction support dashboard Create a real-time Thunderbird support dashboard by implementing i) a REST API to read Thunderbird support data from a MongoDB database (blog post on the code that generates the MongoDB Database) of Thunderbird Get Satisfaction Support topics ii) a JavaScript client that calls the aforementioned API in order to display a real time Thunderbird support dashboard in Firefox - (i.e. port the existing Thunderbird GS Dashboard to the new API)

Level of difficulty:easy to medium Skills needed: JavaScript; Helpful: MongoDB & Information Visualization in the browser using JS and an infoviz toolkit like protovis or D3

rtanglao Roland Tanglao aka rtanglao
Investigate an alternate composition window We still want to overhaul the composition window. Most of the hard work was done already in compose (https://addons.mozilla.org/en-US/developers/addon/compose-for-thunderbird ) or Conversations (https://mail.mozilla.org/pipermail/tb-planning/2012-February/001547.html ). A motivated student could explore a new UI for the composition window, and consider integrating an external editor such as aloha.

Level of difficulty: hard Skills needed: JavaScript; HTML (no XUL)

protz protz, mconley
Investigate designing a home tab Outlook has a home tab, i.e. some sort of dashboard that gives you all the relevant information at a glance. We could do something similar in Thunderbird:
  • unread mail,
  • pending events,
  • unread RSS items,
  • a couple icons to open websites in new tabs (for, say, google contacts or twitter),
  • to-do list, etc.

Level of difficulty: hard Skills needed: JavaScript; HTML (no XUL)

protz protz, bwinton, sid0

SeaMonkey

Title Details - with links as appropriate Reporter Mentor(s) Comments

Camino

Title Details - with links as appropriate Reporter Mentor(s) Comments

NSS (Network Security Services)

Title Details - with links as appropriate Reporter Mentor(s) Comments

Bugzilla

Title Details - with links as appropriate Reporter Mentor(s) Comments

Firefox Support (SUMO)

Title Details - with links as appropriate Reporter Mentor(s) Comments

QA

Title Details - with links as appropriate Reporter Mentor(s) Comments

Documentation

Title Details - with links as appropriate Reporter Mentor(s) Comments

Mozilla IT and Infrastructure

Title Details - with links as appropriate Reporter Mentor(s) Comments

Open Web Apps

Title Details - with links as appropriate Reporter Mentor(s) Comments

Identity

Title Details - with links as appropriate Reporter Mentor(s) Comments

Sync

Title Details - with links as appropriate Reporter Mentor(s) Comments

Developer Tools

Title Details - with links as appropriate Reporter Mentor(s) Comments
Provide browser compatibility warnings sites like caniuse and html5please provide information about which modern features are available in which browsers. Browser developer tools have the running app in hand and it would be a huge help for many developers if the tools could provide warnings about features being used that are not compatible with the set of browsers that the user cares about. kdangoor
CSS Source Maps Last year, a student implements "source maps" that can take minified JavaScript or even CoffeeScript and map errors back to the original source file(s). We'd like to do the same for CSS which is often minified or generated from languages like LESS or Stylus. kdangoor
Highlight JS that causes reflows to occur Gecko developers are able to point out statements that trigger reflows from code inspection. We can do better: bug 453650 discusses adding notifications for timing reflows and calls that trigger a reflow. With this information, we can create a tool that obtains stack traces when reflows are triggered, and order the results by duration, and link this to specific triggering JS statements. jdm Someone from devtools, with platform support C++ and JS required.
Highlight slow CSS selectors We have a wiki pages of ways to write CSS rules that take advantage of Firefox's internals: https://developer.mozilla.org/en/Writing_Efficient_CSS. If we could add timing data to CSS selector matching, we could use that information to profile rules on a page and display a profiling view that links to specific problematic rules. jdm Someone from devtools, with platform support. C++ and JS required.

Foundation

Title Details - with links as appropriate Reporter Mentor(s) Comments

Release Engineering

Title Details - with links as appropriate Reporter Mentor(s) Comments

Instantbird

Title Details - with links as appropriate Reporter Mentor(s) Comments

Emscripten

Title Details - with links as appropriate Reporter Mentor(s) Comments