Features/Desktop/Downloads API: Difference between revisions
(Add release target) |
(Add bug references) |
||
| Line 20: | Line 20: | ||
|Feature non-goals=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. | |Feature non-goals=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. | ||
|Feature functional spec=The overall design is documented in the '''[[User:P.A./Download_architecture_improvements|download architecture improvements]]''' page. | |Feature functional spec=The overall design is documented in the '''[[User:P.A./Download_architecture_improvements|download architecture improvements]]''' page. | ||
|Feature implementation notes===== Bugs list and patch queue ==== | |||
'''Feature tracking bug:''' | |||
* {{bug|825588}} (covers work across all Mozilla products) | |||
'''Key implementation bugs:''' | |||
* {{bug|847863}}: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel. | |||
'''Additional steps needed to test the feature:''' | |||
* In Firefox 25, the feature can be enabled by toggling the <code>browser.downloads.useJSTransfer</code> preference and restarting. | |||
* In Firefox 26, the feature is enabled by default and cannot be disabled. | |||
'''Work required to release and enable the feature for everyone:''' | |||
* Bugs listed as blocking {{bug|907082}}: | |||
---- | |||
<bugzilla>{ "blocks": 907082, "status": "ASSIGNED" }</bugzilla> | |||
<bugzilla>{ "blocks": 907082, "status": "NEW" }</bugzilla> | |||
---- | |||
}} | }} | ||
{{FeatureInfo | {{FeatureInfo | ||
Revision as of 08:37, 20 August 2013
Status
| Downloads API | |
| Stage | Development |
| Status | In progress |
| Release target | Firefox 26 |
| Health | OK |
| Status note | https://wiki.mozilla.org/Performance#Downloads_API_Rewrite |
{{#set:Feature name=Downloads API
|Feature stage=Development |Feature status=In progress |Feature version=Firefox 26 |Feature health=OK |Feature status note=https://wiki.mozilla.org/Performance#Downloads_API_Rewrite }}
Team
| Product manager | ` |
| Directly Responsible Individual | Paolo Amadini |
| Lead engineer | Paolo Amadini |
| Security lead | ` |
| Privacy lead | ` |
| Localization lead | ` |
| Accessibility lead | ` |
| QA lead | ` |
| UX lead | ` |
| Product marketing lead | ` |
| Operations lead | ` |
| Additional members | Neil Deakin, Felipe Gomes, Raymond Lee |
{{#set:Feature product manager=`
|Feature feature manager=Paolo Amadini |Feature lead engineer=Paolo Amadini |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=` |Feature ux lead=` |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=Neil Deakin, Felipe Gomes, Raymond Lee }}
Open issues/risks
`
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 downloads.sqlite.
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.
3. Dependencies
`
4. Requirements
The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the "slow SQL" Telemetry dashboard.
Non-goals
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
`
8. Reviews
Security review
`
Privacy review
`
Localization review
`
Accessibility
`
Quality Assurance review
`
Operations review
`
Stage 4: Development
9. Implementation
Bugs list and patch queue
Feature tracking bug:
- bug 825588 (covers work across all Mozilla products)
Key implementation bugs:
- bug 847863: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.
Additional steps needed to test the feature:
- In Firefox 25, the feature can be enabled by toggling the
browser.downloads.useJSTransferpreference and restarting. - In Firefox 26, the feature is enabled by default and cannot be disabled.
Work required to release and enable the feature for everyone:
- Bugs listed as blocking bug 907082:
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
Stage 5: Release
10. Landing criteria
`
{{#set:Feature open issues and risks=`
|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 downloads.sqlite.
|Feature users and 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.
|Feature dependencies=`
|Feature requirements=The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the "slow SQL" Telemetry dashboard.
|Feature non-goals=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.
|Feature functional spec=The overall design is documented in the download architecture improvements page.
|Feature ux design=`
|Feature implementation plan=`
|Feature security review=`
|Feature privacy review=`
|Feature localization review=`
|Feature accessibility review=`
|Feature qa review=`
|Feature operations review=`
|Feature implementation notes===== Bugs list and patch queue ====
Feature tracking bug:
- bug 825588 (covers work across all Mozilla products)
Key implementation bugs:
- bug 847863: Use the JavaScript API instead of nsIDownloadManager as the back-end for the panel.
Additional steps needed to test the feature:
- In Firefox 25, the feature can be enabled by toggling the
browser.downloads.useJSTransferpreference and restarting. - In Firefox 26, the feature is enabled by default and cannot be disabled.
Work required to release and enable the feature for everyone:
- Bugs listed as blocking bug 907082:
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
|Feature landing criteria=` }}
Feature details
| Priority | Unprioritized |
| Rank | 999 |
| Theme / Goal | ` |
| Roadmap | ` |
| Secondary roadmap | ` |
| Feature list | ` |
| Project | ` |
| Engineering team | Desktop front-end |
{{#set:Feature priority=Unprioritized
|Feature rank=999 |Feature theme=` |Feature roadmap=` |Feature secondary roadmap=` |Feature list=` |Feature project=` |Feature engineering team=Desktop front-end }}
Team status notes
| status | notes | |
| Products | ` | ` |
| Engineering | ` | ` |
| Security | ` | ` |
| Privacy | ` | ` |
| Localization | ` | ` |
| Accessibility | ` | ` |
| Quality assurance | ` | ` |
| User experience | ` | ` |
| Product marketing | ` | ` |
| Operations | ` | ` |
{{#set:Feature products status=`
|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=` |Feature security health=` |Feature security notes=` |Feature privacy status=` |Feature privacy notes=` |Feature localization status=` |Feature localization notes=` |Feature accessibility status=` |Feature accessibility notes=` |Feature qa status=` |Feature qa notes=` |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}