|
|
Line 52: |
Line 52: |
| | | | | |
| |- | | |- |
| | Download Integrity
| |
| | Enhance detection of broken downloads in Firefox. Methods may include:<ul><li>[http://www.w3.org/TR/SRI/#the-a-element-1 Subresource Integrity for the <a> element]<li>[[Features/HTTP_Digest_header_verification#Stage_1:_Definition|HTTP Digest header verification]]<li>Network-level indications like bad HTTP framing</ul>The activities include:<ul><li>Implement the front-end in JavaScript to display failed integrity checks<li>Implement and/or use the required back-end features in C++<li>Work with the Mozilla community to discuss and refine the behavior of the feature, including which methods should be implemented first</ul>
| |
| | C++, JavaScript
| |
| | Paolo
| |
| | Paolo
| |
| |
| |
| |} | | |} |
|
| |
|
Line 123: |
Line 117: |
| | ? | | | ? |
| | Summer of Code is about coding, not about UX work; asking students to do UX work often leads to disappointing results -- florian. This may be too large a task; narrowing focus could be useful. | | | Summer of Code is about coding, not about UX work; asking students to do UX work often leads to disappointing results -- florian. This may be too large a task; narrowing focus could be useful. |
| |-
| |
| | Alternate protocol for mailnews folders
| |
| | Thunderbird has long-term plans to implement a variety of mail and mail-like protocols to be managed as mailnews folders. An existing addon (SkinkGlue) exists to provide the glue for this. Implement one other protocol, which might be Twitter, Fastmail's JMAP, or Calendar events & tasks
| |
| | JavaScript
| |
| | rkent
| |
| | rkent and, depending on protocol, a chat guy (clokep?), brong from Fastmail, or Fallen
| |
| | I doubt having 2 twitter implementations in Thunderbird is a valuable investment of time. JMAP seems the most promising protocol idea here; do we know if brong is on board to (co-)mentor this? Even though the code would be primarily written in JS, I suspect having some C++ skills to be able to understand some of mailnews' internals would be very helpful.
| |
| |- | | |- |
| | Integrated pdf.js support in thunderbird (bug 810815) | | | Integrated pdf.js support in thunderbird (bug 810815) |
Revision as of 12:41, 20 February 2015
Mozilla community members - submit proposals here for 2015 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.) The absolute last deadline for submitting ideas in time to help us get accepted by Google is February 20th.
Are you a students looking to apply to SoC with Mozilla? Your first stop should be the official list of ideas. This page is full of weird and whacky ideas, some of which are still on here for a reason - it could be that they are not properly defined, the wrong size, or don't have a mentor. That makes them less likely to get accepted. You can, of course, also submit your own ideas - you don't have to put an idea on this page and get it 'made official' in order to send in a proposal for it.
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 below for your part of Mozilla, add one!
Mozilla Platform (Gecko)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox Performance Dashboard
|
This project would implement the dashboard described in bug 1132498. Collecting the memory and CPU usage of addons and webpages and displaying it in a fashion that shows bad actors would be valuable for power users.
|
HTML, CSS, JavaScript
|
jdm
|
|
|
Firefox Developer Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox for Android
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox OS / Boot2Gecko
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Thunderbird
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Performance testing
|
Add and deploy a performance testsuite for Thunderbird to catch regressions in areas such as startup, message search, folder display, message display, etc.
|
JavaScript, Python, preferably some performance analysis experience
|
jcranmer
|
?
|
Needs a mentor -- florian
|
Secure email UI
|
Develop good interfaces for key management and illustrating the security levels of messages succinctly, preferably applicable to both S/MIME and OpenPGP.
|
Strong UX experience; JS, XUL or HTML; crypto background advantageous
|
jcranmer
|
?
|
Summer of Code is about coding, not about UX work; asking students to do UX work often leads to disappointing results -- florian. This may be too large a task; narrowing focus could be useful.
|
Integrated pdf.js support in thunderbird (bug 810815)
|
Firefox ships with integrade PDF viewing capabilities using pdf.js. This functionality is not present in Thunderbird yet but would obviously be useful.
|
JavaScript
|
mkmelin
|
?
|
Unclear about how much work it is.
|
Instantbird
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Improve the JavaScript XMPP implementation and implement new features.
|
Includes better error handling, implementing multi-user chats (MUCs), test coverage and adding new/missing features. Feature-parity with libpurple's XMPP implementation is one of the prerequisites for replacing it with the JavaScript implementation and is an end-goal of this project. Students are expected to compile a list of bugs or unimplemented features in the JavaScript XMPP code.
|
JavaScript, XPCOM, an understanding of XMPP is desired
|
Florian Quèze
|
aleth, Patrick Cloke
|
|
Implement a new protocol plug-in in JavaScript
|
Instantbird supports protocol plugins implemented in JavaScript. The student will add support for a new protocol in Instantbird. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JavaScript protocol plugins (IRC, XMPP, Yahoo and Twitter). It is expected that the student research the feasibility of interoperability concerns of the protocol during the application period. Students are expected to implement a protocol they use on a day-to-day basis to dog-food the code.
|
JavaScript, XPCOM, maybe js-ctypes, understanding of network protocols
|
Patrick Cloke
|
Patrick Cloke
|
Possible protocols include: Google Hangouts, Facebook, WhatsApp, SIP, Bonjour, OSCAR, TextSecure or Telegram
|
File transfer support
|
API design, backend implementation, frontend UI for supporting file transfers in Instantbird.
|
XPCOM, JavaScript, webrtc, networking protocols
|
nhnt11
|
Patrick Cloke
|
|
Infinite scroll
|
Add additional messages from the logs on-demand as the user scrolls up/down. Old messages should be removed when no longer needed, while not breaking any existing features.
|
JavaScript, XUL, CSS
|
nhnt11
|
nhnt11 + ???
|
|
Calendar
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
SeaMonkey
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
NSS (Network Security Services)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Bugzilla
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox Support (SUMO)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
QA
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Automation & Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Documentation
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla Developer Network
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla IT and Infrastructure
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Sync / Services
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Developer Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Add-on SDK
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Foundation
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
OpenArt
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
NoFlo-UI
|
Implement an UI widget on noflo-ui. It could be a timeline (see this issue), plugins for IIP editing or packet display for particular data types. Considering the timeline widget, an initial prototype could be a component library (see noflo-tween). Proposals should include sketches and an implemented prototype (pull requested to noflo-ui).
|
javascript, coffeescript, ux
|
Forresto
|
Forresto
|
NoFlo is a JS dataflow implementation and has runtimes for browser, image processing (imgflo), microcontrollers (microflo), SuperCollider (sndflo) and other targets. Flowhub is the browser-based IDE for the creation of NoFlo graphs.
|
Tween.JS
|
Port Tween.js to ES6 and make it a modern citizen of the JS world
|
javascript, web animations, graphics
|
Sole
|
Sole
|
Tween.JS is a small engine for declaring and running interpolations between values. It's used in interactive experiences, games and all sorts of projects.
|
Animated_GIF
|
Refactor and build a version 2, splitting the library into independent reusable modules. Also work on compatibility with Firefox OS.
|
javascript, web animations, graphics, web workers, pixel handling, canvas
|
Sole
|
Sole
|
Animated_GIF is a library for generating Animated GIFs on the browser. It's used in demo apps in mozilla, some properties at webmaker, the wildly successful chat at meatspac.es and who knows where else.
|
Create image filters using NoFlo
|
It's possible to start prototyping image filters using Flowhub (use Filter Forge's filters as inspiration and our porting of some Instagram filters) and components libraries like noflo-image and noflo-canvas, then port the filters to imgflo. Another option is to create filters directly on imgflo using GEGL. Proposals should include a running NoFlo graph for a non-trivial image filter, together with sketches and original/processed images. Imgflo+GEGL filters are preferred. Pull requests to noflo-image and imgflo are a plus.
|
javascript, coffeescript, noflo, cpp, computer vision basics
|
Vilson Vieira
|
Vilson Vieira
|
NoFlo is a JS dataflow implementation and has runtimes for browser, image processing (imgflo), microcontrollers (microflo), SuperCollider (sndflo) and other targets. Flowhub is the browser-based IDE for the creation of NoFlo graphs. GEGL is a graph-based image processing framework used by imgflo (it's also possible to use noflo-canvas instead of GEGL, but GEGL is preferred due to performance reasons).
|
Release Engineering
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Decouple Mozharness internals by breaking it into standalone modules
|
What is Mozharness: It's a configuration-driven script harness that is used for automating > 90% of Mozilla's build and test jobs. It is also used by release engineering services outside of continuous integration.
What needs to decoupled: Mozharness has reached some scaling issues. Jobs that do builds and tests inherit and share exhaustive number of mixins. This leads to a complicated Method Resolution Order and objects with too many attrs that are not even needed.
How can this be done: replace the mixins with standalone classes that act as services. The classes can be instantiated many times and are aware of only their own responsibilities. Once stand alone, you then make them into packages within a mozharness library and installable by pip.
The benefit:
- better scalability
- more pythonic so the entry for contribution is less intimidating
- tools outside of mozharness can avail of subcomponents of mozharness
steps and goals for gsoc:
- part (1) take mixins like log.py, config.py, buildbot.py, python.py, signing.py, and tooltool.py and convert them from mixins to standalone classes
- part (2) turn the now standalone classes into python packages
|
python, solid programming skills, enthusiasm
|
Jordan Lund, Armen Zambrano
|
Jordan Lund
|
more details:
|
Emscripten
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Rust
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Rust Code Completion for SublimeText
|
This project would develop a plugin for the Sublime Text editor that provides code completion for the Rust programming language, by integrating with the Rust [Racer](https://github.com/phildawes/racer) project. This would require interfacing between Python (for the Plugin) and Rust (for Racer).
|
Rust, Python
|
pnkfelix
|
pnkfelix
|
|
Servo
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Security Engineering
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Localization
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Build system
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Security Assurance
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla Science Lab
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|