Last Comment Bug 873355 - Download progress dialog can break in Private Browsing mode
: Download progress dialog can break in Private Browsing mode
Status: RESOLVED FIXED
:
Product: SeaMonkey
Classification: Client Software
Component: Download & File Handling (show other bugs)
: Trunk
: All All
: -- normal (vote)
: seamonkey2.21
Assigned To: neil@parkwaycc.co.uk
:
Mentors:
Depends on:
Blocks: 460895
  Show dependency treegraph
 
Reported: 2013-05-16 21:30 PDT by rsx11m
Modified: 2013-06-23 04:37 PDT (History)
2 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
fixed
fixed
fixed


Attachments
Screenshot on Windows 7 (26.89 KB, image/png)
2013-05-16 21:32 PDT, rsx11m
no flags Details
Proposed patch (1.33 KB, patch)
2013-05-20 07:28 PDT, neil@parkwaycc.co.uk
iann_bugzilla: review+
rsx11m.pub: feedback+
bugspam.Callek: approval‑comm‑aurora+
bugspam.Callek: approval‑comm‑beta+
Details | Diff | Splinter Review

Description rsx11m 2013-05-16 21:30:07 PDT
Steps to reproduce:

 1. Go into Edit > Preferences > Browser > Downloads
 2. Select "Open a progress dialog"
 3. Open a Private Browsing window
 4. Open the Download Manager (seems to help triggering the issue)
 5. Download some file and watch the progress bar
 6. Repeat until the progress bar dialog breaks (screenshot follows)
    (closing the private window and opening a new one may help as well)
 7. File is downloaded but the dialog is completely useless

Following entries in the Error Console:

Error: TypeError: dldata is undefined
Source File: chrome://communicator/content/downloads/progressDialog.js
Line: 36

Error: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIControllers.removeController]
Source File: chrome://communicator/content/downloads/progressDialog.js
Line: 102
Comment 1 rsx11m 2013-05-16 21:32:48 PDT
Created attachment 750871 [details]
Screenshot on Windows 7
Comment 2 rsx11m 2013-05-17 08:03:36 PDT
Step #2 is implicit for Private Browsing, thus no need to select it. Apparently the issue needs a prior download from a non-private window to be triggered. And, the Download Manager has to be open when downloading from a private window.

Thus, here the more direct list of steps to reproduce:

 1. Start SeaMonkey with a new profile (just to be sure that nothing interferes)
 2. Download some image or file from a site with the right-click menu
 3. The Download Manager opens by default, leave it open
 4. Now open a new private window, leave the initial non-private window open
 5. Download another image or file from a web site
 6. Progress Dialog comes up and stays broken, file is downloaded
Comment 3 rsx11m 2013-05-17 11:18:44 PDT
To clarify the timing of the messages in the Error Console:

> Error: TypeError: dldata is undefined
> Source File: chrome://communicator/content/downloads/progressDialog.js
> Line: 36

The first error occurs upon opening of the progress dialog.

> Error: NS_ERROR_FAILURE: Component returned failure code: 0x80004005
> (NS_ERROR_FAILURE) [nsIControllers.removeController]
> Source File: chrome://communicator/content/downloads/progressDialog.js
> Line: 102

The second error is logged when closing the progress dialog.
Comment 4 neil@parkwaycc.co.uk 2013-05-20 05:56:00 PDT
Ah yes, I know what's going on here; the progress dialog assumes that if the download manager is open then it will be showing its download. This is of course false for private downloads.
Comment 5 neil@parkwaycc.co.uk 2013-05-20 07:28:19 PDT
Created attachment 751686 [details] [diff] [review]
Proposed patch
Comment 6 rsx11m 2013-05-20 08:43:36 PDT
Comment on attachment 751686 [details] [diff] [review]
Proposed patch

This fixes it for me, with or without the Download Manager open.
Comment 7 neil@parkwaycc.co.uk 2013-06-20 15:43:03 PDT
Pushed comm-central changeset 6c6d2a00b240.
Comment 8 neil@parkwaycc.co.uk 2013-06-20 15:49:36 PDT
Comment on attachment 751686 [details] [diff] [review]
Proposed patch

[Approval Request Comment]
User impact if declined: Unable to track progress of a private download
Risk to taking this patch (and alternatives if risky): Workaround is to close the download manager before starting a private download
String changes made by this patch: None

Note You need to log in before you can comment on or make changes to this bug.