1. Introduction 1.1. Project/Component Working Name: Firefox 3 for Solaris Nevada 1.2. Name of Document Author/Supplier: Author: Evan Yan Sponsor: John Fischer 1.3. Date of This Document: Jan 21st, 2008 2. Project Summary 2.1. Project Description: Firefox 3 is based on the new Gecko 1.9 Web rendering platform. Gecko 1.9 includes some major re-architecting for performance, stability, correctness, code simplification, and sustainability. Firefox 3 provides backwards compatibility for user profiles. User profiles of Firefox 2 can be used by Firefox 3 without change. Add-ons installed for Firefox 2 may not work on Firefox 3, until they get upgraded to support Firefox 3. 2.2. Risks and Assumptions: Firefox 3 depends on Cairo for rendering, while Cairo leverages some features of X to improve rendering performance. Xsun on Sparc, and the X server used by Sun Ray Server Software (SRSS) are lacking some features, such as Xrender. This causes Firefox 3 to have lower performance on those platform. We have been working to improve the performance of Firefox 3 without Xrender, which helps Firefox 3's performance on both of Xsun and SRSS Xserver. 4. Technical Description: 4.1. Details: Firefox 3 is easier to use. Improved zooming feature supports full page zoom, scaling the layout, text and images. Firefox 3's default icons, buttons, and menu styles now use the native GTK theme. Firefox 3 improves user experience with downloading. A new Download Manager makes it easier to locate downloaded files and displays where a file came from. Downloading is now resumable after restarting the browser or resetting your network connection. A new Applications preferences pane provides a better UI for configuring handlers for various file types and protocol schemes. Firefox 3 improves the location bar, auto-completion, and bookmarks. User can type in all or part of the title, tag or address of a page to see a list of matches from history and bookmarks; a new display makes it easier to scan through the matching results. A star button has been added to the location bar to let user quickly add bookmarks with a single click. User can associate keywords with bookmarks to sort them by topic. Smart Bookmarks Folder allow quickly accessing recently bookmarked and tagged pages, as well as more frequently visited pages. Firefox 3 is a more secure browser. Firefox 3 hides pages suspected as a phishing page, while user always has choice to view the suspected pages anyway; checks add-on and plugin versions and disables older, insecure versions of add-on and plugin automatically; and displays more clear and strict error pages when an invalid SSL certificate is received. Firefox 3 is also an improved platform for developers. New graphics and text rendering architectures in Gecko 1.9 provides rendering improvements in CSS, SVG as well as improved display of fonts with ligatures and complex scripts. HTML forms on Web pages now have a native look and feel on GNOME desktop. Firefox 3 provides offline support, which enables web applications to provide offline functionality. Firefox 3 has better performance. Major architectural changes (such as the move to Cairo and a rewrite to how reflowing a page layout works) results in speed increases. Memory usage is also improved in Firefox 3. A lot of memory leaks have been fixed, and a new XPCOM cycle collector completely eliminates many more. Firefox 3 is accessible and can meet Section 508 with exception. A lot of work on accessibility has been integrated into Gecko 1.9, which makes Firefox 3's accessibility greatly improved compared with Firefox 2. 4.5. Interfaces: Others interface can be found at LSARC/2006/694. +---------------------------------------+----------------------------------+ | Interfaces Exported | +------------------------+------------------+------------------------------+ | Interface Name | Classification | Comment | +========================+==================+==============================+ | $HOME/.mozilla/firefox | Volatile | The location of user | | | | profiles | +------------------------+------------------+------------------------------+ | /usr/lib/firefox | Uncommitted | Install location | | | | | +------------------------+------------------+------------------------------+ | /usr/bin/firefox | Committed | Link pointing to the | | | | default firefox, normally | | | | /usr/lib/firefox/firefox | +------------------------+------------------+------------------------------+ | Firefox CLI | Uncommitted | Firefox command line | | | | interface | +------------------------+------------------+------------------------------+ | Firefox GUI | Volatile | Firefox graphical user | | | | interface | +------------------------+------------------+------------------------------+ |/plugins| Committed | system-wide Firefox plugin | | | | directory | +------------------------+------------------+------------------------------+ | $HOME/.mozilla/plugins | Uncommitted | user-wide Firefox plugin | | | | directory | +------------------------+------------------+------------------------------+ | MOZ_PLUGIN_PATH | Uncommitted | environment variable pointing| | | | to additional plugin directory| +------------------------+------------------+------------------------------+ | SUNWfirefox | Uncommitted | Package name for firefox | | | | | +------------------------+------------------+------------------------------+ | SUNWfirefox-devel | Uncommitted | Package name for firefox | | | | developer package | +------------------------+------------------+------------------------------+ | SUNWfirefox-apoc-adapter| Uncommitted | Package name for firefox | | | | apoc adapter | +------------------------+------------------+------------------------------+ +---------------------------------------+----------------------------------+ | Interfaces Imported | +------------------------+------------------+------------------------------+ | Interface Name | Classification | Comment | +========================+==================+==============================+ | NSS/NSPR | Committed | needs NSS 3.12 and NSPR 4.7 | | | | uses NSS/NSPR under | | | | /usr/lib/mps | | | | WSARC/2007/548 | +------------------------+------------------+------------------------------+ | SQLite | Volatile | needs SQLite 3.X | | | | SQLite is being integrated | | | | into nevada | | | | PSARC/2008/120 | +------------------------+------------------+------------------------------+ | Cairo | Volatile | needs Cairo 1.6 | | | | LSARC/2006/202 | +------------------------+------------------+------------------------------+ For SQLite issue, it is being integrated into nevada via a seperated ARC case, PSARC/2008/120. Firefox 3 also depends on a SFW component FreeType, which is being moved from /usr/sfw to /usr via LSARC/2007/662. The versions of NSS/NSPR and Cairo in Nevada is lower than required. We will deliver private ones for now, and remove the private ones after those libraries get upgraded in Nevada. 4.10. Packaging & Delivery The project will be delivering the following packages: SUNWfirefox Firefox Web Browser SUNWfirefox-devel Firefox Web Browser developer package SUNWfirefox-apoc-adapter Firefox apoc adapter 4.11. Security Impact: Firefox uses NSS as the crypto library. Firefox includes a feature that allows user to save passwords. The saved passwords are stored in an encrypted file in user's profile folder. The saved passwords can be protected by using a Master Password. Firefox does not allow a website to download onto, install onto, or execute harmful code, such as shell script or binary, on a user's computer without the user's agreement. Community has fixed and will fix security bugs as soon as possible. New minor version will be released as needed. 4.12. Dependencies: Firefox3.0 depends on system NSS/NSPR, SQLite, and Cairo. 5. Reference Documents: Sun Mozilla Project Website - http://jdsbj.prc/wiki/index.php/Browser Firefox home page - http://wiki.mozilla.org/Firefox3 Mozilla Foundation Security Advisories - http://www.mozilla.org/security/announce/ Other Related ARC case LSARC/2006/694 Firefox 2 for Solaris Nevada and Solaris10 Update LSARC/2004/840 Firefox for JDS4 LSARC/2004/733 Firefox LSARC/2006/202 GNOME 2.14 - Vermillion WSARC/2007/548 NSPR/NSS/JSS Reclassification WSARC/2002/366 NSS WSARC case WSARC/2002/217 NSPR WSARC case LSARC/2007/662 FreeType move from /usr/sfw to /usr PSARC/2008/120 SQLite