Firefox 3.6
Firefox 3.6 is a major version of the Mozilla Firefox web browser, released on January 21, 2010, as an incremental update to Firefox 3.5 that emphasized performance enhancements, web standards compliance, and user-friendly features.[1][2] This release introduced Personas, a lightweight theming system allowing users to apply custom visual themes with a single click from a gallery exceeding 35,000 options, significantly expanding customization without the overhead of full extensions.[1][2] It also added support for full-screen native video playback with poster frames, asynchronous script execution to accelerate page loading, and the Web Open Font Format (WOFF) for efficient web typography via the@font-face rule.[1][3]
On the development front, Firefox 3.6 advanced web standards support through the Gecko 1.9.2 rendering engine, including new CSS properties such as -moz-linear-gradient and -moz-radial-gradient for dynamic backgrounds, -moz-background-size for image scaling, and pointer-events for interactive element handling.[3][1] The HTML5 File API enabled client-side file access and processing, while the Drag & Drop API facilitated intuitive file handling in web applications; additionally, JavaScript performance improved by approximately 20% via optimizations to the TraceMonkey engine, alongside the introduction of ECMAScript 5 features like enhanced Date.parse support.[2][3]
Security was bolstered with the PluginCheck feature, which detects and notifies users of vulnerable or outdated plugins using Mozilla's Plugin-Find Service, and restrictions on third-party software integration to mitigate crashes and exploits.[1][2] Overall responsiveness, startup times, and JavaScript execution saw notable gains, making the browser more suitable for resource-constrained devices like those running Maemo OS, with availability in over 70 languages.[1] While not a revolutionary update, Firefox 3.6 was praised for its developer-oriented improvements and stability, paving the way for future innovations like plugin process isolation in subsequent point releases.[2][3]
Background and Development
Project Initiation
The development of Firefox 3.6, codenamed Namoroka after a national park in Madagascar, was publicly outlined by Mozilla in April 2009 as a minor update following the Shiretoko-codenamed Firefox 3.5.[4] This codename was selected as part of Mozilla's tradition of naming projects after global landmarks to foster community engagement and awareness of conservation efforts.[5] The primary goals for Namoroka centered on enhancing browser performance and responsiveness compared to Firefox 3.5, with a focus on reducing startup times and improving overall speed without undertaking a comprehensive redesign.[4] These objectives aimed to deliver incremental advancements in usability and efficiency, allowing for targeted optimizations rather than sweeping architectural changes.[6] At its core, the project leveraged the Gecko 1.9.2 rendering engine, an evolution from the Gecko 1.9.1 used in Firefox 3.5, to provide foundational improvements in web rendering and JavaScript execution.[1] Mozilla's planning for Firefox 3.6 also marked an early shift toward a more accelerated release cadence, with the roadmap envisioning quarterly updates through versions 3.6 and beyond, in contrast to the longer cycles of prior major releases.[4] This approach was intended to enable quicker delivery of enhancements and security fixes, setting the stage for the rapid release model that would define future Firefox iterations.[7]Development Timeline
The development of Firefox 3.6, codenamed Namoroka, began with the release of Alpha 1 on August 7, 2009, which served as an early preview for developers and testers to evaluate initial improvements in the Gecko 1.9.2 rendering engine, including enhanced JavaScript performance and CSS3 support.[8][9] Following the alpha phase, Mozilla conducted five beta releases between October 30, 2009, and December 17, 2009, to gather user feedback on stability and usability. Beta 1 was released on October 30, 2009, Beta 2 on November 10, 2009, Beta 3 on November 17, 2009, Beta 4 on November 26, 2009, and Beta 5 on December 17, 2009, with each iteration incorporating community-reported issues to refine crash rates and overall reliability.[10][11][12] The beta period transitioned into release candidate testing in early 2010, with Release Candidate 1 issued on January 8, 2010, and Release Candidate 2 on January 17, 2010, primarily to address remaining critical bugs identified through extensive testing.[13][14] Throughout the timeline, Mozilla tracked progress via internal milestones documented on their development wiki, ensuring alignment with performance and security goals, while the community played a key role in bug reporting and triage using Bugzilla, Mozilla's open-source issue tracker.Release History
Initial Release
Firefox 3.6 was officially released on January 21, 2010, marking the stable launch following several beta versions.[15] The browser became available for immediate download on Windows, Mac OS X, and Linux operating systems, supporting over 70 languages to reach a global audience.[15] Mozilla's announcement highlighted the version's delivery to millions of existing users, facilitating a smooth migration from Firefox 3.5, with early adoption metrics showing about 23% of the user base transitioning within the first six weeks.[15][16] In its marketing efforts, Mozilla promoted Firefox 3.6 as delivering over 20% performance improvements over 3.5, including faster JavaScript processing and quicker startup times, to encourage upgrades among the then-350 million Firefox users worldwide.[15]Point Releases
Firefox 3.6 underwent a series of point releases numbered from 3.6.1 to 3.6.28, spanning from February 2010 to March 2012 and comprising over 20 updates primarily aimed at enhancing security and stability.[17] These maintenance updates backported critical fixes from subsequent Firefox versions to the 3.6 branch, preserving compatibility for enterprise users while avoiding changes to the core feature set.[18] A prominent example is Firefox 3.6.4, released on June 22, 2010, which implemented Out-of-Process Plugins (OOPP) to isolate crashes from third-party plugins such as Adobe Flash, Apple QuickTime, and Microsoft Silverlight, thereby preventing full browser crashes and improving user experience on Windows and Linux platforms.[19][20] Security patches were a recurring focus, exemplified by Firefox 3.6.6 on June 26, 2010, which resolved multiple vulnerabilities including memory safety issues and addressed plugin responsiveness timeouts introduced in prior updates.[21] Similarly, Firefox 3.6.12, released on October 27, 2010, patched a critical remote code execution vulnerability (MFSA 2010-77) that could compromise user systems via malicious web content.[22] In March 2011, updates like 3.6.14 and 3.6.15 further bolstered stability by fixing Java applet compatibility issues and other bugs impacting rendering and performance.[23][24]Key Features
Core Engine Upgrades
Firefox 3.6 incorporated enhancements to the TraceMonkey just-in-time (JIT) JavaScript compiler, originally introduced in Firefox 3.5, enabling broader tracing of JavaScript constructs such as DOM properties, closures, and switch statements with dense numeric labels. These optimizations resulted in up to 20% faster JavaScript execution compared to Firefox 3.5, as measured in benchmarks like SunSpider and V8. Additionally, the JIT was enabled by default for chrome JavaScript—code used in the browser's user interface and extensions—improving add-on and UI performance that had been conservatively disabled in the prior release. Garbage collection pauses were reduced from approximately 80 milliseconds in Firefox 3.5 to around 30 milliseconds, achieved through multi-threaded memory freeing and better integration between the JIT and collector, minimizing post-collection slowdowns.[25][25][1] Memory management in Firefox 3.6 was refined to enhance overall responsiveness, with the development team prioritizing reductions in allocation overhead and leak prevention to support smoother operation under load. These changes contributed to decreased memory pressure during intensive tasks, such as rendering complex pages or running multiple tabs, without introducing the instability seen in earlier versions. Startup time was also improved through streamlined initialization processes, allowing the browser to launch more quickly on supported platforms, aligning with broader performance goals from the project's development phase.[26][1][1] To streamline image rendering, Firefox 3.6 dropped support for the outdated X BitMap (XBM) format, an ASCII-based monochrome image type rarely used on the web since its peak in early X Window System applications. This removal, implemented in the Gecko 1.9.2 engine branch, reduced the maintenance burden on the image library by eliminating the need to update an obsolete decoder, allowing focus on more relevant formats like PNG and JPEG. The decision followed industry trends, such as Microsoft discontinuing XBM in Internet Explorer 6, and had negligible impact on web compatibility given XBM's absence from modern content.[27][27] A key addition was support for asynchronous script execution via theasync attribute on <script> elements, preventing external scripts from blocking page parsing and rendering. This feature, part of emerging HTML5 standards, allowed developers to load non-critical scripts in parallel, significantly reducing perceived load times for resource-heavy sites. By decoupling script fetching from document flow, Firefox 3.6 improved concurrency during page loads, a step toward better web performance without altering synchronous script behavior for legacy compatibility.[3][1]
Interface and Usability
Firefox 3.6 introduced Personas, a lightweight theming system that allowed users to customize the browser's appearance—such as toolbars, menus, tabs, and the status bar—with a single click, without requiring full extensions or restarts.[1] These themes were accessible via an integrated gallery hosting thousands of options, enabling quick previews and applications to personalize the interface while maintaining core functionality.[2] The release provided an option to hide the menu bar, creating a cleaner, more compact interface by reducing visible chrome and focusing on content area.[28] Accompanying this was updated tab behavior, where new tabs opened immediately to the right of the active tab rather than at the far end of the tab strip, improving workflow for users switching between related pages; this could be customized via about:config to revert to the previous end-of-strip placement if preferred.[29] The download manager received enhancements, including better progress indicators for tracking file transfers and improved pause/resume capabilities to handle interruptions more reliably.[30] These updates made managing multiple downloads more intuitive, with added search functionality within the manager to locate past files efficiently. For media handling, Firefox 3.6 supported full-screen playback of native HTML5 video elements, accessible via right-click context menus, along with poster frames to display preview images before video loading.[3] This improved usability for web-based video consumption without relying on plugins. Additionally, the browser added support for notification sounds, alerting users to events like download completions or web application updates, such as new emails in browser-based clients.[28] Performance optimizations contributed to a smoother overall UI, with faster startup times and more responsive interactions.[1]Web Standards Support
Firefox 3.6 introduced support for the Web Open Font Format (WOFF), enabling developers to embed custom fonts more efficiently in web pages via the@font-face rule in CSS. This format, developed by Mozilla and others, compresses font files while maintaining compatibility with web standards, reducing load times for typography-heavy sites.[3]
The release expanded CSS capabilities with several new properties aligned to emerging web standards. It added support for CSS gradients through vendor-prefixed functions like -moz-linear-gradient() and -moz-radial-gradient(), allowing smoother visual effects in backgrounds without relying on images. Background sizing was enhanced with -moz-background-size, permitting scalable background images as specified in the CSS 3 Backgrounds and Borders draft. Additionally, the pointer-events property was implemented, giving developers control over how mouse events interact with elements, such as disabling interactions on overlaid graphics.[3]
Firefox 3.6 advanced web application interactivity by integrating the HTML5 Drag and Drop API with file handling. The DataTransfer object now supports accessing files dragged from the user's desktop directly into web pages, enabling seamless upload experiences without traditional file pickers. Complementing this, the File API allowed JavaScript to read local files selected via <input type="file"> elements, including support for multiple file selection, which facilitated richer client-side processing. These APIs, bolstered by improved JavaScript performance in the TraceMonkey engine, empowered developers to build more responsive file-based interactions.[3][31]
For enhanced web content security, Firefox 3.6 implemented out-of-date plugin detection through an integrated checker service. Upon loading pages with plugins, the browser scans for outdated versions of common add-ons like Flash and Java, notifying users via a prominent alert and providing direct links to update them, thereby mitigating vulnerabilities without outright blocking content. This feature checked over 15 popular plugins and marked a step toward proactive security in plugin-dependent web experiences.[32]