Closed
Bug 816986
Opened 12 years ago
Closed 12 years ago
Downloads sometimes don't appear in the downloads panel
Categories
(Firefox :: Downloads Panel, defect)
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: mconley, Assigned: mconley)
References
Details
Attachments
(1 file)
(deleted),
image/png
|
Details |
dolske has been experiencing this one, and I'm having no luck reproducing it, but I'm storing my notes here:
STR:
1) Start a download
2) Open the panel
What happens?
Download is not listed there, even though we see progress in the button.
What's expected?
The download should be available when we open the panel.
Interesting side-note - if he opens up new Firefox windows, the download exists in those windows' panels.
Comment 1•12 years ago
|
||
if the download happened really early in the browser session, could be a race condition in the lazy init code.
Assignee | ||
Comment 2•12 years ago
|
||
(In reply to Marco Bonardo [:mak] from comment #1)
> if the download happened really early in the browser session, could be a
> race condition in the lazy init code.
Yep, that's my suspicion too. I'm putting together a logging patch in bug 816254 that I'm going to get dolske to try.
Assignee | ||
Updated•12 years ago
|
Blocks: ReleaseDownloadsPane
Assignee | ||
Updated•12 years ago
|
Assignee: nobody → mconley
Assignee | ||
Comment 3•12 years ago
|
||
Hey Simona - does this problem sound at all familiar to you?
Assignee | ||
Comment 4•12 years ago
|
||
Here's dolske's logging output:
Starting a download...
Downloads DownloadsCommon.jsm: Creating a new DownloadsDataItem with downloadId = 1
Downloads downloads.js: A new download data item was added - aNewest = true
Downloads downloads.js: Adding a new DownloadsViewItem to the downloads list. aNewest = true
Downloads downloads.js: The downloads item count has changed - we are tracking 1 downloads in total.
Downloads downloads.js: Setting the panel's hasdownloads attribute to true.
Downloads downloads.js: A new download data item was added - aNewest = true
Downloads downloads.js: Adding a new DownloadsViewItem to the downloads list. aNewest = true
Downloads downloads.js: The downloads item count has changed - we are tracking 1 downloads in total.
Downloads downloads.js: Setting the panel's hasdownloads attribute to true.
Downloads DownloadsCommon.jsm: A download changed its state to: -1
Downloads DownloadsCommon.jsm: Attempting to notify that a new download has started.
Downloads DownloadsCommon.jsm: Showing new download notification.
WARNING: NS_ENSURE_TRUE(![bitmapRep isPlanar] && (unsigned int)[bitmapRep bytesPerPlane] == desiredImageSize * desiredImageSize * 4 && [bitmapRep bitsPerPixel] == 32 && [bitmapRep samplesPerPixel] == 4 && [bitmapRep hasAlpha] == YES) failed: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 261
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 184
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2957
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2957
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2957
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2957
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_TRUE(![bitmapRep isPlanar] && (unsigned int)[bitmapRep bytesPerPlane] == desiredImageSize * desiredImageSize * 4 && [bitmapRep bitsPerPixel] == 32 && [bitmapRep samplesPerPixel] == 4 && [bitmapRep hasAlpha] == YES) failed: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 261
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 184
Downloads DownloadsCommon.jsm: A download changed its state to: 5
WARNING: blocked access to response header: file /Users/dolske/build/mozilla-central/content/base/src/nsXMLHttpRequest.cpp, line 4028
WARNING: Unable to report memory for Worker (122b11000)! It is either using ctypes or is in the process of being destroyed: file /Users/dolske/build/mozilla-central/dom/workers/WorkerPrivate.cpp, line 1562
WARNING: Unable to report memory for Worker (122b11000)! It is either using ctypes or is in the process of being destroyed: file /Users/dolske/build/mozilla-central/dom/workers/WorkerPrivate.cpp, line 1562
Downloads DownloadsCommon.jsm: A download changed its state to: 0
WARNING: NS_ENSURE_TRUE(![bitmapRep isPlanar] && (unsigned int)[bitmapRep bytesPerPlane] == desiredImageSize * desiredImageSize * 4 && [bitmapRep bitsPerPixel] == 32 && [bitmapRep samplesPerPixel] == 4 && [bitmapRep hasAlpha] == YES) failed: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 261
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 184
WARNING: NS_ENSURE_TRUE(![bitmapRep isPlanar] && (unsigned int)[bitmapRep bytesPerPlane] == desiredImageSize * desiredImageSize * 4 && [bitmapRep bitsPerPixel] == 32 && [bitmapRep samplesPerPixel] == 4 && [bitmapRep hasAlpha] == YES) failed: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 261
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/image/decoders/icon/mac/nsIconChannelCocoa.mm, line 184
dl done
WARNING: blocked access to response header: file /Users/dolske/build/mozilla-central/content/base/src/nsXMLHttpRequest.cpp, line 4028
WARNING: WriteDataCacheBlocks() failed.: file /Users/dolske/build/mozilla-central/netwerk/cache/nsDiskCacheStreams.cpp, line 545
Downloads downloads.js: Opening the downloads panel.
Downloads downloads.js: Attempting to initialize DownloadsPanel for a window.
Downloads downloads.js: DownloadsPanel is already initialized.
Downloads downloads.js: Waiting for the downloads panel to appear.
Downloads downloads.js: Opening downloads panel popup.
Downloads downloads.js: Downloads panel has shown.
Downloads downloads.js: Downloads panel has hidden.
^ opened panel, empty for this window
WARNING: blocked access to response header: file /Users/dolske/build/mozilla-central/content/base/src/nsXMLHttpRequest.cpp, line 4028
Downloads downloads.js: Opening the downloads panel.
Downloads downloads.js: Attempting to initialize DownloadsPanel for a window.
Downloads downloads.js: DownloadsPanel is already initialized.
Downloads downloads.js: Waiting for the downloads panel to appear.
Downloads downloads.js: Opening downloads panel popup.
Downloads downloads.js: Downloads panel has shown.
Downloads downloads.js: Downloads panel has hidden.
^ opened panel, filled for 2nd window
Comment 5•12 years ago
|
||
Here's the version with a bit less noise, I forgot to update my tree with the fix for the mox-icon failure (bug 815512):
Starting download....
Downloads DownloadsCommon.jsm: Creating a new DownloadsDataItem with downloadId = 1
Downloads downloads.js: A new download data item was added - aNewest = true
Downloads downloads.js: Adding a new DownloadsViewItem to the downloads list. aNewest = true
Downloads downloads.js: The downloads item count has changed - we are tracking 1 downloads in total.
Downloads downloads.js: Setting the panel's hasdownloads attribute to true.
Downloads downloads.js: A new download data item was added - aNewest = true
Downloads downloads.js: Adding a new DownloadsViewItem to the downloads list. aNewest = true
Downloads downloads.js: The downloads item count has changed - we are tracking 1 downloads in total.
Downloads downloads.js: Setting the panel's hasdownloads attribute to true.
Downloads DownloadsCommon.jsm: A download changed its state to: -1
Downloads DownloadsCommon.jsm: Attempting to notify that a new download has started.
Downloads DownloadsCommon.jsm: Showing new download notification.
MOZ_EVENT_TRACE sample 1354316204626 55
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2956
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2956
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2956
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
WARNING: NS_ENSURE_SUCCESS(rv, false) failed with result 0x8000FFFF: file /Users/dolske/build/mozilla-central/content/base/src/nsContentUtils.cpp, line 2956
WARNING: NS_ENSURE_TRUE(pusher.Push(aBoundElement)) failed: file /Users/dolske/build/mozilla-central/content/xbl/src/nsXBLProtoImplMethod.cpp, line 321
Downloads DownloadsCommon.jsm: A download changed its state to: 5
Open panel....
Downloads downloads.js: Opening the downloads panel.
Downloads downloads.js: Attempting to initialize DownloadsPanel for a window.
Downloads downloads.js: DownloadsPanel is already initialized.
Downloads downloads.js: Waiting for the downloads panel to appear.
Downloads downloads.js: Opening downloads panel popup.
Downloads downloads.js: Downloads panel has shown.
(empty panel)
Comment 6•12 years ago
|
||
Mike asked me to take a look at the panel during a download, to see if the richlistbox (id="downloadsListBox") actually had something in it or not...
DOMi indeed shows it's filled, and I see the "X of Y MB" attributes ticking away. So the item is _there_, it's just not showing. Thought it might be some weird invalidation bug, but I can change the "Show all downloads" label and it updates in the panel.
On a whim I tried deleting the entire panel footer from the DOM... Ah-ha! The download item shows up, but is... shrunken. The footer was actually overlapping it. So seems like something isn't being sized correctly for some reason...
Assignee | ||
Comment 7•12 years ago
|
||
Here's the screenshot that dolske sent me of what this looks like:
http://cl.ly/image/0D2L2j1s0b0Q
I haven't been able to reproduce this at all, and I got sancus to try reproducing it on his Retina Macbook, but still no luck.
Assignee | ||
Comment 8•12 years ago
|
||
Ok, I think we're narrowing in. When sancus switched to his discrete GPU, he was able to reproduce. Here was his about:support Graphics section when that happened:
Graphics
Device ID
0x fd5
GPU Accelerated Windows
1/1 OpenGL
Vendor ID
0x10de
WebGL Renderer
NVIDIA Corporation -- NVIDIA GeForce GT 650M OpenGL Engine
AzureCanvasBackend
quartz
AzureContentBackend
none
AzureFallbackCanvasBackend
none
However, this works fine with the integrated GPU.
Assignee | ||
Comment 9•12 years ago
|
||
Cc'ing Steven Michaud, who was basically 100% awesome the last time we had a graphics issue with Retina on Thunderbird.
Steven - any idea what might be going wrong here?
Comment 10•12 years ago
|
||
> Steven - any idea what might be going wrong here?
No idea at all. And I'm afraid it'll be a while before I can get to this.
But I have the same hardware as sancus (a "Mid 2012" Retina MBP). And I did notice something strange (which may or may not be relevant):
The "WebGL Renderer" in about:support is always "NVIDIA Corporation -- NVIDIA GeForce GT 650M OpenGL Engine" (the "discrete" graphics hardware), whether or not "automatic graphics switching" is checked in the Energy Saver pref panel.
The "Device ID" and "Vendor ID" change as expected.
I tested on OS X 10.7.5 in a recent mozilla-central nightly.
Assignee | ||
Comment 11•12 years ago
|
||
Cool - Cc'ing Jonathan Kew as well, in case he has any ideas.
Comment 12•12 years ago
|
||
(In reply to Steven Michaud from comment #10)
> The "WebGL Renderer" in about:support is always "NVIDIA Corporation --
> NVIDIA GeForce GT 650M OpenGL Engine" (the "discrete" graphics hardware),
> whether or not "automatic graphics switching" is checked in the Energy Saver
> pref panel.
>
> The "Device ID" and "Vendor ID" change as expected.
To the best of my knowledge, "automatic graphics switching" unchecked means that you will always use the discrete card, and checked means it will switch to the IGPU when no application is forcing use of the discrete card.
For me, when the discrete card is off, my WebGL Renderer is "Intel Inc. -- Intel HD Graphics 4000 OpenGL Engine", as expected. The best way to confirm which GPU is enabled is to use the third party app gfxcardstatus @ http://gfx.io/ - you can even use it to force the IGPU on at all times.
Note that I'm on Mountain Lion 10.8.2, not 10.7.5.
Comment 13•12 years ago
|
||
What I'm concerned about is that FF may (somehow) sometimes be using the "wrong" driver for the current video hardware. But I'm not entirely sure what the "WebGL Renderer" setting means in about:support.
Comment 14•12 years ago
|
||
Interestingly, I don't see what I reported in comment #10 if gfxCardStatus is running and is set to either "Integrated only" or "Discrete only".
(And yes, I restart FF between tests.)
Benoit, do you have any idea what could be going on here? Either this bug itself, or the oddness I report in comment #10?
Comment 15•12 years ago
|
||
sancus, please try turning off "Use hardware acceleration if available" (in FF's Preferences : Advanced : General), to see if this makes any difference.
Comment 16•12 years ago
|
||
(Following up comment #15)
And check to see whether gfxCardStatus makes any difference -- whether or not its running, and (if its running) testing its different settings.
I don't expect it to (at least on OS X 10.8.2). But this is a very strange bug, and you never know.
Updated•12 years ago
|
Flags: needinfo?(bgirard)
Comment 17•12 years ago
|
||
My Gfx info from about:support:
Graphics
Device ID
0x 166
GPU Accelerated Windows
2/2 OpenGL
Vendor ID
0x8086
WebGL Renderer
NVIDIA Corporation -- NVIDIA GeForce GT 650M OpenGL Engine
AzureCanvasBackend
quartz
AzureContentBackend
none
AzureFallbackCanvasBackend
none
Comment 18•12 years ago
|
||
(In reply to Steven Michaud from comment #10)
> The "WebGL Renderer" in about:support is always "NVIDIA Corporation --
> NVIDIA GeForce GT 650M OpenGL Engine" (the "discrete" graphics hardware),
> whether or not "automatic graphics switching" is checked in the Energy Saver
> pref panel.
>
This is expected. We actively disallow WebGL from running using the integrated GPU. To run on the integrated GPU an app must support dynamic switching which web content does not guarantee. Until GPU switching is exposed to web content this will remain the case. We currently have no such plans. This means hitting WebGL on any tab will switch your entire system to your discrete GPU.
While gfxCardStatus can overwrite this behavior this is not supported so I wouldn't read into the behavior we get in this configuration. I do however recommend using gfxCardStatus to list which applications are requesting the discrete GPU. As long as the're a single request then the whole system will be running with the discrete GPU.
Flags: needinfo?(bgirard)
Comment 19•12 years ago
|
||
If we're seeing GFX corruption we should file that as a separate bug. In this case it's best o run with an accelerated window with gfxCardStatus in 'd' and 'i' but without using the force. Close any program listed by gfxCardStatus to test with 'i', then plug an external monitor to force 'd'. Then test once more with 'layers.acceleration.disabled:true'. This should narrow down whether it's a drive bug with a renderer or a gecko corruption.
Comment 20•12 years ago
|
||
(In reply to Mike Conley (:mconley) from comment #3)
> Hey Simona - does this problem sound at all familiar to you?
I haven't seen this until now. I'll try to reproduce it and post back.
Comment 21•12 years ago
|
||
I haven't been able to reproduce this on my mini Mac 10.7.5 (with or without HWA) with NVIDIA GeForce 9400 OpenGL Engine. Unfortunately I don't have a MacBook Pro to test this.
Comment 22•12 years ago
|
||
I suspect this is an issue that only (potentially) occurs on hi-dpi displays. Just a guess at this point, but it feels like the sort of thing that might happen if the panel size gets "locked" by the addition of width/height attributes to one of the XUL elements. I wonder if this might happen in nsXULPopupManager::PopupResized as a result of a spurious size "mismatch" due to conversion back and forth between device and display pixels.
Assignee | ||
Comment 23•12 years ago
|
||
dolske:
I think we might need you to do a little bit of debugging if you have a moment.
Would you mind setting a breakpoint at nsXULPopupManager::PopupResized, reproducing the bug, and then showing us the values of the following:
aSize.width
aSize.height
(after line 370)
currentSize.width
currentSize.height
currCSS.width
currCSS.height
newCSS.width
newCSS.height
Thanks,
-Mike
Flags: needinfo?(dolske)
Comment 24•12 years ago
|
||
Well, this is annoying. I can't reproduce the bug in my own builds (debug or not, opt or not), but I can with the current official Nightly. (All running against the same profile.)
Wonder what the odds are that something else fixed this in the last 24 hours?
FWIW, the printf logging I added (to take gdb out of the mix) sometimes seems to have a really big number for one of the sizes when opening the panel:
---- nsXULPopupManager::PopupResized ----
aSize: 870 x 280
currSize: 26090 x 8370
currCSS: 435 x 140
newCSS: 435 x 140
Is that expected?
Flags: needinfo?(dolske)
Comment 25•12 years ago
|
||
Yes - currSize is in appUnits, at 60 appUnits per CSS pixel (or 30 per device pixel).
Assignee | ||
Comment 26•12 years ago
|
||
(In reply to Justin Dolske [:Dolske] from comment #24)
> Well, this is annoying. I can't reproduce the bug in my own builds (debug or
> not, opt or not), but I can with the current official Nightly. (All running
> against the same profile.)
>
> Wonder what the odds are that something else fixed this in the last 24 hours?
>
Hm. How about last night's Nightly? Did we just catch a lucky break?
Flags: needinfo?(dolske)
Comment 27•12 years ago
|
||
Indeed, I can no longer reproduce this with Nightly. O_o
Seems like whatever the cause was, it likely only affected some subset of users using Retina displays, so probably not worth bisecting. I'll just keep an eye out for it happening again.
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: needinfo?(dolske)
Resolution: --- → WORKSFORME
Assignee | ||
Comment 28•12 years ago
|
||
Spooky bug is spooky.
\o/?
Comment 29•12 years ago
|
||
Given that we don't really know what caused this, or what "fixed" it, I'm concerned that the underlying issue may still be lurking somewhere.
Bug 814434 comment 11, 13, and 20 seem to describe an issue that might be a manifestation of the same problem. Please be on the lookout for any recurrence, and file a new bug with clear STR if we can find any.
You need to log in
before you can comment on or make changes to this bug.
Description
•