The functionality will start with Firefox 68, but Mozilla is planning to use BITS via a dedicated Background Update Agent from version 70 and onwards. “For now, Firefox will call out to BITS via an interface built in to the binary. This interface will, for now, communicate with BITS directly, but will be designed such that in the future it can communicate with BITS using the Update Agent as an intermediary,” explained Mozilla platform engineer Kirk Steuber (via Techdows) “This will allow it to manage BITS jobs as the Local Service user, which is how we want downloads to occur when the Update Agent downloads them independently.”
Why Move to BITS?
The agent is designed primarily for users with slow connections who may not finish downloading updates before the end of their browser session. However, it could also mean less clarity about when bandwidth is being used, which could be a problem for users on a data cap. Currently, though, Firefox users must enable support manually. They can do so by enabling the ‘app.update.BITSenabled’ and ‘app.update.BITS.inTrialgroup’ flags in Nightly versions. However, it’s worth noting that there are some downsides to using BITS. “Being external to Firefox, it makes it easier for others to impede our downloads. It is also very difficult to bring the flexibility of the Firefox proxy configuration to BITS,” says Steuber. When BITS does fail for various reasons, Firefox will fall back to the older nsllcrementalDownload system. Even so, the browser will no longer look for updates when users manually visit the about page.