Open Bug 383811 Opened 13 years ago Updated 7 years ago

transferring data status doesn't clear after completion until changing tab

Categories

(Firefox :: General, defect)

x86
Windows XP
defect
Not set

Tracking

()

People

(Reporter: rbodkin, Unassigned)

References

()

Details

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

We load nested content in a Flash movie and users continue to see a status that indicates data is still being loaded from the network.

This presents an issue because users frequently assume that a page is slow or broken if it shows a status message of transferring data when the data transfer is completed. We've also had this issue intermittently when using JavaScript without Flash, but the issue is very repeatable with Flash. We know that users take this seriously because we receive bug reports about performance because they believe our site is slow when this happens.

Reproducible: Always

Steps to Reproduce:
1. open a Shockwave Flash File that in turn loads another movie clip at an external URL in FireFox (the Flash 9 player plugin integrates with FireFox to load this movie)

Actual Results:  
If nothing is in cache, the browser will complete the request and the TCP/IP connection closes, but the status bar will show "Transferring data from flash.quantserve.com"

If you click on another tab and then click back to the original tab, then Firefox reports a status of "done" 

If the contained SWF is in the browser cache, then sometimes the status is reported as Read <server>, which remains until you navigate away from the tab.


Expected Results:  
The status bar clears after data has been transferred.
I've confirmed with the test link, and seen this issue in other places as well.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Duplicate of this bug: 407102
Attached file test case
I atached a set of simple test case files. 

I also want to note that if I run the test inside FireFox with Flash Tracer active (and of course a Flash Debug Player) then a warning message is issued:
"Warning: Not a known player download type, http://localhost/lab/tests/f4loadvariables/variables.php" which doesn't amke any sense to me, but might give a clue to others. 

If the call to the PHP file is replaced with a call to the .txt file (see attachment) then the problem doens't occur (also the warning message shown in FlashTracer is gone). The problem occurs also with other server languages like ASP & Fortran. 

All browsers with the Mozilla engine show the problem any other engine base brwser like IE, Opera, Safari don't exhibit this behavior.
I've got a problem like this or very similar without the flash, and not always reproducible. I'm loading small pages with a single cached graphic: the connection closes but the browser continues to show "transferring data from spsd-enet"
Attached is a network capture file. Because the transfer never completes, the refresh cycle in the web page never completes, (and stale data is displayed to the customer).
(In reply to comment #4)
> Created an attachment (id=329021) [details]
> ethereal network capture showing completed transaction
> I've got a problem like this or very similar without the flash, and not always
> reproducible. I'm loading small pages with a single cached graphic: the
> connection closes but the browser continues to show "transferring data from
> spsd-enet"
> Attached is a network capture file. Because the transfer never completes, the
> refresh cycle in the web page never completes, (and stale data is displayed to
> the customer).

Note that there is no content-length header in the HTTP conversation in the capture file. There is a  connection:close header.
I just came across this as well when troubleshooting some Flash I've written... I came across some fairly old discussions about what appears to be this same bug from as early as 2005 so I think this is a pretty old issue. Does anyone have a work around?
Same issue :

Using the Gecko API:

Using NPN_Status or JavaScript to updated the status bar works fine until a call to NPN_PostURLNotify is made.
After the post has completed, and called successfully NPP_URLNotify, the status bar displays "Transferring data from x...". 

All calls to update the status bar text now fail (NPN_Status is a void function unfortunately). The only thing that will clear the message is reloading the page.


Notes:

dom.disable_window_status_change is not enabled.
No errors were reported to NPP_URLNotify.

Possibilities:

1.The browser is stuck in STATE_TRANSFERRING and repeatedly updating the status bar. 
2. NPP_Status is now failing on one of the checks in nsGlobalWindow::SetStatus. 
3. Something else not being destroyed.

XPCOM stuff

I was also wondering if there is a way to get the nsIWebBrowerChrome interface in a plug-in. Seems GetChromeForWindow doesn't work, just returns null when given the Active window. With it I might be able to get around the bug.
I am seeing this problem with timer events that fetch images after the initial page load. Below is a reproducible case. Load and wait for 10 seconds. You will see "Transferring data from ping.chartbeat.net..." in the status bar even though the request was completed.

http://thesuperficial.com/

As with the comment above, content-length is missing from the response headers.
I also have the "Transferring data ..." problem and it doesn't go away when clicking on another tab and going back. I confirmed the request were served ok so it has to be a ff bug. All other browsers are not showing this behavior.
Same problem.  I have a wordpress site using the (free) ProPlayer plugin, which uses flash to load another video file.  This happens on both 3.5.5 and 3.0.15.  My wordpress site is tanks.brightsoo.com, but I don't guarantee the content there won't change :)

Does anyone know if there's a workaround on the server side (i.e. web site)?  Something to set the status bar manually?
I have the same problem in pages containing swfs. As soon as I click on another browser tab and return to page the status bar reports "Done" but if I stay on the page without clicking any other tabs the status bar keeps displaying "Read domain.name" forever. The problem does not occur in Internet Explorer.
I also have the same problem. It appears to also affect iframes both dynamically injected and in the static html. I can't believe this hasn't been fixed in over 3 years! Some of the biggest sites on the web have this problem.

- Watching videos on youtube
- Embedding a Google map

