I’m pleased to announce that the first pieces of the Private Browsing feature have just landed on Firefox trunk! This might not be something to get too excited about, since all of the landed code remains disabled for now, but it’s a big breakthrough for me, considering the fact that I’ve been playing with this code since January! Some of you may even remember that this feature was cut off Firefox 3 because of the fact that it was too big to take at that stage of Firefox 3 development, it will be included in the final release of Firefox 3.1.
Based on my latest chat with Marcia on IRC, the current plan is to finish the work on the code for private browsing, and land all of the remaining pieces by the end of October 26. After that, during the week of October 27, we are going to have a test week for the community to start testing the Private Browsing mode to make sure that it will be rock solid in the final release. Of couse, every piece of this patch has automated unit tests (on which Aaron has been helping me) to make sure that the feature at least works according to the functional specification, but a feature of this size still needs lots of human testing as well. Stay tuned for more updates on the schedule.
A little bit more of technical details follows. The pieces landed at this stage include the nsIPrivateBrowsingService, and the private browsing implementation and unit tests for the Places, Cookies, Content Preferences, and Form History modules. These include all of the code necessary to implement Private Browsing handling in those modules, but because the implementation has been designed to ignore the absence of the Private Browsing service if it’s not available (like the case of these pieces of shared code using in other applications than Firefox), nothing will change in the functionality of these modules. Those who want to test the Private Browsing mode should still run try server builds that I post to the Private Browsing bug.
For the details of what was checked in, check out the links below (pun intended):