Community:SummerOfCode13: Difference between revisions

no edit summary
No edit summary
No edit summary
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span style="color: red; font-weight: bold">Looking for this year's Summer of Code information? [[SummerOfCode|Step right this way.]]</span>
This page lists all the [[SummerOfCode|Google Summer of Code]] 2013 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on [[Community:SummerOfCode13:Brainstorming|the Brainstorming page]]. This page is locked; contact Gerv with edits.
This page lists all the [[SummerOfCode|Google Summer of Code]] 2013 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on [[Community:SummerOfCode13:Brainstorming|the Brainstorming page]]. This page is locked; contact Gerv with edits.


Line 7: Line 9:
==Application Advice==
==Application Advice==


Note that if a project suggests it would be helpful to know XUL (Mozilla's user interface description language), you may be able to get away with learning on the job. Don't be put off from applying if the project otherwise looks right for you.
You should do the following:


* Talk to the mentor. Contact details are on this page; if all you have is a nickname, get on [[IRC|IRC]] and try and contact them.
* Read the [http://www.booki.cc/gsocstudentguide/ GSoC Student Guide] and follow its advice.
* Read the [http://www.booki.cc/gsocstudentguide/ GSoC Student Guide] and follow its advice.
* Read [http://blog.gerv.net/2006/05/how_not_to_apply_for_summer_of/ How Not To Apply For Summer Of Code] and avoid doing the things listed there.
* Read [http://blog.gerv.net/2006/05/how_not_to_apply_for_summer_of/ How Not To Apply For Summer Of Code] and avoid doing the things listed there.
Line 15: Line 18:
* It is entirely acceptable to apply for 2 or 3 projects, if more than one catches your eye; if the applications are high quality, that probably improves your chances a little. However, more than 3 seems like spam.
* It is entirely acceptable to apply for 2 or 3 projects, if more than one catches your eye; if the applications are high quality, that probably improves your chances a little. However, more than 3 seems like spam.


Questions of any sort? Send mail to [mailto:gerv@mozilla.org Gerv] and/or [mailto:florian@queze.net Florian]. We will try and respond as soon as possible and get your questions directed to the right person.  Please allow at least 48 hours for a reply. If you want to contact a mentor and contact details are not here, ask people in the #developers channel on IRC: irc://irc.mozilla.org/#developers.
Note that if a project suggests it would be helpful to know XUL (Mozilla's user interface description language), you may be able to get away with learning on the job. Don't be put off from applying if the project otherwise looks right for you.


== Mozilla Platform (Gecko) ==
Questions about individual projects are best addressed to the potential mentor of that project. These should be listed in the table below. If you want to contact a mentor and contact details are not here, ask people in the #developers channel on IRC: irc://irc.mozilla.org/#developers. If you have questions of any other sort, send mail to [mailto:gerv@mozilla.org,florian@queze.net Gerv and Florian]. We will try and respond as soon as possible and get your questions directed to the right person.  Please allow at least 48 hours for a reply.
 
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
! Title
! Details
! Skills Needed
! Reporter
! Mentor(s)
! Comments
|}


== Firefox ==
== Firefox ==
Line 44: Line 37:
tightly controlled, irreversible-without-password setting, but rather a feature that will make it harder to accidentally break or deteriorate the Firefox experience.
tightly controlled, irreversible-without-password setting, but rather a feature that will make it harder to accidentally break or deteriorate the Firefox experience.


This project will be implemented using the Add-on SDK.
This project will be implemented using the Add-on SDK. [http://felipe.wordpress.com/2013/04/22/silverfox-gsoc/ More info about this project].
| Good JS skills and ability to work with large codebases. Previous add-on experience is a big plus.
| Good JS skills and ability to work with large codebases. Previous add-on experience is a big plus.
| [mailto:gsoc@felipc.com Felipe], [mailto:jwein+gsoc@mozilla.com Jared]
| [mailto:gsoc@felipc.com Felipe], [mailto:jwein+gsoc@mozilla.com Jared]
| Felipe, Jared (felipe, jaws on IRC)
| Felipe, Jared (felipe, jaws on IRC)
|-
|-
| about:memory for real people
| about:memory For Real People
| about:memory has been a very useful tool for us developers to better understand memory consumption in Firefox and help diagnose and fix problems (See the [https://wiki.mozilla.org/Performance/MemShrink MemShrink project]). We would like to make about:memory also useful for web developers and users by providing better data visualization and analysis that will help them understand the footprint of their websites and improve accordingly. You should be able to come up with useful and creative ways to visualize that data and implement those visualization using JS.
| about:memory has been a very useful tool for us developers to better understand memory consumption in Firefox and help diagnose and fix problems (See the [https://wiki.mozilla.org/Performance/MemShrink MemShrink project]). We would like to make about:memory also useful for web developers and users by providing better data visualization and analysis that will help them understand the footprint of their websites and improve accordingly. You should be able to come up with useful and creative ways to visualize that data and implement those visualization using JS.


We would still keep the original about:memory but relabel it as something like "Stats for nerds". It is important to keep the original/light-weight version since a visual-heavy implementation of about:memory will use non-trivial amounts of memory.
We would still keep the original about:memory but relabel it as something like "Stats for nerds". It is important to keep the original/light-weight version since a visual-heavy implementation of about:memory will use non-trivial amounts of memory. [http://felipe.wordpress.com/2013/04/22/aboutmemory-gsoc/ More info about this project].
| Good JS skills and knowledge/passion for data vizualization. Past work with data visualization is a big plus.
| Good JS skills and knowledge/passion for data vizualization. Past work with data visualization is a big plus.
| [mailto:gsoc@felipc.com Felipe], [mailto:jwein+gsoc@mozilla.com Jared]
| [mailto:gsoc@felipc.com Felipe], [mailto:jwein+gsoc@mozilla.com Jared]
Line 59: Line 52:
| Fullscreen Mode
| Fullscreen Mode
| One upcoming Firefox feature is a fullscreen mode that should provide an immersive experience. This mode will provide a streamlined interface as can be seen in this [http://people.mozilla.com/~shorlander/ux-presentation/01-Firefox-Australis-%28Windows%29-%28Fullscreen%29.jpg preliminary mockup]. Features such as a clock and other OS indicators (new APIs have been implemented for these from the WebAPI project) might also be part of the project.
| One upcoming Firefox feature is a fullscreen mode that should provide an immersive experience. This mode will provide a streamlined interface as can be seen in this [http://people.mozilla.com/~shorlander/ux-presentation/01-Firefox-Australis-%28Windows%29-%28Fullscreen%29.jpg preliminary mockup]. Features such as a clock and other OS indicators (new APIs have been implemented for these from the WebAPI project) might also be part of the project.
The implementation of this feature will mostly involve three languages: XUL, CSS and JS.
The implementation of this feature will mostly involve three languages: XUL, CSS and JS. [http://felipe.wordpress.com/2013/04/22/fullscreen-gsoc/ More info about this project].
| Great CSS skills are important, and knowledge of XUL/flexbox is a plus. Good JS skills. Past theme development experience would be great.
| Great CSS skills are important, and knowledge of XUL/flexbox is a plus. Good JS skills. Past theme development experience would be great.
| [mailto:gsoc@felipc.com Felipe], [mailto:jwein+gsoc@mozilla.com Jared]
| [mailto:gsoc@felipc.com Felipe], [mailto:jwein+gsoc@mozilla.com Jared]
| Felipe, Jared (felipe, jaws on IRC)
| Felipe, Jared (felipe, jaws on IRC)
|-
| Enhanced Customization APIs
| Firefox stores most of its configuration using the [https://developer.mozilla.org/en-US/docs/Mozilla/Preferences Preferences] system, which uses a plain text file in the user's profile folder to keep its name / value pairs. Certain add-ons have traditionally changed settings like the homepage and search engine by editing this file directly or using the preferences service incorrectly, and fail to revert the settings, causing much user annoyance. With the [https://wiki.mozilla.org/Features/Desktop/Enhanced_Customization_APIs Enhanced Customization APIs] project we want to change this, by moving these critical settings to a different system where the only accepted interaction is through an API that knows when to revert these changes. Storage would most likely be sqlite, so that it isn't trivial to edit from external installers.
| JavaScript and C/C++ required. Some add-on development experience is desirable.
| jorgev
| [mailto:jorge@mozilla.com jorgev] / [mailto:kmaglione@mozilla.com Kris Maglione]
|
|-
| Clearer Add-on Installation
| There's a mixed bag of features we want to implement in order to [https://wiki.mozilla.org/Features/Desktop/Clearer_Add-on_Installation improve add-on installation]. The ones we want to include in this proposal are the following: (1) Redesign external install opt-in screen ({{bug|834385}}, (2) The opt-in screen needs to support multiple add-on installs, (3)  Make it possible to completely remove globally installed add-ons from the Add-ons Manager (disable and hide), (4) Make it possible to request add-on install / uninstall from a separate process. All of these mostly concern add-ons being installed by external installers. We want to improve the [https://blog.mozilla.org/addons/2011/08/11/strengthening-user-control-of-add-ons/ opt-in screen] that shows up when they are installed that way, and other issues that will make it easier to users to control their experience. This is a group of small changes rather than a single big one, so a student would need to work closely with the mentor to direct their time appropriately.
| JavaScript required. Some C/C++ might be needed as well.
| jorgev
| [mailto:jorge@mozilla.com jorgev] / [mailto:kmaglione@mozilla.com Kris Maglione]
|
|-
| Autosuggest Search Engines
| Many websites have search fields that are used many times over, but these websites do not present themselves as search-capable in order to offer itself to be added as a search engine in the browser. [https://bugzilla.mozilla.org/show_bug.cgi?id=335448 Firefox should detect repeated search field usage] and offer that as an option to the user. At a minimum, it should be able to detect it and add an entry with "Add [website]" in the searchbar dropdown (similar to how OpenSearch works). After the detection part is working well, a refined UX for the feature can be discussed and prototyped (but that shouldn't be the focus of the project).
The student should be able to propose methods on how the detection algorithm should work and how to make improvements on it over the course of the project. [http://felipe.wordpress.com/2013/04/22/autosuggest-gsoc/ More info about this project].
| Great JS skills and understanding of DOM, HTML form fields, and algorithms (db and data structures that will be used to store and search the input field history to detect patterns of search usage)
| [mailto:gsoc@felipc.com Felipe]
| Felipe (felipe on IRC), [mailto:mnoorenberghe@mozilla.com MattN]
|
|}
|}


== Firefox for Android ==
== Thunderbird ==


{| class="standard-table" border="1" style="border-collapse: collapse"
{| class="standard-table" border="1" style="border-collapse: collapse"
Line 76: Line 91:
! Comments
! Comments
|-
|-
|}
| Thunderbird Tests
 
| Thunderbird's test coverage is not as complete as it could be. This task is to write tests, where they are missing, for Thunderbird features. We also have some contributors writing patches that were rejected because the contributor was not also able to produce a test for the feature (which can be much harder than just producing the feature/fix). So the task would also involve the student picking up and helping with these patches. Example bugs: {{bug|580349}}, {{bug|379831}}, {{bug|253830}}. It would be a great opportunity to get to know several different areas of the Thunderbird codebase.
== Firefox OS / Boot2Gecko ==
| Javascript required. Experience with mozmill or xpcshell test infrastructure an advantage.
 
| aceman
{| class="standard-table" border="1" style="border-collapse: collapse"
| [mailto:mconley@mozilla.com mconley]
|
|-
| Backend Connectors for 'Ensemble'
| mconley is writing a new address book for Thunderbird. This should be stable enough by the summer so that it is possible to write new connectors to connect to various contact storage backends. We will only be targeting read-only support this summer - writing contacts back will come later. Possible backends include: system address book on any platform, LDAP, CardDAV servers, and Google Contacts. [https://github.com/mikeconley/thunderbird-ensemble/wiki/Contact-Service-Connector-API-Proposal-Draft The connector API is specified here, but may evolve during the project]. Applicants should specify which backend they're interested in implementing, and should be highly proficient in Javascript. C/C++ is a bonus, but not entirely necessary. Previous experience working with their chosen backend is highly desirable. Thorough tests for the new connector will be expected.
| JS, although some C/C++ for native may be necessary
| jcranmer
| [mailto:mconley@mozilla.com mconley]
|-
|-
! Title
| Mailbox-to-Maildir Converter
! Details
| Mailbox and Maildir are two alternative on-disk storage formats for email messages. Thunderbird currently uses Mailbox, but wants to use Maildir. Hence the need for a converter. This is one of the last critical pieces blocking moving away from mbox-style mailboxes. See {{bug|856087}}.
! Skills Needed
| C++, although some JS may be necessary
! Reporter
| jcranmer
! Mentor(s)
| [mailto:Pidgeot18@verizon.net jcranmer]
! Comments
|
|}
|}


Line 100: Line 122:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|}
== Thunderbird ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
|-
! Title
| Make Lightning Fast
! Details
| The Lightning Extension has a few performance problems, especially with lots of calendars. Now that the [http://mikeconley.ca/blog/2012/06/15/gecko-profiler-now-works-in-thunderbird-daily/ Gecko Profiler] works in Thunderbird Daily, its a great time to harness its power and improve Lightning's performance. A Student working on this project should:
! Skills Needed
# [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=keyword%3Aperf%20prod%3Acalendar&list_id=6253887 Browse Bugzilla] to get an overview of reported performance problems.
! Reporter
# Use the Gecko Profiler to identify performance bottlenecks, for example occurrence calculation.
! Mentor(s)
# Propose a method to improve performance in a way that would move the bottleneck elsewhere and discuss with mentor.
! Comments
# Fix the bottleneck.
|}
# Continue with (2).
 
== SeaMonkey ==
 
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
! Title
! Details
! Skills Needed
! Reporter
! Mentor(s)  
! Comments
|}
 
==NSS (Network Security Services)==


{| class="standard-table" border="1" style="border-collapse: collapse"
Depending on remaining time and student experience, adding performance tests to Lightning would be a bonus.
| Javascript; Python and make for perf tests
| Philipp (:Fallen)
| Ludovic (:ludovic)
| A student applying for this project should be able to work with large codebases. Getting familiar with the Lightning source code early improves chances of being accepted. Look for Fallen on irc.mozilla.org / #calendar if you need help getting started.
|-
|-
! Title
| Improve Calendar Backends
! Details
| Lightning has historically supported two modes for calendar providers: cached and uncached. In uncached mode, each request is directly relayed to the remote end, causing a lot of traffic. Therefore, cached mode was introduced, which is close to a "real" synchronization, where only changes are transferred. In the future it would be nice to use cached mode exclusively. To do so, there need to be some changes in the backend. This project consists of a combination of the following bugs, depending on time and student skill:
! Skills Needed
* Finish the patch I started for async storage ({{bug|501689}})
! Reporter
* Move calendar metadata from the [http://mxr.mozilla.org/comm-central/source/calendar/base/public/calIChangeLog.idl#83 provider inteface] to the [http://mxr.mozilla.org/comm-central/source/calendar/base/public/calIItemBase.idl item interface] (no bug yet)
! Mentor(s)  
* Turn the ICS calendar into a cache-only provider ({{bug|780992}})
! Comments
* Turn the CalDAV calendar into a cache-only provider (no bug yet)
| Javascript, SQL,
| Philipp (:Fallen)
| Mohit (:redDragon)
| As these changes will partially require some migration steps, it is important to write unit tests for the code produced during the Summer of Code. Not all of the mentioned bugs need to be fixed for passing mid-terms and finals, please read through the bugs and consult with mentor or reporter with your suggestion when applying.
|}
|}


Line 149: Line 160:
! Comments
! Comments
|-
|-
| Update Code Review module and user experience on bugzilla.mozilla.org (BMO)
| Fix Code Review on BMO
| The current Splinter extension which provides code review capabilities on BMO [https://wiki.mozilla.org/BMO/Splinter can be updated quite a bit]. We want to pave the way toward integration with CodeReview.js from the Webkit project. Specifically, we want to integrate the Splinter review functionality with the PatchReview Perl module and experiment with integrating that with the [http://trac.webkit.org/browser/trunk/Websites/bugs.webkit.org/code-review.js#L1095 CodeReview.js tool].
| The current Splinter extension which provides code review capabilities on bugzilla.mozilla.org (BMO) [https://wiki.mozilla.org/BMO/Splinter can be updated quite a bit]. We want to pave the way toward integration with CodeReview.js from the Webkit project. Specifically, we want to integrate the Splinter review functionality with the PatchReview Perl module and experiment with integrating that with the [http://trac.webkit.org/browser/trunk/Websites/bugs.webkit.org/code-review.js#L1095 CodeReview.js tool].
| JavaScript, CSS, and Perl web development
| JavaScript, CSS, and Perl web development
| Byron Jones (IRC: glob)
| Byron Jones (IRC: glob)
| Byron Jones (IRC: glob)
| Byron Jones (IRC: glob)
|
|
|}
== Web Apps and Libraries ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
! Title
! Details
! Skills Needed
! Reporter
! Mentor(s)
! Comments
|-
|-
| Web Audio Compatibility project
| Bugzilla-MediaWiki Extension
| The Web Audio API is landing fully-formed and spec-compliant in Firefox 22, however most of the code in the wild was written when this API landed and have not been updated to the version of the spec that Firefox supports. This project would target any and all open source libraries, games and applications that use Web Audio API and ensure that they work properly with Firefox's implementation.
| <b>Note: this project is being done under the Wikimedia Foundation umbrella, and is copied here for publicity purposes only. You need to apply to them, not to us, if you want to do it. See [http://www.mediawiki.org/wiki/Summer_of_Code_2013#Bugzilla-MediaWiki_extension their page].</b> Mozilla has developed a MediaWiki-Bugzilla extension which allows for read-only inclusion of Bugzilla lists and charts in MediaWiki pages. For example, it is used to provide "Mentored Bugs" sections. It could also be used for basic prioritization, ToDo lists for projects, metrics... This project consists in enhancing this extension by making API calls more robust (i.e. when receiving 1000s of results), allowing more types of charts, providing good test coverage and user documentation.
| Some expertise in JavaScript, Web Audio, Git/Github, blogging and being polite.
| PHP, Javascript, JSON, Bugzilla
| Jeff Griffiths
| Brandon Savage (Mozilla), Sam Reed (Wikimedia)
| [mailto:jgriffiths@mozilla.com Jeff Griffiths] / [mailto:ehsan@mozilla.com Ehsan Akhgari]
| Brandon Savage (Mozilla), Sam Reed (Wikimedia)
|
|
|}
|}
Line 187: Line 186:
! Comments
! Comments
|-
|-
| Expand unit tests for Mozbase components
| Unit Tests for Mozbase
| [https://github.com/mozilla/mozbase Mozbase] is a set of low level Python classes that all of Mozilla's automated test harnesses will soon be [https://wiki.mozilla.org/Auto-tools/Projects/MozBase refactored to use]. As we gradually move through this process, we want to ensure that all our modules have explicit unit tests for their targeted use cases. We will work with interested volunteers to define a set of test cases that need to be added, and work with them to add those cases.
| [https://github.com/mozilla/mozbase Mozbase] is a set of low level Python classes that all of Mozilla's automated test harnesses will soon be [https://wiki.mozilla.org/Auto-tools/Projects/MozBase refactored to use]. As we gradually move through the process of converting all our test harnesses to use Mozbase, we want to ensure that all our harness modules have explicit unit tests for their targeted use cases - i.e. tests for the test harness :-). We will work with interested volunteers to define a set of test cases that need to be added, and work with them to add those cases.
| Python, JavaScript
| Python, JavaScript
| Clint Talbert (IRC: ctalbert)
| Clint Talbert (IRC: ctalbert)
| Clint Talbert (IRC: ctalbert)
| Clint Talbert (IRC: ctalbert)
|
|
|}
== Firefox Support (SUMO) ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
|-
! Title
| Improve Usefulness and Ergonomics of Peptest
! Details
| [https://wiki.mozilla.org/Community:SummerOfCode13 Peptest] is a test framework that was written to test the responsiveness of Firefox. In it's current state it is more of a proof of concept that still needs to be fleshed out with all the bells and whistles that will make it truly useful to developers. Some tasks include integration with the built-in [https://developer.mozilla.org/en-US/docs/Performance/Profiling_with_the_Built-in_Profiler profiler], using [https://developer.mozilla.org/en-US/docs/Marionette Marionette] as a back-end to drive tests (will also make it easier to run peptests on mobile platforms), improvements to the API exposed to test authors, multitude of other minor tweaks that help make the Peptest experience as painless as possible.
! Skills Needed
| Python and javascript
! Reporter
| Andrew Halberstadt (irc: ahal)
! Mentor(s)  
| Andrew Halberstadt (irc: ahal)
! Comments
|
|}
 
== QA ==
 
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
! Title
! Details
! Skills Needed
! Reporter
! Mentor(s)  
! Comments
|}
|}


Line 229: Line 211:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|}
== Mozilla IT and Infrastructure ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
|-
! Title
|MDN CSS Generation Tools
! Details
| The task is to create 6 visual and interactive tools to be added into the Mozilla Developer Network website that allow people to generate CSS with complex effects in an easy way. Some examples of CSS features which would benefit from such a tool: gradients (linear and radius), border-radius, border-image, color picker, &-code finder, ...  Example of such tool (rough): https://developer.mozilla.org/en-US/docs/CSS/Tools/Cubic_Bezier_Generator
! Skills Needed
| You need to know about JS (good), CSS (basic), HTML (basic)
! Reporter
| Jean-Yves Perrier
! Mentor(s)  
| [mailto:jperrier@mozilla.com Jean-Yves Perrier] (irc: teoli)
! Comments
| In your application, you should list the tools you would create. You should submit 8 tool ideas, and the ones you will actually do will be agreed at the beginning of the project. Success will be measured if 6 of these tools are implemented, reviewed and live in the MDN.
|}
 
== Persona / BrowserID ==
 
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
|-
! Title
| Localization Dashboard
! Details
| Build a Localization Dashboard for the Mozilla Developer Network (MDN) to help contributors view localization progress and find articles that need to be localized. The dashboard should be somewhat similar to the existing [https://developer.mozilla.org/dashboards/revisions Revision Dashboard]. Over the course of the summer, the student should build a [https://en.wikipedia.org/wiki/Minimum_viable_product minimum viable product] and work with the MDN team to iterate on it, making as many improvements as time allows.
! Skills Needed
| HTML, CSS, JavaScript, Python
! Reporter
| John Karahalis (openjck)
! Mentor(s)  
| John Karahalis (openjck)
! Comments
|
|}
|}


== Sync / Services ==
== Rust ==


{| class="standard-table" border="1" style="border-collapse: collapse"
{| class="standard-table" border="1" style="border-collapse: collapse"
Line 265: Line 237:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|}
== Developer Tools ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
|-
! Title
| Rust Debug Symbol Generation
! Details
| [http://www.rust-lang.org/ Rust] is a new compiled programming language that Mozilla is working on. At the moment, Rust programs are tricky to debug when they don't work because they lack debugging symbols. This work has been started, but for many core Rust features the current debugging support is little to none. The goal of this project would be to support building the self-hosted (i.e. written in Rust) compiler with full debugging symbols enabled, and fill out the suite of automated gdb tests to ensure that the debugging support does not regress in the future. The project will require making use of [http://llvm.org/ LLVM]'s [http://llvm.org/docs/SourceLevelDebugging.html source-level debugging features] and building on the debugging support that [https://github.com/mozilla/rust/blob/master/src/librustc/middle/trans/debuginfo.rs already exists in the compiler].
! Skills Needed
| Rust, LLVM experience beneficial
! Reporter
| [mailto:josh@joshmatthews.net Josh Matthews] (jdm)
! Mentor(s)  
| [mailto:josh@joshmatthews.net Josh Matthews] (jdm)
! Comments
| Practical experience with Rust is rare. Therefore, any student interested in this project should take some time to become familiar with Rust so that the actual project time is spent on practical work instead of learning the language.
|}
|}


Line 289: Line 256:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|-
|NPM Support for SDK
|The add-on SDK (previously known as Jetpack) has no good story for dependency management. It would be great if SDK users could use [https://npmjs.org/ npm] - the Node Packaged Modules system from node.js - for publishing and installing reusable SDK modules.
|Javascript, NodeJS
|gozala
|[mailto:igozalishvili@mozilla.com gozala]
|}
|}


Line 306: Line 279:
|JavaScript, User experience design
|JavaScript, User experience design
|gvwilson
|gvwilson
|gvwilson
|[mailto:greg@mozillafoundation.org gvwilson]
|
|
|}
== Release Engineering ==
{| class="standard-table" border="1" style="border-collapse: collapse"
|-
|-
! Title
| Meemoo Media Server
! Details
| Meemoo is a framework for connecting open-source modules, powered by any web technology - "hackable web apps". This task is to design a method to record audio and video locally, using WebRTC streaming to a local Node.js server. Saving images could also be a good goal. It should be easy to save media and then bring it back into the [http://www.meemoo.org Meemoo] app.
! Skills Needed
| JavaScript, WebRTC, Node.js
! Reporter
| Forrest Oliphant
! Mentor(s)
| [mailto:forrest@sembiki.com Forrest Oliphant]
! Comments
|
|-
| Design Hacktivities
| http://meemoo.org/ is browser-based data flow coding environment. The goal is to bring more people, including children, to the world of open source creative coding with instantly-hackable creative apps that run in the browser. "Hacktivies" are activities that encourage playful exploration with images and code. For this project, you should prototype and design ways to bridge the digital/analog high/low tech code/craft divide. http://meemoo.org/hack-our-apps/ for some examples. A successful proposal will include some creative output made with Meemoo to show understanding of the system.
| JavaScript, craft, activity design, graphic design, writing
|
| [mailto:forrest@sembiki.com Forrest Oliphant]
|
|}
|}


Line 338: Line 313:
| JavaScript, XPCOM, XUL
| JavaScript, XPCOM, XUL
| Florian Quèze
| Florian Quèze
| Florian Quèze
| [mailto:florian@instantbird.org Florian Quèze]
| The frontend should be flexible enough to be able to handle other file transfer methods when they are implemented, e.g. WebRTC for XMPP or DCC for IRC.
| The frontend should be flexible enough to be able to handle other file transfer methods when they are implemented, e.g. WebRTC for XMPP or DCC for IRC.
|-
|-
| Additional JavaScript protocol plug-ins
| Additional JavaScript Protocol Plug-ins
| '''Goal:''' Implement new protocol plug-ins in JavaScript, or create more stable implementations of existing ones.
| '''Goal:''' Implement new protocol plug-ins in JavaScript, or create more stable implementations of existing ones.
'''Description:''' Instantbird supports protocol plugins implemented in JavaScript, in addition to the C libpurple plugins. The student will either add support for new protocols in Instantbird (if so, explain why this protocol matters) or reimplement in JavaScript a protocol that is poorly supported by libpurple (if so, explain what will be better supported in the new implementation, or why the current implementation is not adequate). All new protocol plugins will go through a strict code review to ensure high code quality. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JS protocol plugins. Please name the protocol or protocols to be worked on in your application.
'''Description:''' Instantbird supports protocol plugins implemented in JavaScript, in addition to the C libpurple plugins. The student will either add support for new protocols in Instantbird (if so, explain why this protocol matters) or reimplement in JavaScript a protocol that is poorly supported by libpurple (if so, explain what will be better supported in the new implementation, or why the current implementation is not adequate). All new protocol plugins will go through a strict code review to ensure high code quality. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JS protocol plugins. Please name the protocol or protocols to be worked on in your application.
| JavaScript, XPCOM, maybe js-ctypes
| JavaScript, XPCOM, maybe js-ctypes
| Patrick Cloke
| Patrick Cloke
| Florian Quèze for JS-SIP, Patrick Cloke for other protocols
| [mailto:florian@instantbird.org Florian Quèze] for JS-SIP, [mailto:clokep@gmail.com Patrick Cloke] for other protocols
| IRC, XMPP, Twitter and OSCAR (AIM/ICQ) have been (or are in the process of being) implemented and should not be considered.
| IRC, XMPP, Twitter and OSCAR (AIM/ICQ) have been (or are in the process of being) implemented and should not be considered.
|-
|-
Line 354: Line 329:
| JavaScript, maybe XUL, XPCOM
| JavaScript, maybe XUL, XPCOM
| Florian Quèze
| Florian Quèze
| Florian Quèze
| [mailto:florian@instantbird.org Florian Quèze]
|
|-
| Skype protocol plug-in
| '''Goal:''' Support Skype chat features as protocol plug-in.
'''Description:''' Microsoft will soon dropping support for MSN/WLM, they suggest that all users migrate to Skype. The student is expected to implement support for Skype chat (private messages and multi-user chats) using the SkypeKit SDK.
 
This project does not need to support voice/video chat to be considered a success. Access to SkypeKit can be provided to a student participating in this project. This may need to be implemented as an extension.
| C++, XPCOM
| Patrick Cloke
| Patrick Cloke
|
|
|-
|-
| "Awesometab"
| Instantbird Awesometab
| '''Goal:''' Create a tab that "knows" what conversation you want to open (like the "[http://www.dria.org/wordpress/archives/2008/04/17/628/ awesomebar]").
| '''Goal:''' Create a tab that "knows" what conversation you want to open (like the "[http://www.dria.org/wordpress/archives/2008/04/17/628/ awesomebar]").
'''Description:''' The current "Join Chat" dialog is ugly and difficult to use. A user should be able to open a new tab to create a new conversation which will auto-complete fields based on history and server information (e.g. LIST from IRC).
'''Description:''' The current "Join Chat" dialog is ugly and difficult to use. A user should be able to open a new tab to create a new conversation which will auto-complete fields based on history and server information (e.g. LIST from IRC).
| JavaScript, XPCOM, XUL, maybe some protocol interactions?
| JavaScript, XPCOM, XUL, maybe some protocol interactions?
| Florian Quèze
| Florian Quèze
| Florian Quèze, aleth
| [mailto:florian@instantbird.org Florian Quèze], aleth
|
|
|}
|}


== Emscripten ==
== Security Engineering ==


{| class="standard-table" border="1" style="border-collapse: collapse"
{| class="standard-table" border="1" style="border-collapse: collapse"
Line 386: Line 351:
! Mentor(s)  
! Mentor(s)  
! Comments
! Comments
|}
|-
 
| Project Janus
== Security Engineering ==
| Build a Firefox addon that emulates dynamic profile switching, like Chrome supports signing in as multiple profiles. The actual profile-switching code is out of scope of a GSoC project, but writing a visual stub that users can interact with would give us valuable information as to what kind of support (real multiple profiles, Guest Mode, Private Mode) are most useful to people. The addon would need to collect metrics, e.g. how often to people switch profiles, how many profiles does an average user need, how many sites to people access across multiple profiles. Building a Chrome extension to collect the same metrics would also be very useful.
| Javascript, Addon SDK
| Monica Chew (mmc)
| Monica Chew (mmc), Tanvi Vyas (tanvi)
| This is primarily a quantitative user experience project.
|-
| Security Report
| It can be tricky for a developer to cover all their bases when it comes to security.  Moreover, information about the security of a website can be difficult for advanced users to find without searching through multiple data sources in the browser (error console, cookie manager, certificate manager, etc.)  This project is to build a Firefox addon that reports all of this data in one place.  Developers can then view the report for their websites or pre-production pages and quickly identify their security issues.  Advanced users can quickly learn about a website's security before deciding whether or not they want to enter sensitive information on the page.


{| class="standard-table" border="1" style="border-collapse: collapse"
Here are some examples of what the security report could include:
|-
* information about network requests that have been blocked by the browser for security reasons (e.g. mixed content, CSP, CORS)
! Title
* information about the cookies on the site (are they marked secure, do they have the httponly attribute?)
! Details
* security related headers (does the site set STS, CSP, or X-Frame-Options headers?)
! Skills Needed
* SSL information (is the websites ssl certificate about to expire?)
! Reporter
| JavaScript, Add-on SDK, some platform knowledge.
! Mentor(s)  
| Mark Goodwin (mgoodwin), Tanvi Vyas (tanvi)
! Comments
| Mark Goodwin (mgoodwin), Tanvi Vyas (tanvi)
|}
|}
Account confirmers, Anti-spam team, Confirmed users, Bureaucrats and Sysops emeriti
4,925

edits