I'll tell you about a feature of Firefox that I'm working on, and which may seem trivial to some, or uninteresting, but which in reality is incredibly useful: sending performance data, also called telemetry. First, as this feature is rather unknown and is not actually visible to the user: what is telemetry? If we refer to Wikipedia,
“Telemetry is a technology that allows the remote measurement and logging information of interest to the system designer or operator.”
And in the case of Firefox that means sending data regarding the performance, the hardware configuration of the machine, memory consumption, responsiveness, and the features usage frequency.
This feature is and will remain, manually enabled by the user in Firefox, and Firefox Beta. That must remain a user choice, it's an essential point. However, regarding development versions, Firefox Nightly and Firefox Aurora, we consider that users of these versions may be treated differently, and therefore have this option enabled by default. But rest assured it is not, and will never be about imposing anything to the users: it is obviously possible to disable it in any cases by simply unchecking “Send performance data” in Advanced tab in Firefox settings.
Indeed, in the development releases, the telemetry will be active when creating a new profile, as well as for current users who have not yet made any choice about it. Again, we have taken every precaution to respect users choice. For example, people who had previously refused, will keep it off, and preferences for development versions and version “general audience” will be independent, that is to say it will be possible, for example, on the same profile, to activate it when using Nightly, and disable it when using Firefox. In addition, we want users to be aware of this automatic delivery, so we have put in place:
- First, an explanatory message permanently available in the “About Firefox” dialog. It has been already there for several months, while the feature is not yet enabled by default (This was my very first commit in Firefox!)
- Second, an informative banner that appears at the top of the screen when activated by default will become effective.
- Third, again an informative message, on the download page for development releases.
- Finally, a FAQ for the press, and a post on the official Mozilla blog announcing the change, will be published.
My patch is complete, functional, and waiting for the final review. It also wait the end of discussions taking place right now with Mitchell Baker, to get the green light. I hope, as well as many other developers, to have the green light, because the performance data is crucial in the Firefox development, and we sorely lack that. The current activation rate is only about 2%, this is really not enough. My patch will logically significantly increase the amount of data from development versions, and it will be useful at several levels:
- The precise rate of adoption / use of a feature allows to know the impact of a patch, and so to be able to assess its usefulness, to set a priority between patches. A patch for a feature used by a majority of users will be addressed as a priority, but other factors must be taken into account.
- It will be easier to find slowdowns in Firefox, and then fix them. Same for memory leaks (Memshrink), and overall software responsiveness, including start-up time (Snappy)
- Hardware incompatibility can also be detected earlier in the development process. Indeed, the ecosystem of hardware configuration is such that Mozilla can't test everything, so you need a large amount of data to find incompatible configurations.
Telemetry is something really valuable for the software development, provides significant improvements, and helps keep Firefox fast. And do not overlook the user, his privacy, and choices. It was also quite complicated, and I would come back later in a new post. Anyway, if you want to do something free, useful, and immediate to Firefox, I strongly encourage you to first enable telemetry reports!