With the proliferation of iframes through Facebook and other widget providers this is only going to become an every expanding problem.
Very very annoying bug!!!!
when it planned to be solved???

3 years old and still with NEW status ...?
Wake up Mozilla!!! WAKE UP!!!!
You know, Mozilla is an open source project. Patches to fix this are very
welcome ;)
But I'll try to look at this soon. Perhaps tomorrow.
It would be *very* useful to have a minimal testcase here.
Since based on the comments this doesn't depend on plugins, the testcase
shouldn't use a plugin either.
Though, if I've misunderstood this, and the problem really shows up only
with Flash, then I should just re-try the testcase attached already.
The problem is not just flash. There is also a problem with dynamically injected iframes. Trying adding an iframe with javascript and the download an image directly after it.
Alex, could you perhaps provide a *minimal* testcase, please.
Attach it to this bug using "Add an attachment"
Olli, I just triggered this bug with youtube. Load any video, do a right click and stop the movie (the flash right click menu that allows you to stop the movie download not the pause button from the flash player). This will leave the status bar on "Transferring data from blahblah.youtube.com" until you go to another tab and then go back to see the status bar changed to "Done".

Hope this helps.
Also with other test cases I made the status bar to never go back to "Done", it was stuck with the "Transferring data" message even when changing tabs. Sorry for the double post but I just remembered that, I don't have access to that test case anymore so I'm not able to help with that but I wanted you to give you all the info I could.

Now, hope that helps even more.
Olli, is this minimal enough?  http://tanks.brightsoo.com/mission4/

This is a wordpress site that I own.  I'm not sure how to "attach" the site... I know a little bit of shell scripting, so let me know if there's something I can do.
I even have the worse case in my browser.

I see the progress bar in the right side of the status bar after page loads. "Transferring data from ...." never goes away even if there is nothing to download anymore. 

I checked with Firebug/Net and Live HTTP Headers, still I see these annoying bugs.
My tests show the problem to be greater than just a failure to update the status bar.  The browser is also failing to tell the Flash Player that the file transfer is complete.

We have a Flash Player application that loads a list of files in order, one at a time.  When ActionScript recieves a load complete event for one file, it begins loading the next.  If we don't receive the load complete event for a file, we cannot know when to load the next.  Loading all files simultaneously isn't an option.

We've learned that the problem is intermittent, but haven't seen a pattern of when it occurs.  For example, if our list of files was data1.swf, data2.swf, ..., data20.swf, the browser might fail to report that data2.swf complete, when in fact proxies and other monitors show us byte-for-byte that the file did completely deliver to the browser.  The browser just fails to tell the player that the load was complete, and the browser's status bar is another visible sign that it failed to recognize when the load completed.

The problem comes and goes with minor versions of Firefox.  I don't recall the version when we first saw the problem.  Our solution at the time was to have our Flash application retry the load request, but we found that once Firefox began failing on a particular file it would not ever report that file had completely loaded during that session.  We could clear the browser's cache and close the browser and the problem would go away, for that file.  So, retrying alone was not enough.  We resorted to retrying and overriding the browser caching.  For example if the request was for data1.swf and Firefox failed to tell us when the transfer was complete, we'd request it again as data1.swf?trycount=1.

Another work-around was to switch users to using https instead of http.  When using http, the transferring data status message never hangs and thus the browser ALWAYS tells the player when files have completely loaded.  This work-around worked up to Firefox 3.6.10.  With Firefox 3.6.10, using https no longer gaurantees that we'll recieve the load complete... and of course the Transferring data status remains on.

Our application runs in a non-tabbed window, but regardless switching tabs only makes the status bar update.   It does not cause the browser to tell the player that a load has completed.

I see this as a VERY bad bug, that is costing us and everyone else time and money, and hope that it will be permanently resolved soon.
We had the same issue with an old version of the jquery jsonp plugin
http://code.google.com/p/jquery-jsonp/

they used in earlier versions an iframe to allow catching errors and timeout of requests. The new version works without iframes and also the problem is gone.

i would like to see this fixed, gave as a lot of headache.
Is this still happening? If so, it would be super helpful if someone could provide a testcase that didn't use frames.
It unfortunately still happens, but actually constructing a testcase has been hard :(
I had this problem in the following scenario:
-web page with lots of iframes and references to external resources.
-one of them injects some ad dynamically in the mootools's domeready event like this:

        			this.contentWindow.document.write('<html><head></head><body style="margin:0;overflow:hidden;"><script type="text/javascript" src="'+ script +'"></script></body></html>');

-But it should like this and this is what solved the problem:

        			this.contentWindow.document.open();
        			this.contentWindow.document.write('<html><head></head><body style="margin:0;overflow:hidden;"><script type="text/javascript" src="'+ script +'"></script></body></html>');
        			this.contentWindow.document.close();
I've been seeing this for a while. Only (so far) on requests to localhost. No Flash on my pages, but there is Javascript.
Attached file Simple test case
I reproduced the issue by creating an iframe element and then writing to its ownerDocument without opening & closing it.

Simple enough?
I find this happening on Bridge Base Online.  The "transferring data from..." message blocks the chat window.  I am using Firefox 21.0.  This only started to happen recently!  If I place cursor on message it disappears, most annoying.
You need to log in before you can comment on or make changes to this bug.