[[IMAGE: MozillaAtSeneca3.jpg]]
[http://www.senecac.on.ca Seneca College] and [http://www.mozilla.com Mozilla] are working on many joint research and development projects. These projects are listed below. Many of the projects below are part of the [[DPS909]] or [[OSD600]] courses.
For more information about what [http://www.senecac.on.ca Seneca] is doing with [http://www.mozilla.com Mozilla] and other open source projects, see the [[Main Page]].
= Introduction =
== Active Projects ==
=== [[Mozilla@Seneca Wiki Administration]] ===
This wonderful wiki needs attention too! Already there are configuration issues that need to get fixed, extensions we could be using, etc. As we push further with this, we'll come up with more things too. This work will require knowledge of PHP, server administration, knowledge of [http://www.mediawiki.org/wiki/MediaWiki MediaWiki].
=== [[CSS guideBugfixing on the GFX backend]] === The GFX backend for Firefox 3 has been ripped out and re-written, and it requires some debugging and small amounts of implementation work on Linux and Mac. Assist the GFX developers to ship their product for the start of the new year. === [[Plugin-watcher]] === Firefox sometimes gets a bad reputation for crashing or locking up when a plugin such as Adobe Flash or Windows Media Player causes the problem. Add code to Firefox (or write an extension) so that when a plugin misbehaves, a dialog is presented informing the user so that they can take corrective action (disabling the plugin) or filing a bug with the right party (this warning could be similar to the warning that appears when a JS script in a web page hogs too much CPU time. As a minimum it should identify that a plugin is to blame; better would be to inform the user of the plugin's name; best would be to provide an option to temporarily disable the plugin). === [[Add support for more compilers to distcc]] === An earlier project added multi-compiler support to distcc, and then MSVC support. The framework is now in place to support even more compilers. Add support for another compiler, perhaps Java, C#, or something else. === [[Buildbot and EC2]] === The Buildbot is software for automatically building and testing other software. EC2 is Amazon's "Elastic Compute Cloud", a service that lets you run Virtual Machines on Amazon's computing grid using a web API. It would be awesome if BuildBot had an EC2 module, and could spawn Virtual Machines on-demand to perform tasks. Conveniently, BuildBot is written in Python, and there's a Python library for interfacing with EC2. === [[Automated localization build tool]] ===This tool will help localizations e.g. en-CA to get a build of it without having to "from" from another localization like en-GB * References: Mic, Alix, Axel === [[Desktop Social Networking Integration]] ===
The Alter [http://developerwiki.mozilla.org Mozilla Developer Center/Labs/The_Coop The Coop] would like to add a CSS guide to its set experimental extension so it uses generic API instead of major documents, covering at least Facebook specifically; put the top 100 CSS properties generic API in use on the web today"desktop data engine" also used by [http://live. This data can be obtained through tools gnome. It should include numerous examples, org/OnlineDesktop/Sidebar BigBoard] (and a fair number of small tutorial/how-to sections for different common tasks or requests from web authorshopefully other desktop apps in the future). Resources: RH online desktop team.
Reference: === [http://developer.mozilla.org/en/docs/CSS_Reference CSS Reference[Tinderbox front page improvements]]===
[http://tinderbox.mozilla.org/showbuilds.cgi?tree=== Firefox Tinderbox] is a web app showing the results of multiple machines building Firefox, running unit tests on it, and running performance tests on it, all on three different platforms (Windows, Linux, Mac). The display is very crowded right now, and can be difficult to read. In addition, some of the interesting information (changes in performance, for example) are hard to notice. The tinderbox server software recently was updated to include [[Mozilla@Seneca Cluster Administrationhttp://www.json.org/ JSON]] ===output, which means that webpages can now easily access the data to build their own displays. Using this data, create a new display for the Tinderbox data that helps developers monitor the status of the builds and performance data.
Administration of * [http://tinderbox.mozilla.org/Firefox/json.js Tinderbox JSON data]* [http://people.mozilla.org/~rhelmer/mockups/tinderbox/ajax.html An example page using the Mozilla cluster at Senecadata]* [http://mavra.perilith.com/~luser/tboxtest.html Another example page using the data]. (Requires a [http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ recent Firefox 3 build])
=== [[Mozilla Metrics]] ===
Create a source code server to work with Mozilla's current symbol server. This will allow users to do full debugs of nightly release builds with access to remote symbols and full source code.
=== [[Testing of Canadian Banking and Financial Sites in MozillaRadio Button Bookmarks Extension]] ===
This project will focus on improving the user experience at banking and other financial sites for Canadian Mozilla usersCreate an extension to provide [http://groups. This includes determining which sites are relevant, insuring proper behavior for Firefox 3 on these sites, etcgoogle.com/group/mozilla.dev.apps.firefox/browse_thread/thread/f2eeb10d0436af3f radio-button style bookmarks].
References: http://quality.mozilla.org/node/293 === [[CSS guide]] ===
=== The [[ Improve http://developer.mozilla.org Mozilla Application Developer Center] would like to add a CSS guide to its set of major documents, covering at least the top 100 CSS properties in use on the web today. This data can be obtained through tools . It should include numerous examples, and Platform Documentation]] ===a fair number of small tutorial/how-to sections for different common tasks or requests from web authors.
Not enough is understood about the various communities and companies who develop with Mozilla, as opposed to those who work on the Mozilla code itselfReference: [http://developer. A proper survey needs to be conducted in order to find out which APIs are being used and how, what is hard, what could be improved, etcmozilla. The Mozilla Platform Application Developers is interested in changing this. Their goal is to work with the Mozilla development community to survey, understand, and document the current state of the art. In this project you will work with the mozpad community to connect with projectsorg/en/docs/companies in orbit around Mozilla and do interviews with their developers. You will then document this information.CSS_Reference CSS Reference]
=== [[Web-based Virtual Machine Management]] ===
Create a web-based rapid provisioning system for virtual machines, building on work started by Ben Hearsum. A user could select an operating system, toolchain, and source branch and the VM would be configured and started (using Xen, KVM, or another hypervisor/backend).
=== [[Buildbot Support For OpenID]] ===OpenID is an open, decentralized, free framework for user-centric digital identity. It's built on existing web technologies so that it can work without special support in the browser. However, tighter browser integration could allow for increased security and easier management. See bug 356853. Needs definition as to exactly what should be done and EC2how. Could be initially implemented as an extension. === [[Mozilla@Seneca Wiki Administration]] ===This wonderful wiki needs attention too! Already there are configuration issues that need to get fixed, extensions we could be using, etc. As we push further with this, we'll come up with more things too. This work will require knowledge of PHP, server administration, knowledge of [http://www.mediawiki.org/wiki/MediaWiki MediaWiki].
The Buildbot is software for automatically building and testing other software. EC2 is Amazon's "Elastic Compute Cloud", a service that lets you run Virtual Machines on Amazon's computing grid using a web API. It would be awesome if BuildBot had an EC2 module, and could spawn Virtual Machines on-demand to perform tasks. Conveniently, BuildBot is written in Python, and there's a Python library for interfacing with EC2.=== [[Mozilla@Seneca Cluster Administration]] ===
=== [[Automated localization build tool]] ===This tool will help localizations eAdministration of the Mozilla cluster at Seneca.g. en-CA to get a build of it without having to "from" from another localization like en-GB
* References: Mic, Alix, Axel=== [[Testing of Canadian Banking and Financial Sites in Mozilla]] ===
=== [[Desktop Social Networking Integration]] ===This project will focus on improving the user experience at banking and other financial sites for Canadian Mozilla users. This includes determining which sites are relevant, insuring proper behavior for Firefox 3 on these sites, etc.
Alter [References: http://wikiquality.mozilla.org/Labs/The_Coop The Coop] experimental extension so it uses generic API instead of Facebook specifically; put the generic API in the "desktop data engine" also used by [http:node//live.gnome.org/OnlineDesktop/Sidebar BigBoard] (and hopefully other desktop apps in the future). Resources: RH online desktop team.293
=== [[Tinderbox front page improvementsImprove Mozilla Application and Platform Documentation]] ===
[http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox Tinderbox] Not enough is a web app showing understood about the results of multiple machines building Firefoxvarious communities and companies who develop with Mozilla, running unit tests as opposed to those who work on it, the Mozilla code itself. A proper survey needs to be conducted in order to find out which APIs are being used and running performance tests on ithow, all on three different platforms (Windowswhat is hard, Linuxwhat could be improved, Mac)etc. The display Mozilla Platform Application Developers is very crowded right now, and can be difficult to read. In addition, some of the interesting information (changes interested in performance, for example) are hard to noticechanging this. The tinderbox server software recently was updated Their goal is to include [http://www.json.org/ JSON] output, which means that webpages can now easily access work with the data Mozilla development community to build their own displays. Using this datasurvey, understand, create a new display for the Tinderbox data that helps developers monitor and document the status current state of the builds and performance dataart. * [http://tinderbox.mozilla.org/Firefox/json.js Tinderbox JSON data]* [http://people.mozilla.org/~rhelmer/mockups/tinderbox/ajax.html An example page using In this project you will work with the data]* [http:mozpad community to connect with projects//mavracompanies in orbit around Mozilla and do interviews with their developers.perilith.com/~luser/tboxtest.html Another example page using the data]. (Requires a [http://ftp.mozilla.org/pub/mozillaYou will then document this information.org/firefox/nightly/latest-trunk/ recent Firefox 3 build])
=== [[Firefox Session Saver Extension]] ===
Write a simple (i.e., nothing more than a simple "save session") extension to leverage the existing [http://developer.mozilla.org/en/docs/Session_restore_API Session Store API] in order to allow the user to save his/her currently open tabs and restore them. This is similar to what Firefox does when it unexpectedly crashes and gives the user the option to restore a previous session. NOTE: there are extensions that do this already, but many of them are more feature rich than need be. See also [http://www.beltzner.ca/mike/archives/2007/05/28/resurrect_your_session.html this blog post].
=== [[Bugfixing on the GFX backend]] ===
The GFX backend for Firefox 3 has been ripped out and re-written, and it requires some debugging and small amounts of implementation work on Linux and Mac. Assist the GFX developers to ship their product for the start of the new year.
=== [[Plugin-watcher]] ===
Firefox sometimes gets a bad reputation for crashing or locking up when a plugin such as Adobe Flash or Windows Media Player causes the problem. Add code to Firefox (or write an extension) so that when a plugin misbehaves, a dialog is presented informing the user so that they can take corrective action (disabling the plugin) or filing a bug with the right party (this warning could be similar to the warning that appears when a JS script in a web page hogs too much CPU time. As a minimum it should identify that a plugin is to blame; better would be to inform the user of the plugin's name; best would be to provide an option to temporarily disable the plugin).
=== [[Add support for more compilers to distcc]] ===
An earlier project added multi-compiler support to distcc, and then MSVC support. The framework is now in place to support even more compilers. Add support for another compiler, perhaps Java, C#, or something else.
=== [[Radio Button Bookmarks Extension]] ===
Create an extension to provide [http://groups.google.com/group/mozilla.dev.apps.firefox/browse_thread/thread/f2eeb10d0436af3f radio-button style bookmarks].
=== [[Localized Search in Firefox Search Box]] ===
Firefox3 probably won't ship with support for full-text history search, even though url-bar autocomplete (with urls/titles) is a really great feature/idea. Write an extension in order to add this feature.
=== [[ Port canvas3d to non-Windows platforms]] ===
The canvas3d extension is a binary C++ component that adds a 3D OpenGL drawing context to the HTML canvas element. Currently canvas3d works only on Windows. Port the code to Linux and/or Mac OS X. Porting involves implementing a pbuffer class for each new platform. Some familiarity with OpenGL, or a willingness to learn it, is required.
=== [[Litmus Extension]] ===
Mozilla is in the process of finalizing a set of Linux library and runtime requirements for distributions wanting to ship Mozilla software. This project will test various bugs against two different sets of runtime setups, hoping to expose any issues with the new requirements.
=== [[Support For OpenID]] ===
OpenID is an open, decentralized, free framework for user-centric digital identity. It's built on existing web technologies so that it can work without special support in the browser. However, tighter browser integration could allow for increased security and easier management. See bug 356853. Needs definition as to exactly what should be done and how. Could be initially implemented as an extension.