Changes

Jump to: navigation, search

Community:SummerOfCode12:Brainstorming

14,862 bytes removed, 19:04, 9 March 2012
Transfer items to official page: https://wiki.mozilla.org/Community:SummerOfCode12
! Mentor(s)
! Comments
|-
|Improve support for MathML tabular expressions
|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.
|Frédéric Wang
|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].
|}
! 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 [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
|
|}
! Mentor(s)
! Comments
|-
| All HTML5 Tags
| The SeaMonkey Composer does not show HTML5 tags in its "All Tags" mode, instead they appear with an unknown tag indicator. It would be nice for the actual tag names to display. Skills needed: CSS; some graphical ability.
| Neil
| Neil, possibly IanN
|
|-
| HTML5 Editing
| The SeaMonkey Composer does not know how to edit HTML5 tags, except via its generic Advanced Editor. Skills needed: Some HTML5 tags can be supported by adding a XUL/JS dialog, but some may need additional C++ code.
| Neil
| Neil, possibly IanN
| Any given student could just add support for one HTML5 tag of their choice.
|}
! 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.
| [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.
|-
| Graphical Timeline of Events
| We would like to create a visual timeline of events.
| [mailto:rcampbell@mozilla.com robcee]
| Someone from devtools, possibly some platform support.
| JS required, canvas, html, css, possibly some C++.
|-
|}
! Mentor(s)
! Comments
|-
| User Specified Content Security Policy
| Currently, a website can decide to mitigate attacks on their pages and their users by defining and implementing a Content Security Policy. However, users have no way of protecting themselves in cases where their favorite websites aren't using CSP. This project is to develop a firefox add-on that allows users to specify Content Security Policies for sites (i.e. don't ever iframe my bank website, don't allow inline script on my blog, etc). If time allows, the add-on could also monitor websites the user visits frequently to determine a default CSP policy for each site. Give the user the option to apply that policy to the website and potentially protect themselves from future exploits on the site caused by current or future vulnerabilities.
| Tanvi
| Tanvi
|
|-
|Prevent tracking via http basic auth
|Currently a website can track users by setting requests to their resources (advertising) using urls that contain auhtentication attributes. Sites then can use these attributes to track users between sites (and avoid the need to set up cookies or other storage). This project will enhance firefox so that this type of tracking cannot be done and to determine how much this happens in practice. The two goals for this project are: Enhance the collusion add-on to include this type of tracking and change firefox so that a preference exist so that the only http auth headers that get cached are the ones entered manually by the user.
|cviecco
|cviecco
|
|-
| SPDY and WebsSocket Testing Tools
| HTTP is old and busted, SPDY and WebSockets are the new hotness. Unfortunately there are no really good tools for performing manual and automated security testing for these protocols (aside from protocol fuzzing). We need a brilliant candidate who can work with us to create some new tools that fit in with the asynchronous nature of these protocols while allowing testers to adapt manual / intercepting proxy oriented testing techniques. In particular, an existing tool such as OWASP Zap should be updated to support both interception, and streaming modifications to request contents.
 
Links: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project<br/>
http://mbelshe.github.com/SPDY-Specification<br/>
http://dev.w3.org/html5/websockets/
| Yvan Boily
| Yvan Boily
|
|}
Accountapprovers, antispam, confirm, emeritus
4,925
edits

Navigation menu