|Release target||Firefox 26|
|Directly Responsible Individual||Paolo Amadini|
|Lead engineer||Paolo Amadini|
|Product marketing lead||`|
|Additional members||Neil Deakin, Felipe Gomes, Raymond Lee, Mihai Morar|
Stage 1: Definition
1. Feature overview
The current storage back-end for downloads, based on the synchronous
nsIDownloadManager interface and an associated SQLite database, causes noticeable performance issues when starting and finishing downloads.
The new Downloads API will improve the responsiveness of Firefox for Desktop, by removing the main-thread I/O caused by access to
2. Users & use cases
The Downloads Panel is the main user of the Downloads API in Firefox for Desktop. Since the new API is part of Toolkit, other Mozilla products will be able to adopt it for improved performance.
The concrete goal is to ensure that SQL statements involving
moz_downloads no longer appear in the "slow SQL" Telemetry dashboard.
This feature does not involve changes to the user interface and interaction model. Minor changes in behavior are expected, because the API is a complete reimplementation of the back-end.
Stage 2: Design
5. Functional specification
The overall design is documented in the download architecture improvements page.
6. User experience design
Stage 3: Planning
7. Implementation plan
Quality Assurance review
Stage 4: Development
Bugs list and patch queue
Feature tracking bug:
- bug 825588 (covers work across all Mozilla products)
Key implementation bugs:
Additional steps needed to test the feature:
- In Firefox 25, the feature can be enabled by toggling the
browser.download.useJSTransferpreference and restarting.
- This is only useful for early testing by add-on developers, as the feature is not ready in Firefox 25.
- In Firefox 26, the feature is enabled by default.
Work required to release and enable the feature for everyone:
- Work is completed and the feature is now enabled.
Stage 5: Release
10. Landing criteria
|Theme / Goal||`|
|Engineering team||Desktop front-end|
Team status notes
|Security||sec-review-needed||assigned to mgoodwin to look at via sec-review? in bug 825588|