User:P.A./Panel-based Download Manager: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
mNo edit summary
(Update Downloads Panel design based on feedback and meetings)
Line 43: Line 43:
* '''Any other improvement already defined as [[User:P.A./Download_user_experience_improvements|download user experience improvements]].'''
* '''Any other improvement already defined as [[User:P.A./Download_user_experience_improvements|download user experience improvements]].'''
** ''For example, streamlining the entire download process.''
** ''For example, streamlining the entire download process.''
|Feature ux design=We'll reach the stated goals by moving the interface for handling current downloads in a panel, anchored to a status indicator in the main browser window, and adding a new '''Downloads''' predefined folder to the Library window.
|Feature ux design=We'll reach the stated goals by adding a panel for handling the most recent downloads, anchored to a status indicator in the main browser window, and moving the interface for handling all downloads to a new '''Downloads''' predefined folder in the Library window.


In the following sections, entries are marked with these indicators:
In the following sections, entries are marked with these indicators:
Line 54: Line 54:
Provides a status overview, visible during normal browsing when there are download notifications.
Provides a status overview, visible during normal browsing when there are download notifications.


* {{done|Always visible, located on the navigation bar by default.}}
* {{ok|Always visible by default, located on the navigation bar, between the search bar and the home button.}}
** <span style="color: orange; font-size: 80%; font-weight: bold">[INPUT]</span> Maybe, only shown when there are download items in the panel, either active or completed.
** <span style="color: orange; font-size: 80%; font-weight: bold">[INPUT]</span> Maybe, also shown after the last download is removed from the panel, giving access to downloads history only.
* {{done|When there are no active downloads, shows the classic button icon (downwards arrow).}}
* {{done|When there are no active downloads, shows the classic button icon (downwards arrow).}}
* {{done|When there are active downloads, shows a progress bar and a compact indication of the remaining time, if known.}}
* {{done|When there are active downloads, shows a progress bar and a compact indication of the remaining time, if known.}}
Line 64: Line 62:
* {{done|New downloads are notified with a brief animation near the indicator.}}
* {{done|New downloads are notified with a brief animation near the indicator.}}
* {{done|Finished or failed downloads make the indicator glow until the panel is displayed.}}
* {{done|Finished or failed downloads make the indicator glow until the panel is displayed.}}
* {{done|If the indicator is removed from the toolbars, or moved to an invisible toolbar, the usual screen-level notification is shown when all downloads are completed.}}
* {{done|The usual screen-level notification is shown when all downloads are completed.}}
** Note that, even when the indicator is visible, the screen-level notification is still shown in addition to the indicator notification.
** Note that this is shown even when the indicator is visible.


Provides the anchor for the panel.
Provides the anchor for the panel.


* {{done|Located in the navigation bar by default.}}
* {{ok|If the indicator is removed from the toolbars, or is located in an invisible toolbar, the panel will never be displayed.}}
* {{done|If the indicator is removed from the toolbars, or is located in an invisible toolbar, we show it temporarily in the default position or in the tab bar when the panel is opened, until the panel is closed.}}
* {{ok|User-initiated requests to show downloads will always open the Downloads view in the Library window, regardless of indicator visibility.}}
* If we need to show the panel and both the tab bar and the navigation bar are invisible, then:
** {{done|For user-initiated requests (like the Downloads menu item), show the panel without the anchor, near the default anchor position.}}
** {{done|For user-initiated requests, if there is no browser window open (like clicking a screen-level notification, or the Downloads menu item on OSX), open a new browser window and show the panel there.}}
** {{done|For background-initiated requests, do nothing.}}


=== Downloads panel ===
=== Downloads panel ===
Line 82: Line 76:
The panel works as follows:
The panel works as follows:


* {{done|The panel should be shown automatically for the first download of the browsing session.}}
* {{ok|The panel should be shown automatically for the first few downloads after the feature is enabled, for discoverability.}}
** <span style="color: orange; font-size: 80%; font-weight: bold">[INPUT]</span> Maybe show the panel automatically only for the first few sessions, not for the first download of every session.
* {{ok|Only a few recent downloads are shown in the panel, thus not all the current downloads can be managed from the panel.}}
* {{done|The panel can be fixed-width.}}
** This must ensure that the panel does not expand to the full screen height when opened in a maximized window.
* {{done|Notifications are sorted by start time, most recent first.}}
** It's consistent with notification sorting in other platforms, and the order doesn't change unexpectedly while the panel is open.
* {{done|The panel contains a link to the full list of downloads.}}
* {{done|The panel is fixed-width.}}
** Resizeability is not as much of an issue with the downloads panel as it is with the bookmarks panel, because the downloads panel is less of a "management" interface. The full title of a download is shown in a tooltip.
** Resizeability is not as much of an issue with the downloads panel as it is with the bookmarks panel, because the downloads panel is less of a "management" interface. The full title of a download is shown in a tooltip.
* {{done|When there are no download items, the panel's width can be smaller.}}
* {{done|When there are no download items, the panel's width can be smaller.}}
* {{done|Notifications are sorted by start time, most recent first.}}
** It's consistent with notification sorting in other platforms, and the order doesn't change unexpectedly while the panel is open.
** Another option is to show first the items on which an action is more likely, i.e. completed downloads first, then failed, then running downloads.
* {{done|The height of the panel should be limited in order for the panel not to expand to the full screen height.}}
* {{ok|The panel should not to expand to the full screen height.}}
* {{done|When there are more items than the panel's height allows, a scrollbar should be visible for accessing all the downloads.}}


Individual notifications have the following behavior:
Individual notifications have the following behavior:
Line 98: Line 90:
* Notifications should disappear as soon as the user is done with them. We can't know the exact moment, so we use a set of heuristics.
* Notifications should disappear as soon as the user is done with them. We can't know the exact moment, so we use a set of heuristics.
** {{done|Completed downloads are removed from the list when the last browser window is closed.}}
** {{done|Completed downloads are removed from the list when the last browser window is closed.}}
*** Active downloads have no session boundary. When the browser is closed and reopened, they're paused and resumed automatically whenever possible.
*** Active downloads are never removed from the list automatically, though they can be hidden by most recent downloads.
*** Completed downloads are not restored if the previous session is restored. They can still be accessed from the Library window.
*** Completed downloads are not restored if the previous session is restored. They can still be accessed from the Downloads view in the Library window.
** <span style="color: orange; font-size: 80%; font-weight: bold">[INPUT]</span> Maybe, remove completed downloads after some time, even if a browser window is still open.
** {{done|Canceling a running download does not make the notification disappear.}}
** {{done|Canceling a running download does not make the notification disappear.}}
** {{done|Manually removing a download from the list is possible, but not a top-level interaction.}}
** {{done|Manually removing a download from the list is possible, but not a top-level interaction.}}
Line 121: Line 114:
* When the download has finished:
* When the download has finished:
** {{done|Clicking the main area opens the file.}}
** {{done|Clicking the main area opens the file.}}
*** {{ok|If the target file is missing, the main area should not be clickable. The existence detection should happen in the background.}}
** {{done|The button opens the containing folder.}}
** {{done|The button opens the containing folder.}}
** {{done|The context menu has commands to remove from list, go to download page, copy download link.}}
** {{done|The context menu has commands to remove from list, go to download page, copy download link.}}

Revision as of 10:35, 31 May 2012

Please use "Edit with form" above to edit this page.

Status

Panel-based Download Manager
Stage Development
Status In progress
Release target Firefox 16
Health OK
Status note `

{{#set:Feature name=Panel-based Download Manager

|Feature stage=Development |Feature status=In progress |Feature version=Firefox 16 |Feature health=OK |Feature status note=` }}

Team

Product manager Asa Dotzler
Directly Responsible Individual Marco Bonardo
Lead engineer Paolo Amadini, Jared Wein
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Simona Badau
UX lead Alexander Limi
Product marketing lead `
Operations lead `
Additional members Sinchan Banerjee, Stephen Horlander, Shawn Wilsher, Mehdi Mulani

{{#set:Feature product manager=Asa Dotzler

|Feature feature manager=Marco Bonardo |Feature lead engineer=Paolo Amadini, Jared Wein |Feature security lead=` |Feature privacy lead=` |Feature localization lead=` |Feature accessibility lead=` |Feature qa lead=Simona Badau |Feature ux lead=Alexander Limi |Feature product marketing lead=` |Feature operations lead=` |Feature additional members=Sinchan Banerjee, Stephen Horlander, Shawn Wilsher, Mehdi Mulani }}

Open issues/risks

`

Stage 1: Definition

1. Feature overview

THE DOWNLOADS PANEL IS AVAILABLE IN NIGHTLY BUILDS FOR TESTING.

IF YOU WANT TO HELP, READ THE FRIENDLY STATUS PAGE FIRST!

This is the detailed technical feature page for the Downloads Panel. This feature is part of the download user experience improvements. An overview of the feature status can be found in the friendly status page instead.

The current Download Manager user interface is not optimized for several common use cases, and is not yet integrated with the latest Firefox user experience design. Integrating this interface with the latest design is the first step to improve the downloads user experience.

In the new design, an easily accessible panel shows you current state of downloads, your recent downloads, and gives you a good indicator of how far along your download is. Advanced operations like searching, clearing entries, sorting, and everything else related to download history is integrated with the interface for browsing history.

Goals

  • Fit in with the overall goals of download user experience improvements.
  • Remove the need for a separate Download Manager window.
  • Unify download history with browsing history.
  • Support common use cases, but not necessarily all of those supported previously.
  • Improve the user interface code, and use asynchronous database queries.

2. Users & use cases

We also probably want to consider some, but not all, of the use cases previously suggested for the Download Manager. Note that the current Download Manager does not support all of suggested use cases, while some of them are in the scope of different download user experience improvements.

3. Dependencies

`

4. Requirements

`

Non-goals

  • Power user fuctionality, like handling many concurrent downloads.
  • File management, except for showing where the target file is located.
  • Improve download performance or general front-end responsiveness.
    • Note that we still don't want to introduce significant regressions.
  • Improve the Download Manager or Places back-end C++ code, or make it asynchronous.
  • Any other improvement already defined as download user experience improvements.
    • For example, streamlining the entire download process.

Stage 2: Design

5. Functional specification

`

6. User experience design

We'll reach the stated goals by adding a panel for handling the most recent downloads, anchored to a status indicator in the main browser window, and moving the interface for handling all downloads to a new Downloads predefined folder in the Library window.

In the following sections, entries are marked with these indicators:

  • [ON TRACK] Not yet implemented.
  • [INPUT] Needs design feedback, or a prototype implementation to understand what to do.
  • [DONE] Has an initial implementation that can be tested.

Downloads indicator

Provides a status overview, visible during normal browsing when there are download notifications.

  • [ON TRACK] Always visible by default, located on the navigation bar, between the search bar and the home button.
  • [DONE] When there are no active downloads, shows the classic button icon (downwards arrow).
  • [DONE] When there are active downloads, shows a progress bar and a compact indication of the remaining time, if known.

Provides visual indication of new downloads or completed downloads.

  • [DONE] New downloads are notified with a brief animation near the indicator.
  • [DONE] Finished or failed downloads make the indicator glow until the panel is displayed.
  • [DONE] The usual screen-level notification is shown when all downloads are completed.
    • Note that this is shown even when the indicator is visible.

Provides the anchor for the panel.

  • [ON TRACK] If the indicator is removed from the toolbars, or is located in an invisible toolbar, the panel will never be displayed.
  • [ON TRACK] User-initiated requests to show downloads will always open the Downloads view in the Library window, regardless of indicator visibility.

Downloads panel

The entries in the popup panel are just notifications saying that a download is going on, and that a download has finished.

The panel works as follows:

  • [ON TRACK] The panel should be shown automatically for the first few downloads after the feature is enabled, for discoverability.
  • [ON TRACK] Only a few recent downloads are shown in the panel, thus not all the current downloads can be managed from the panel.
    • This must ensure that the panel does not expand to the full screen height when opened in a maximized window.
  • [DONE] Notifications are sorted by start time, most recent first.
    • It's consistent with notification sorting in other platforms, and the order doesn't change unexpectedly while the panel is open.
  • [DONE] The panel contains a link to the full list of downloads.
  • [DONE] The panel is fixed-width.
    • Resizeability is not as much of an issue with the downloads panel as it is with the bookmarks panel, because the downloads panel is less of a "management" interface. The full title of a download is shown in a tooltip.
  • [DONE] When there are no download items, the panel's width can be smaller.

Individual notifications have the following behavior:

  • Notifications should disappear as soon as the user is done with them. We can't know the exact moment, so we use a set of heuristics.
    • [DONE] Completed downloads are removed from the list when the last browser window is closed.
      • Active downloads are never removed from the list automatically, though they can be hidden by most recent downloads.
      • Completed downloads are not restored if the previous session is restored. They can still be accessed from the Downloads view in the Library window.
    • [INPUT] Maybe, remove completed downloads after some time, even if a browser window is still open.
    • [DONE] Canceling a running download does not make the notification disappear.
    • [DONE] Manually removing a download from the list is possible, but not a top-level interaction.
  • There are no actions that make sense on more than one notification at a time.
  • [DONE] The height of each notification does not change when its state changes.

The layout of a notification includes a main area with the download's distinctive details, and an optional action button. In some states of the download, the main area can be clicked. Double-clicking the main area, instead, is not a supported interaction.

A context menu for the item can always be displayed, though it never contains commands already available through a top-level interaction.

  • [DONE] When the main area can be clicked, a link-style mouse cursor is displayed on hover.
  • When the download is ongoing [not paused or finished or canceled]:
    • [DONE] The button cancels the download.
    • [DONE] The context menu has commands to pause, open containing folder, go to download page, copy download link.
  • When the download is paused:
    • [DONE] The button cancels the download.
    • [DONE] The context menu has commands to resume, open containing folder, go to download page, copy download link.
  • When the download is failed or canceled:
    • [DONE] The button retries the download. Often, the download will resume from where it stopped, if supported by the server.
    • [DONE] The context menu has commands to remove from list, go to download page, copy download link.
  • When the download has finished:
    • [DONE] Clicking the main area opens the file.
      • [ON TRACK] If the target file is missing, the main area should not be clickable. The existence detection should happen in the background.
    • [DONE] The button opens the containing folder.
    • [DONE] The context menu has commands to remove from list, go to download page, copy download link.

There are additional items in the context menu that act on all downloads:

    • [DONE] A context menu item is available for removing completed downloads from the list, without closing the last browser window.

Library window

The Library window allows the user to find and open previous downloads.

  • [DONE] Items can be found by source location or original target file name.
    • Note that downloaded entries can be mixed with normal pages in history results, and a normal web page can be downloaded locally.
  • [ON TRACK] You can see the full target path of the download.
  • [INPUT] In all history views, we want to visually mark those entries that are downloads and whose target file exists, unless the entry was also visited as a normal page.
    • [ON TRACK] Double-clicking those entries opens the target file instead of navigating to the source URL.
    • In other words, we open the file in those cases where we expect that double-clicking the history entry would make the download dialog appear.
  • [ON TRACK] In the Downloads view, the size of file, and time should be there too.

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:

Relevant patches that are available in nightly builds:

  • bug 591289: Save chosen download file name and other metadata in Places history.
  • bug 564900: Add folder to Library sidebar specifically for downloads.
  • bug 726444: Implement the Downloads Panel.

Additional patches needed to test the feature:

  • None. Updates will be available in nightly builds.

Work required to release and enable the feature for everyone:


Full Query
ID Summary Priority Status
675902 New Downloads view for Places Library -- RESOLVED
746658 Failed downloads can't be removed from panel -- VERIFIED
746674 Download icon progressbar hard to see for people with mono/dichromacy. -- RESOLVED
746756 On first feature activation the panel should limit reported downloads -- RESOLVED
746772 Downloads button disappears from toolbar when customizing -- VERIFIED
746775 Clicks to close a context-menu in a panel are also consumed by the panel -- RESOLVED
746783 "Open Containing Folder" doesn't appear in context menu of downloads P2 RESOLVED
748541 Disable the Downloads Panel in Firefox 14 -- VERIFIED
751947 Downloads panel appears at the top left of the screen -- VERIFIED
758515 New download's button graphic upon completion is buggy -- RESOLVED
759397 Remove per-item download rate clutter -- VERIFIED
764755 Remove the aero glass style border of arrow panels and reduce the arrow size -- RESOLVED
766263 Downloads Panel should not pop up automatically once per Firefox session -- VERIFIED
766654 Pasting a URL into download manager to start a download does not work with the new download panel -- VERIFIED
773267 The Downloads Panel flickers at the top left of the screen before anchoring to the button -- VERIFIED
774801 Disable the Downloads Panel in Firefox 16 -- VERIFIED
779223 Downloads button is blank with custom themes -- VERIFIED
786182 Disable the Downloads Panel in Firefox 17 -- VERIFIED
786662 Open Containing Folder in right click menu disabled after pause -- VERIFIED
787285 Button-within-a-button in downloads panel feels confusing P2 RESOLVED
791569 Downloads panel and download manager show up on first download, then only download manager (download button missing) -- VERIFIED
794332 download bar looks very ugly with Persona applied -- RESOLVED
794752 downloads toolbar button changes size the first time it's clicked -- VERIFIED
797547 After clearing Downloads Panel list, panel pops up way to the left of the Downloads toggle button. -- RESOLVED
799436 Disable the Downloads Panel in Firefox 18 -- VERIFIED
799929 Downloads Panel item icons are practically invisible on OSX. -- RESOLVED
800424 Downloads Panel jumps down twice on clicking the downloads button -- RESOLVED
801055 When Background Theme applied, Downloads toolbar button is strangely tall. -- VERIFIED
803546 Previewing background theme causes Downloads button to jump around. -- VERIFIED
803564 Double focus ring around buttons in the downloads panel -- RESOLVED
806076 Download Panel should need double-click to open downloaded files -- RESOLVED
807708 Old download window opens when starting download with downloads button invisible. -- RESOLVED
807709 Downloads Panel does not always close when handing off operations to the OS -- VERIFIED
808169 Downloads indicator does not load for in-progress downloads on session restore -- RESOLVED
808277 Show the progress of downloads that are not visible in the panel -- VERIFIED
809022 The downloads button opens the panel even if it's disabled -- VERIFIED
809852 Allow cycling through the "show download history" entry using the arrows -- RESOLVED
810208 Clicking the Downloads Finished alert box always brings up public download list P1 RESOLVED
810340 Downloads button changes size on OSX depending on the time remaining in a download -- RESOLVED
810343 Downloads button paused icon is too large in large icon mode. -- VERIFIED
811076 progressmeter in downloads indicator needs native colours on winstripe and gnomestripe -- RESOLVED
811263 Applying background theme causes Downloads button to jump around -- VERIFIED
812221 Indicator attention state needs more contrast on gnomestripe P1 VERIFIED
812255 Need 2x icons for download items. P2 RESOLVED
812343 Empty panel on Windows needs downloads richlist collapsed -- VERIFIED
812345 Downloads indicator button still resizes sometimes for some remaining download times. -- VERIFIED
812813 Downloads panel needs to draw your attention when a download finishes P2 RESOLVED
813038 Download Manager does not show progress in Private Browsing mode anymore -- RESOLVED
813207 Malformed license-header comment-block causes panel to look odd on gnomestripe -- VERIFIED
814099 Paused downloads do not behave properly in panel after the session is restored. -- VERIFIED
814509 Downloads summary background is different from "Show all downloads" button background -- VERIFIED
814510 Downloads Summary icon needs to be revisited P2 RESOLVED
814961 Hide the summary in the Downloads Panel if there are no hidden downloads in progress or paused. -- VERIFIED
815295 Disable the Downloads Panel in Firefox 19 P1 RESOLVED
815352 Make it possible to open the downloads view in the Library window to be opened up inside a tab P1 VERIFIED
815678 Downloads Panel changes width when scanning completed download -- VERIFIED
815691 The panel's context menu doesn't change after clicking on a different item -- VERIFIED
816986 Downloads sometimes don't appear in the downloads panel -- RESOLVED
817006 "Remove from list" option in the panel is confusing -- VERIFIED
819283 Downloads panel footer overlaps panel border P2 RESOLVED
819428 Improve keyboard navigation in Downloads Panel P2 VERIFIED
820533 Change Downloads Summary string from "+X other current downloads" to "+ X other downloads" -- VERIFIED
822244 Use the Downloads View in Places if it's preffed on P1 RESOLVED
822257 gnomestripe theme-ing for new Downloads View in Places P1 RESOLVED
822258 winstripe theme-ing for new Downloads View in Places P1 RESOLVED
822343 Improve downloads view rendering time P1 RESOLVED
822572 Add a Clear Downloads button to the Library view P1 RESOLVED
822689 Nothing happens when clicking on a complete download in the Downloads Panel -- RESOLVED
822692 Downloads titles are often empty in the Library view -- RESOLVED
822848 hide the detailsPane for the new downloads view P1 RESOLVED
823095 Better pinstripe theme-ing for new Downloads View in Places P1 RESOLVED
824240 Make the Downloads View Seamonkey-friendly -- RESOLVED
824290 Arrow panels anchored too close to the edge of the screen have their anchor points flipped. -- RESOLVED
824345 Hide old downloads manager preferences when the panel is enabled P1 VERIFIED
825060 Enable the new Downloads View by default when the panel is enabled P1 VERIFIED
825295 Make the in-content downloads view show only private downloads when opened in a private browsing window -- VERIFIED
825454 Make contentAreaDownloadsView.xul a proper in-content UI -- RESOLVED
825852 Add a further migration UI to move the downloads button in place. P1 RESOLVED
826425 double-click on finished downloads in Library view doesn't open them P1 VERIFIED
826729 in-content PB view looks weird and has non-working context menu P1 RESOLVED
826991 Store download state and end time in an annotation (avoid I/O for new history downloads) P1 RESOLVED
826999 Add @2x arrow icons for the Downloads Panel notifications P2 RESOLVED
827015 Cleanup Clear Downloads button theming P1 VERIFIED
827164 Double-click to open exe downloads not working P1 VERIFIED
827245 Library downloads view hangs with thousands of entries P1 RESOLVED
827293 The first list item in the downloads view should be selected when it's opened (was: Error: TypeError: view.selectNode is not a function) P2 RESOLVED
827298 Some "Unknown size" entries lack generic icon and Remove from history context menu P2 RESOLVED
827899 Selected Tab Overlaps Finished Download Animation -- RESOLVED
828232 Allow to retry history downloads P2 VERIFIED
828247 Library downloads view does not show the end time for completed downloads -- VERIFIED
828302 Long download file names are not properly cropped P2 VERIFIED
828488 Properly set the "active" attribute for session downloads -- RESOLVED
828895 keyboard navigation in the Library View is bogus P1 RESOLVED
829089 Downloads are apparently removed from history when the last browser window is closed -- RESOLVED
829258 Include missing @2x images in pinstripe/jar.mn -- RESOLVED
829571 Retina buttons are wrongly sized -- RESOLVED
829772 Download view in Places doesn't open if download starts with now download button -- RESOLVED
830064 The new downloads view in the Places Library does not support drag and drop -- VERIFIED
830205 Download button shows progress remaining after download finishes -- VERIFIED
830242 [QAC generated] Double clicking a folder in the right side pane opens first item into the current tab. And sent the 'library' into the background. -- RESOLVED
830323 Clear Downloads button is broken on Mac OS X -- VERIFIED
830329 Fix the enabled state of the clear downloads command (was: Clear Downloads button is disabled if the view is not focused) -- VERIFIED
830405 Make Clear Downloads button "tabbable" on Mac -- RESOLVED
830407 Delayed selection confuses screen readers -- RESOLVED
830842 Clear Downloads button should appear only for Downloads View -- VERIFIED
831758 "Error: _getDownloadMetaData called for an inactive item." when clearing download search -- RESOLVED
832471 Library | Clear Downloads doesn't update remove all downloads from the view -- VERIFIED
832949 Disable common Organize options when the Downloads view is in use -- RESOLVED
836211 Common organize options are still enabled on the downloads view when a previous view had focus -- RESOLVED
836271 The progress animation in the Downloads view keeps on loading until the view is closed -- RESOLVED
836283 In the Downloads View the Cancel button stops working -- RESOLVED
837117 Downloaded items change position in the downloads view if Clear List is selected -- RESOLVED
838599 Downloads summary description font is too large -- VERIFIED
838663 Remove support for browser.download.panel.removeFinishedDownloads -- RESOLVED

114 Total; 0 Open (0%); 63 Resolved (55.26%); 51 Verified (44.74%);


Follow-ups

This section lists non-blocking, suggested follow-ups that need more work before filing a proper bug. Often a search for existing bugs is required before filing a separate bug.

Description References
Cu.import failures don't show up in the Error Console, or the test logs. Bug 564934, comment 224
No feedback when the "open download page" link is clicked and the target page is not available. Bug 564934, comment 191
Allow asynchronous termination functions in the testing framework. Bug 564934, comment 259
Scroll to @@ +47,5 @@
Move original nsDownloadManagerUI.js to mozapps/downloads. Bug 564934, comment 192
NetUtil.newURI should QueryInterface to nsIFileURL automatically. Bug 564934, comment 286
Move fileExecutableSecurityWarning to a common place in Toolkit.

Stage 5: Release

10. Landing criteria

` {{#set:Feature open issues and risks=`

|Feature overview=

THE DOWNLOADS PANEL IS AVAILABLE IN NIGHTLY BUILDS FOR TESTING.

IF YOU WANT TO HELP, READ THE FRIENDLY STATUS PAGE FIRST!

This is the detailed technical feature page for the Downloads Panel. This feature is part of the download user experience improvements. An overview of the feature status can be found in the friendly status page instead.

The current Download Manager user interface is not optimized for several common use cases, and is not yet integrated with the latest Firefox user experience design. Integrating this interface with the latest design is the first step to improve the downloads user experience.

In the new design, an easily accessible panel shows you current state of downloads, your recent downloads, and gives you a good indicator of how far along your download is. Advanced operations like searching, clearing entries, sorting, and everything else related to download history is integrated with the interface for browsing history.

Goals

  • Fit in with the overall goals of download user experience improvements.
  • Remove the need for a separate Download Manager window.
  • Unify download history with browsing history.
  • Support common use cases, but not necessarily all of those supported previously.
  • Improve the user interface code, and use asynchronous database queries.

|Feature users and use cases=* Downloading and running a setup program (Bug 564934, comment 68 and attachment 467459).

We also probably want to consider some, but not all, of the use cases previously suggested for the Download Manager. Note that the current Download Manager does not support all of suggested use cases, while some of them are in the scope of different download user experience improvements. |Feature dependencies=` |Feature requirements=` |Feature non-goals=* Power user fuctionality, like handling many concurrent downloads.

  • File management, except for showing where the target file is located.
  • Improve download performance or general front-end responsiveness.
    • Note that we still don't want to introduce significant regressions.
  • Improve the Download Manager or Places back-end C++ code, or make it asynchronous.
  • Any other improvement already defined as download user experience improvements.
    • For example, streamlining the entire download process.

|Feature functional spec=` |Feature ux design=We'll reach the stated goals by adding a panel for handling the most recent downloads, anchored to a status indicator in the main browser window, and moving the interface for handling all downloads to a new Downloads predefined folder in the Library window.

In the following sections, entries are marked with these indicators:

  • [ON TRACK] Not yet implemented.
  • [INPUT] Needs design feedback, or a prototype implementation to understand what to do.
  • [DONE] Has an initial implementation that can be tested.

Downloads indicator

Provides a status overview, visible during normal browsing when there are download notifications.

  • [ON TRACK] Always visible by default, located on the navigation bar, between the search bar and the home button.
  • [DONE] When there are no active downloads, shows the classic button icon (downwards arrow).
  • [DONE] When there are active downloads, shows a progress bar and a compact indication of the remaining time, if known.

Provides visual indication of new downloads or completed downloads.

  • [DONE] New downloads are notified with a brief animation near the indicator.
  • [DONE] Finished or failed downloads make the indicator glow until the panel is displayed.
  • [DONE] The usual screen-level notification is shown when all downloads are completed.
    • Note that this is shown even when the indicator is visible.

Provides the anchor for the panel.

  • [ON TRACK] If the indicator is removed from the toolbars, or is located in an invisible toolbar, the panel will never be displayed.
  • [ON TRACK] User-initiated requests to show downloads will always open the Downloads view in the Library window, regardless of indicator visibility.

Downloads panel

The entries in the popup panel are just notifications saying that a download is going on, and that a download has finished.

The panel works as follows:

  • [ON TRACK] The panel should be shown automatically for the first few downloads after the feature is enabled, for discoverability.
  • [ON TRACK] Only a few recent downloads are shown in the panel, thus not all the current downloads can be managed from the panel.
    • This must ensure that the panel does not expand to the full screen height when opened in a maximized window.
  • [DONE] Notifications are sorted by start time, most recent first.
    • It's consistent with notification sorting in other platforms, and the order doesn't change unexpectedly while the panel is open.
  • [DONE] The panel contains a link to the full list of downloads.
  • [DONE] The panel is fixed-width.
    • Resizeability is not as much of an issue with the downloads panel as it is with the bookmarks panel, because the downloads panel is less of a "management" interface. The full title of a download is shown in a tooltip.
  • [DONE] When there are no download items, the panel's width can be smaller.

Individual notifications have the following behavior:

  • Notifications should disappear as soon as the user is done with them. We can't know the exact moment, so we use a set of heuristics.
    • [DONE] Completed downloads are removed from the list when the last browser window is closed.
      • Active downloads are never removed from the list automatically, though they can be hidden by most recent downloads.
      • Completed downloads are not restored if the previous session is restored. They can still be accessed from the Downloads view in the Library window.
    • [INPUT] Maybe, remove completed downloads after some time, even if a browser window is still open.
    • [DONE] Canceling a running download does not make the notification disappear.
    • [DONE] Manually removing a download from the list is possible, but not a top-level interaction.
  • There are no actions that make sense on more than one notification at a time.
  • [DONE] The height of each notification does not change when its state changes.

The layout of a notification includes a main area with the download's distinctive details, and an optional action button. In some states of the download, the main area can be clicked. Double-clicking the main area, instead, is not a supported interaction.

A context menu for the item can always be displayed, though it never contains commands already available through a top-level interaction.

  • [DONE] When the main area can be clicked, a link-style mouse cursor is displayed on hover.
  • When the download is ongoing [not paused or finished or canceled]:
    • [DONE] The button cancels the download.
    • [DONE] The context menu has commands to pause, open containing folder, go to download page, copy download link.
  • When the download is paused:
    • [DONE] The button cancels the download.
    • [DONE] The context menu has commands to resume, open containing folder, go to download page, copy download link.
  • When the download is failed or canceled:
    • [DONE] The button retries the download. Often, the download will resume from where it stopped, if supported by the server.
    • [DONE] The context menu has commands to remove from list, go to download page, copy download link.
  • When the download has finished:
    • [DONE] Clicking the main area opens the file.
      • [ON TRACK] If the target file is missing, the main area should not be clickable. The existence detection should happen in the background.
    • [DONE] The button opens the containing folder.
    • [DONE] The context menu has commands to remove from list, go to download page, copy download link.

There are additional items in the context menu that act on all downloads:

    • [DONE] A context menu item is available for removing completed downloads from the list, without closing the last browser window.

Library window

The Library window allows the user to find and open previous downloads.

  • [DONE] Items can be found by source location or original target file name.
    • Note that downloaded entries can be mixed with normal pages in history results, and a normal web page can be downloaded locally.
  • [ON TRACK] You can see the full target path of the download.
  • [INPUT] In all history views, we want to visually mark those entries that are downloads and whose target file exists, unless the entry was also visited as a normal page.
    • [ON TRACK] Double-clicking those entries opens the target file instead of navigating to the source URL.
    • In other words, we open the file in those cases where we expect that double-clicking the history entry would make the download dialog appear.
  • [ON TRACK] In the Downloads view, the size of file, and time should be there too.

|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:

Relevant patches that are available in nightly builds:

  • bug 591289: Save chosen download file name and other metadata in Places history.
  • bug 564900: Add folder to Library sidebar specifically for downloads.
  • bug 726444: Implement the Downloads Panel.

Additional patches needed to test the feature:

  • None. Updates will be available in nightly builds.

Work required to release and enable the feature for everyone:


Full Query
ID Summary Priority Status
675902 New Downloads view for Places Library -- RESOLVED
746658 Failed downloads can't be removed from panel -- VERIFIED
746674 Download icon progressbar hard to see for people with mono/dichromacy. -- RESOLVED
746756 On first feature activation the panel should limit reported downloads -- RESOLVED
746772 Downloads button disappears from toolbar when customizing -- VERIFIED
746775 Clicks to close a context-menu in a panel are also consumed by the panel -- RESOLVED
746783 "Open Containing Folder" doesn't appear in context menu of downloads P2 RESOLVED
748541 Disable the Downloads Panel in Firefox 14 -- VERIFIED
751947 Downloads panel appears at the top left of the screen -- VERIFIED
758515 New download's button graphic upon completion is buggy -- RESOLVED
759397 Remove per-item download rate clutter -- VERIFIED
764755 Remove the aero glass style border of arrow panels and reduce the arrow size -- RESOLVED
766263 Downloads Panel should not pop up automatically once per Firefox session -- VERIFIED
766654 Pasting a URL into download manager to start a download does not work with the new download panel -- VERIFIED
773267 The Downloads Panel flickers at the top left of the screen before anchoring to the button -- VERIFIED
774801 Disable the Downloads Panel in Firefox 16 -- VERIFIED
779223 Downloads button is blank with custom themes -- VERIFIED
786182 Disable the Downloads Panel in Firefox 17 -- VERIFIED
786662 Open Containing Folder in right click menu disabled after pause -- VERIFIED
787285 Button-within-a-button in downloads panel feels confusing P2 RESOLVED
791569 Downloads panel and download manager show up on first download, then only download manager (download button missing) -- VERIFIED
794332 download bar looks very ugly with Persona applied -- RESOLVED
794752 downloads toolbar button changes size the first time it's clicked -- VERIFIED
797547 After clearing Downloads Panel list, panel pops up way to the left of the Downloads toggle button. -- RESOLVED
799436 Disable the Downloads Panel in Firefox 18 -- VERIFIED
799929 Downloads Panel item icons are practically invisible on OSX. -- RESOLVED
800424 Downloads Panel jumps down twice on clicking the downloads button -- RESOLVED
801055 When Background Theme applied, Downloads toolbar button is strangely tall. -- VERIFIED
803546 Previewing background theme causes Downloads button to jump around. -- VERIFIED
803564 Double focus ring around buttons in the downloads panel -- RESOLVED
806076 Download Panel should need double-click to open downloaded files -- RESOLVED
807708 Old download window opens when starting download with downloads button invisible. -- RESOLVED
807709 Downloads Panel does not always close when handing off operations to the OS -- VERIFIED
808169 Downloads indicator does not load for in-progress downloads on session restore -- RESOLVED
808277 Show the progress of downloads that are not visible in the panel -- VERIFIED
809022 The downloads button opens the panel even if it's disabled -- VERIFIED
809852 Allow cycling through the "show download history" entry using the arrows -- RESOLVED
810208 Clicking the Downloads Finished alert box always brings up public download list P1 RESOLVED
810340 Downloads button changes size on OSX depending on the time remaining in a download -- RESOLVED
810343 Downloads button paused icon is too large in large icon mode. -- VERIFIED
811076 progressmeter in downloads indicator needs native colours on winstripe and gnomestripe -- RESOLVED
811263 Applying background theme causes Downloads button to jump around -- VERIFIED
812221 Indicator attention state needs more contrast on gnomestripe P1 VERIFIED
812255 Need 2x icons for download items. P2 RESOLVED
812343 Empty panel on Windows needs downloads richlist collapsed -- VERIFIED
812345 Downloads indicator button still resizes sometimes for some remaining download times. -- VERIFIED
812813 Downloads panel needs to draw your attention when a download finishes P2 RESOLVED
813038 Download Manager does not show progress in Private Browsing mode anymore -- RESOLVED
813207 Malformed license-header comment-block causes panel to look odd on gnomestripe -- VERIFIED
814099 Paused downloads do not behave properly in panel after the session is restored. -- VERIFIED
814509 Downloads summary background is different from "Show all downloads" button background -- VERIFIED
814510 Downloads Summary icon needs to be revisited P2 RESOLVED
814961 Hide the summary in the Downloads Panel if there are no hidden downloads in progress or paused. -- VERIFIED
815295 Disable the Downloads Panel in Firefox 19 P1 RESOLVED
815352 Make it possible to open the downloads view in the Library window to be opened up inside a tab P1 VERIFIED
815678 Downloads Panel changes width when scanning completed download -- VERIFIED
815691 The panel's context menu doesn't change after clicking on a different item -- VERIFIED
816986 Downloads sometimes don't appear in the downloads panel -- RESOLVED
817006 "Remove from list" option in the panel is confusing -- VERIFIED
819283 Downloads panel footer overlaps panel border P2 RESOLVED
819428 Improve keyboard navigation in Downloads Panel P2 VERIFIED
820533 Change Downloads Summary string from "+X other current downloads" to "+ X other downloads" -- VERIFIED
822244 Use the Downloads View in Places if it's preffed on P1 RESOLVED
822257 gnomestripe theme-ing for new Downloads View in Places P1 RESOLVED
822258 winstripe theme-ing for new Downloads View in Places P1 RESOLVED
822343 Improve downloads view rendering time P1 RESOLVED
822572 Add a Clear Downloads button to the Library view P1 RESOLVED
822689 Nothing happens when clicking on a complete download in the Downloads Panel -- RESOLVED
822692 Downloads titles are often empty in the Library view -- RESOLVED
822848 hide the detailsPane for the new downloads view P1 RESOLVED
823095 Better pinstripe theme-ing for new Downloads View in Places P1 RESOLVED
824240 Make the Downloads View Seamonkey-friendly -- RESOLVED
824290 Arrow panels anchored too close to the edge of the screen have their anchor points flipped. -- RESOLVED
824345 Hide old downloads manager preferences when the panel is enabled P1 VERIFIED
825060 Enable the new Downloads View by default when the panel is enabled P1 VERIFIED
825295 Make the in-content downloads view show only private downloads when opened in a private browsing window -- VERIFIED
825454 Make contentAreaDownloadsView.xul a proper in-content UI -- RESOLVED
825852 Add a further migration UI to move the downloads button in place. P1 RESOLVED
826425 double-click on finished downloads in Library view doesn't open them P1 VERIFIED
826729 in-content PB view looks weird and has non-working context menu P1 RESOLVED
826991 Store download state and end time in an annotation (avoid I/O for new history downloads) P1 RESOLVED
826999 Add @2x arrow icons for the Downloads Panel notifications P2 RESOLVED
827015 Cleanup Clear Downloads button theming P1 VERIFIED
827164 Double-click to open exe downloads not working P1 VERIFIED
827245 Library downloads view hangs with thousands of entries P1 RESOLVED
827293 The first list item in the downloads view should be selected when it's opened (was: Error: TypeError: view.selectNode is not a function) P2 RESOLVED
827298 Some "Unknown size" entries lack generic icon and Remove from history context menu P2 RESOLVED
827899 Selected Tab Overlaps Finished Download Animation -- RESOLVED
828232 Allow to retry history downloads P2 VERIFIED
828247 Library downloads view does not show the end time for completed downloads -- VERIFIED
828302 Long download file names are not properly cropped P2 VERIFIED
828488 Properly set the "active" attribute for session downloads -- RESOLVED
828895 keyboard navigation in the Library View is bogus P1 RESOLVED
829089 Downloads are apparently removed from history when the last browser window is closed -- RESOLVED
829258 Include missing @2x images in pinstripe/jar.mn -- RESOLVED
829571 Retina buttons are wrongly sized -- RESOLVED
829772 Download view in Places doesn't open if download starts with now download button -- RESOLVED
830064 The new downloads view in the Places Library does not support drag and drop -- VERIFIED
830205 Download button shows progress remaining after download finishes -- VERIFIED
830242 [QAC generated] Double clicking a folder in the right side pane opens first item into the current tab. And sent the 'library' into the background. -- RESOLVED
830323 Clear Downloads button is broken on Mac OS X -- VERIFIED
830329 Fix the enabled state of the clear downloads command (was: Clear Downloads button is disabled if the view is not focused) -- VERIFIED
830405 Make Clear Downloads button "tabbable" on Mac -- RESOLVED
830407 Delayed selection confuses screen readers -- RESOLVED
830842 Clear Downloads button should appear only for Downloads View -- VERIFIED
831758 "Error: _getDownloadMetaData called for an inactive item." when clearing download search -- RESOLVED
832471 Library | Clear Downloads doesn't update remove all downloads from the view -- VERIFIED
832949 Disable common Organize options when the Downloads view is in use -- RESOLVED
836211 Common organize options are still enabled on the downloads view when a previous view had focus -- RESOLVED
836271 The progress animation in the Downloads view keeps on loading until the view is closed -- RESOLVED
836283 In the Downloads View the Cancel button stops working -- RESOLVED
837117 Downloaded items change position in the downloads view if Clear List is selected -- RESOLVED
838599 Downloads summary description font is too large -- VERIFIED
838663 Remove support for browser.download.panel.removeFinishedDownloads -- RESOLVED

114 Total; 0 Open (0%); 63 Resolved (55.26%); 51 Verified (44.74%);


Follow-ups

This section lists non-blocking, suggested follow-ups that need more work before filing a proper bug. Often a search for existing bugs is required before filing a separate bug.

Description References
Cu.import failures don't show up in the Error Console, or the test logs. Bug 564934, comment 224
No feedback when the "open download page" link is clicked and the target page is not available. Bug 564934, comment 191
Allow asynchronous termination functions in the testing framework. Bug 564934, comment 259
Scroll to @@ +47,5 @@
Move original nsDownloadManagerUI.js to mozapps/downloads. Bug 564934, comment 192
NetUtil.newURI should QueryInterface to nsIFileURL automatically. Bug 564934, comment 286
Move fileExecutableSecurityWarning to a common place in Toolkit.

|Feature landing criteria=` }}

Feature details

Priority P2
Rank 4
Theme / Goal Experience
Roadmap Firefox Desktop
Secondary roadmap `
Feature list Desktop
Project `
Engineering team Desktop front-end

{{#set:Feature priority=P2

|Feature rank=4 |Feature theme=Experience |Feature roadmap=Firefox Desktop |Feature secondary roadmap=` |Feature list=Desktop |Feature project=` |Feature engineering team=Desktop front-end }}

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-complete Notes
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` Test Plan
User experience ` `
Product marketing ` `
Operations ` `

{{#set:Feature products status=`

|Feature products notes=` |Feature engineering status=` |Feature engineering notes=` |Feature security status=sec-review-complete |Feature security health=OK |Feature security notes=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=Test Plan |Feature ux status=` |Feature ux notes=` |Feature product marketing status=` |Feature product marketing notes=` |Feature operations status=` |Feature operations notes=` }}