Development:Good Bugs and Projects
Contents
Summer of Code 2010
Camino intends to participate in the 2010 Google Summer of Code, again under the auspices of the Mozilla Foundation.
Below are two sections, one for all project ideas (either brief, or fleshed out) and a second for project ideas that have been examined by the Camino leads for suitability for the scope and timeframe of the Summer of Code.
Past accepted proposals can be viewed here, here, here, and here/here. In addition to Google’s advice for writing applications, be sure to avoid these common pitfalls found in past applications for Mozilla projects.
SoC 2010 Project Suggestions
Project ideas listed in this section have been examined by Camino leads for suitability for the Summer of Code. Please do not add or move ideas to this section unless you are a Camino lead.
- User scripts (partial Greasemonkey support)
- Add Greasemonkey-like support for site-specific, user-created JavaScript modification to be run automatically to Camino, with as much compatibility with existing Greasemonkey scripts as is feasible.
- Related bug(s): Bug 329309
- Mentor: Stuart Morgan
- Inline PDF support
- Use PDFKit to implement a custom Camino view for embedded and standalone PDF files. Register with Gecko to support PDF content-types using this view. Also look into support for displaying Postscript and EPS content-types, of which PDFKit is also capable.
- Related bug(s): None
- Mentor: Stuart Morgan
- Private Browsing
- Create a GUI for the private browsing service available in Gecko 1.9.1 and later. This would involve working with the Gecko API in addition to Camino's own Cocoa code.
- Related bug: Bug 251677
- Mentor: Stuart Morgan
- Tear-off Tabs
- Camino currently has support for “moving” a tab to a new window (in the tab context menu), but this actually closes the current tab and opens a new window, reloading the closed tab’s URL. Beginning in Gecko 1.9.1, there is back-end support for moving pages (docshells; see Bug 113934). Add support to Camino’s tab dragging implementation to drag tabs beyond the bounds of a window to “tear off” the tab and create a new window, using the Gecko back-end to move the existing tab’s content and presentation. Hook the existing “Move Tab to New Window” tab context menu item up to the Gecko back-end.
- Related bugs: Bug 318260, Bug 339472, Bug 192635
- Mentor: Stuart Morgan
- N.B Someone needs to look at the patch in Bug 113934 and make sure it has a mechanism that will actually work with embedding and not just with <xul:browser>s.
- Full-text history search and Spotlight integration
- Camino currently exports bookmarks for Spotlight, piggy-backing on Safari's format (note that Bug 549179 changes this to use a nearly-identical format but with a new Camino-specific importer and extension). Safari 4 offers a .webhistory format, with full-text plain-text contents of the web page, title, and URL. Implement a similar format and use our ability to get the text contents of a web page to expose history to Spotlight. In addition, hook this cache/query up to our existing history search as a new data-source of sorts, and get full-text searches in our history search field (All, Title, Location, Page Content). Deal appropriately with privacy concerns and expiration.
- Related bugs: Bug 537159
- Mentor: Stuart Morgan
- Unit Testing
- Add a unit testing framework to the Camino build system, and create unit test suites for significant portions of the Camino-specific code below the UI level (which would likely include refactoring some code for testability). This would include generation of code coverage information to measure progress.
- Related bug(s): Bug 417879, Bug 453202
- Mentor: Stuart Morgan
SoC 2010 Project Idea Scratchpad
Please list any Summer of Code project ideas here.
- Tab Palette
- Create a floating palette of all open tabs, with the ability to quickly switch to those tabs. Add the ability to filter tabs based on their content; this would require implementing full-text search across all open tabs. Further enhancement may include implementing a search field in the Tab Overview view that uses the full-text search.
- Related bug(s): Bug 197720 Bug 185916
- Mentor:
- Configurable ad-blocker using Gecko content-blocking policies
- Camino’s current ad-blocker uses CSS rules to block ads and other annoyances. While easy to implement, this system is less flexible and hard for end-users to customize. Implement a new ad-blocking system that relies on Gecko’s content-blocking policies and supports a more flexible rule syntax and develop a minimal UI to allow user interaction and configuration. Ideally this new ad-blocker would support the same subscription list format as Adblock Plus.
- Related bugs: Bug 314046
- Mentor:
Camino Bugs and Projects
This portion of the page lists some sample ideas accumulated by Camino developers over the years for people interested in contributing to Camino (note that not all of these ideas may be suitable for the Summer of Code; if you are considering using one of the ideas below for a Summer of Code application, please discuss it with us first).
Camino needs a list of “good first bugs” and bugs/areas of improvement that are suitable for a focused, longer-term project, e.g., Google's Summer of Code, so that interested new contributors without any pet peeves can be pointed towards a concrete list.
References: Sam's Roadmap, Camino Vote List (bugs with 5 or more votes), bugs marked helpwanted in Camino or relevant Core components
Good First Bugs
Projects
Some of these projects were listed on the MozillaWiki 2006 Summer of Code, 2007 Summer of Code, 2008 Summer of Code, or 2009 Summer of Code pages.
Camino
Bugs listed need to be audited for suitability for a summer-sized project and for "interest" before listing for the SoC; items in boldface have previously been given suitability blessings by a senior Camino developer.
- Full-screen mode; Bug 245000 (hendy started work on this)
- User script support; Bug 329309 (at least partial support)
- Unit Testing; Bug 417879 (just the tip of the iceberg)
- AppleScript support for making new tabs/windows (will require lots of wrapping BW); Bug 395711, Bug 395712
- EV UI; see User:sardisson/EV
- Tab palette; Bug 197720, the probably not enough for a summer project unless coupled with cross-tab content search. Also, add a search field to Tabsposé once cross-tab content search is implemented.
- View source in an external program; Bug 159336, including an old in-progress patch from torben
- Fix Offline Apps support (requires some Gecko) - Bug 529918
- Site-specific prefs support (also requires some Gecko) - Bug 391299 as a beginning
Gecko-Mac
- Revive/finish the Cocoa-Gecko accessibility work (see below for the original work).
- Audit and fix any missing text field keybindings and text-editing behaviors (good summary of default bindings here); bug 330968
- Listed on 2006 S0C page (probably not large enough in scope for SoC even if you implement automatic support for Cocoa bindings Bug 282097; see comment 2 there)
Other Camino bugs
Historical Examples
Below are historical examples of things we've thought would make good projects.
Small Projects
Fix/Implement Single-Window Mode (SWM) in Camino; Bug 274143(pinkerton did this)- Listed on MozillaWiki Summer of Code page
.mar/AUS-based Software Update; Bug 185436(smorgan did this using Sparkle)AppleScript support for reading page contents/page source; Bug 374648, Bug 394582(hendy has essentially implemented this)Move history off of Mork; Bug 351351(hendy has essentially implemented this)Rewrite autocomplete in Cocoa; Bug 340611(dan did this as part of the 2009 Summer of Code location bar project)
Larger/Summer Projects
Location Bar enhancements - Expand the range of abilities of the location bar. The ability to autocomplete from bookmarks and history by both title and URL would be a top priority. Other enhancements include: adding a Go button; fixing inline autocomplete; and memorizing keyword searches.Related bug(s): Bug 166288, Bug 162450, Bug 340611, Bug 432178, Bug 181716, Bug 188188, Bug 188178, Bug 461400, Bug 181806(dan did most of this project in Summer of Code 2009)
Tab exposé; Bug 312007(jeff brought us this project and did it in Summer of Code 2007)
Improved AppleScript support; Camino bugs 178917, 160106, 314061, 253486, 156078(peeja largely did this in SoC 2007)- Listed on MozillaWiki Summer of Code 2006 page
Drag-and-Drop Reorderable Tabs; Bug 160720and Bug 318260(delliott is doing this as part of the 2006 SoC)(delliott had a patch but didn't finish this in SoC 2006; jeff worked on it during fall 2007/winter 2008, and murph finished the initial implementation in fall 2008)- Listed on MozillaWiki Summer of Code 2006 page
Keychain rewrite for Camino; 172842, 177941, 179672, 178607, 187720, (maybe 202337)(smorgan largely did this)- Listed on MozillaWiki Summer of Code 2006 page
Support a11y in the content area (bridge Apple's accessibility APIs to the Mozilla accessibility APIs); bug 157209a little birdie tells us this should be happening RSNit's public now; hwaara is working on this :)
Copy/paste of styled text; Bug 79864, Bug 356218(eventually “fixed” in Gecko 1.9.1)- Listed on MozillaWiki Summer of Code 2006 page