Closed Bug 116562 Opened 23 years ago Closed 23 years ago

Flash movie is not loaded if disk cache is disabled

Categories

(Core Graveyard :: Plug-ins, defect, P3)

x86
All
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.9

People

(Reporter: vfry, Assigned: gordon)

References

()

Details

(Keywords: regression, Whiteboard: patch)

Attachments

(1 file, 1 obsolete file)

From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.7) Gecko/20011221 BuildID: 2001122106 When loading a Page which uses The Macromedia Flash Plugin, The Plugin will not load the Flash Animation. Right Clicking on the Flash Animation brings up a Menu which says "Movie Not Loaded", Which is Greyed out. Reproducible: Always Steps to Reproduce: 1.Go to page with Flash Content 2.No Flash Content Displayed 3.Right clicking on Blank box where Flash content should be will reveal a menu which says "Movie Not Loaded" Actual Results: No Flash Content Displayed Expected Results: Display Flash Content Flash Animation loads correctly in Version 0.96, upgrading to version 0.97 causes to Problem, uninstalling and reinstalling 0.97 does not fix the problem. Reinstalling the Flash Plugin with the newest Version doesn't fix the Problem. Uninstalling and reinstalling 0.96 Does fix the Problem. This also Occurs with Windows 2000.
wfm with win2k build 20011222..
Happens to me too. Build 2001122106 on WinME.
Confirming on 2001122208 WinME as well. About to try the latest nightly.
Nope, nothing works. Going back to Mozilla 0.9.6 release (2001112009), which does work on WinME. Is there anything I can do to help clear this up? It's very annoying... BTW: Flash version is 5.0 r41
Ok, found it: Flash will not work if the disk cache is disabled. For Flash to work, the disk cache must be enabled (Preferences->Networking->Enable disk cache) and the cache size must not be zero (Preferences->Advanced->Cache->Disk Cache). I consider this a bug. I do not use a disk cache as I have a fast proxy server. Reporter, could you change the Summary to "Flash plugin does not work if Disk Cache disabled" please? I do not have sufficient privileges to do so.
Setting the Disk cache to 1kb fixed it on my end.
Summary: Flash Plugin: Movie Not Loaded Error - Will not load Flash → Flash Plugin: Movie Not Loaded Error - Will not load Flash If Disk Cache Disabled
does this need to be reassigned to 'networking/cache' ?
This is a good question, maybe not. Peter, what are we supposed to do if a plugin requests a stream as STREAMASFILEONLY and we don't have any local disk capabilities? Is it legitimate just to fail? If user disables cache, does it mean he wants not to use the disk no matter what? Maybe we should throw a pop up warning that caching mechanism the plugin relies on is disabled and the plugin is not going to work properly. Changing summary to make it shorter.
Summary: Flash Plugin: Movie Not Loaded Error - Will not load Flash If Disk Cache Disabled → Flash movie is not loaded if cache is disabled
Plugins are simply agents of the Necko cache, we use the same system. If a user decides to disable the browser cache, plugins do not (and probably shouldn't) have the authority to override the user's choice. Therefore, if a plugin requests STREAMASFILEONLY stream, I think it is legitimate that it can fail becuase the cache is disabled. It's up to Flash to decide how to handle the error, and in this case, it simply doesn't load anything. It could be made smarter, like some other plugins. An argument can be made that plugins should use their own dedicated cache but there are other problems with that plus I'm more in favor of recycling what we've already got. Nominating---->Future
Status: UNCONFIRMED → NEW
Ever confirmed: true
Target Milestone: --- → Future
Shouldn't STREAMASFILEONLY use the memory cache if a file cache is unavalable? My current settings is a 16Meg Memory Cache and a 1K Disk cache (for the workaround) and it works fine. of course setting the disk cache to 0k causes the problem. If there has to be a Disk cache for compatibility with plugins, Is there a setting or could a setting be made for the disk cache to clear itself after the browser is closed? (similar to the "Empty Temporary Internet Files when browser is closed" option that Internet Explorer has) Not only would this option keep the hard disk cleaner and allow a cache to be avalable for plugins like flash, but it increases security on multi user systems as well.
No, the way STREAMASFILEONLY works is that we need to pass the plugin a path to the filesystem. The plugin already does have a way of directly getting the bytes from the stream without using the disk, but in this case, the plugin is specifically asking the browser to cache to disk. Why is the cache a security concern on multi-user systems? The cached files are loacted with the user's profile in their home directory and security should be set correct there. There is one exception where we do not use the Necko cache because it refuses to do the caching. For HTTPS documents, 4.x honored requests from the plugin to cache to disk. This is needed for backwords compatibility with Acrobat but I think updated versions of the plugin for Mozilla don't force writing to disk. In the case of no cache, we create a folder and use the OS's temp directory. We also clean up our files when done. It's possible we could do the same thing when the cache is disabled?
same with 2001122108 on Linux
The Security concern I was talking about was on multi user systems Running Windows 98 either under a WinNT domain without Roaming User Profiles or no login whatsoever. On Those systems, if one user logs in, it uses the default user profile, if that person logs off and someone else logs in, it still using the default user profile, as well as the cached files with it. Of course, under that environment, the History would give much of the locations of the last user away.
*** Bug 117244 has been marked as a duplicate of this bug. ***
Okay, thanks to Ian, we at Macromedia now know about this problem. It's entered in our own Flash Player bugbase. Macromedia does not officially support Mozilla, but PLEASE let me know if there is going to be a Netscape release that will be affected by this, as we would take that seriously. If we know about that in advance, we can bump up the priority of this issue. I am not personally familiar with the NPAPI (although we have many people here who are), so I haven't yet tried to figure out why we're using STREAMASFILEONLY or what our alternatives would be - any architectural suggestions appreciated (including just "rtfm").
Confirming on BuildID:2002010208 on MacOS9.1-Japanese as well. Well, I want to add a comment to this bug. When I uncheck "Enable disk cache"(Preferences>Debug>Networking), QuickTime plugin doesn't work just like Flash plugin. But, MRJ plugin(Java applet) will work if the disk cache is disabled. What is the difference between Flash(or QuickTime) and MRJ(Java)? QuickTime: http://www.apple.co.jp/quicktime/ Java applet: http://www.hitsuji.to/appletHTML/ColorfulScroll.html
Hmmm, I have an additional question: is this NEW behavior? That is, do the Flash and Quicktime plug-ins work OK in prior builds of Mozilla (and especially Navigator 6.x) with the disk cache setting turned off? If so, then wouldn't it be fair to say that this is a back-compatibility breaker? Even if the new behavior is more correct in some way, is that correctness more important than supporting existing plug-ins?
I tested four kinds of plug-in. MRJ plug-in is installed by the default, when installing Mozilla. I have copied Shockwave Flash, Shockwave Director and QuickTime plug-in from Netscape Communicator 4.7.x plug-ins folder to Mozilla Plug-ins folder. The result of Mozilla 0.9.6 and 0.9.7(or latest-trunk) was compared. It seems that this bug is regression. The result was as follows. I'm sorry I didn't try Netscape Navigator 6.x. Mozilla 0.9.6(Enable Disk Cache): Shockwave Flash, Director, QuickTime and MRJ worked. It seems all plug-in works fine. Mozilla 0.9.6(Disable Disk Cache): All plug-in that I used worked as well as "Enable Disk Cache". Mozilla 0.9.7(Enable Disk Cache): Shockwave Flash, QuickTime and MRJ plug-in worked. But, Shockwave Director plug-in did not work. Mozilla 0.9.7(Disable Disk Cache): Only MRJ plug-in worked. Shockwave Flash, Director and QuickTIme plug-in didn't work. Information of plug-in: Macromedia Shockwave for Director Netscape plug-in, version 8.5r321 Shockwave Flash 5.0 r41 QuickTIme Plug-in 5.0.2 MRJ Plug-in(Java VM: MRJ 2.2.5) Test page of Shockwave Flash and Director plug-in: http://www.macromedia.com/jp/shockwave/welcome/main.html
Well please bring the old behavior back. 0.9.6 worked perfectly without disc cache, this is new and doesn't help anybody. i got lots of memory and a slow hard drive, so i turned disk cache off. :( no flash and no quicktime for me now? :( i guess a lot of people stare at a blank screen now where the old version displayed the plugin correctly, and hadn't i found this bugzilla entry i'd still install and reinstall different mozilla versions. >:(
I have exactly the same problem with plugger on Linux - plugger would fail to work (will not pass an empty file name to the helper app) is disk cache is disabled. Should we set OS to All, or should I file a separate bug for this? I am currently running BuildID 2002011021 on RedHat Linux 7.2, plugger 4.0 (4.0-4 RPM from RedHat Rawhide).
Confirmed on build 2002012606 on Linux. Changing OS to All.
OS: Windows XP → All
Re-reading the comments, this is a regression between 0.9.6 and 0.9.7. ..taking bug to investigate why running plugins without a disk cache in 0.9.6 builds worked... I wish we could go back and pull mozilla builds to find when the regression happened, but I don't think they go back that far??? However, I think Netscape Commercial ones DO go back to November: ftp://sweetlou.mcom.com/products/client/6.x/windows/32bit/x86/
Assignee: av → peterl
Priority: -- → P3
Summary: Flash movie is not loaded if cache is disabled → Flash movie is not loaded if disk cache is disabled
Target Milestone: Future → mozilla0.9.9
I will ry to find out when this happened.
*** Bug 123280 has been marked as a duplicate of this bug. ***
this broke between the dates 1129 and 1130 ( working on 1129 ..stopeed working on 1130). This happened after 6.2.1 was released (11/28). Will try to get this into 0.9.8 release notes.
*** Bug 123618 has been marked as a duplicate of this bug. ***
*** Bug 123522 has been marked as a duplicate of this bug. ***
Thanks Shrirang, I love Bonsai! Okay, I think I may have found the problem. Backing out attachment #58176 [details] [diff] [review] from bug 110405 fixes Flash running with a disabled disk cache. Darin/Gordon, can this be returned to an ASSERTION or is there another workaround?
Status: NEW → ASSIGNED
Strange. I presume entry->IsAllowedInMemory() returns FALSE because the entry has a storage policy of nsICache::STORE_ON_DISK_AS_FILE, so we can pass the file to the plugin. What I don't understand is how this could have worked before if the entry was simply stored in memory. I'd like to find a better solution than simply changing the condition back to an assertion. I'm not familiar with the interaction between plugins and http, however.
*** Bug 123688 has been marked as a duplicate of this bug. ***
*** Bug 123701 has been marked as a duplicate of this bug. ***
*** Bug 116839 has been marked as a duplicate of this bug. ***
Lots of dups with 0.9.8... -->over to Gordon, owner of bug 110405.
Assignee: peterl → gordon
Status: ASSIGNED → NEW
*** Bug 123965 has been marked as a duplicate of this bug. ***
*** Bug 95096 has been marked as a duplicate of this bug. ***
This *does* work with disabling of the cache and here is how I did it. It's weird. Simply set *both* caches to zero. It's slow as a snail when on a page that uses flash but it works. This is on: win2k .98 build 20020204
You mean disable the memory cache too? That's not much of a workaround, though...
Back with Netscape 4.7.x, it was believed that you could speed up the browser's BACK function by setting the disk cache to zero, forced the page to be redrawn from the memory cache instead. I have no idea whether this was true or not, but it was tossed about as a solution to speed problems. This is why I first set the cache to zero when I started using Mozilla at M1. If I may suggest a solution as an end user and not a coder: You should not be able to set the cache to zero. Setting it to zero should return some minimum value. Maybe even a line of text can be added to the preference box stating the minimum value. OR if the cache can be set to zero, a dialog should popup stating it can cause some plugins not to function. I do not think it's correct to assume a user sets the cache to zero to deliberately disable plugins. I offer these suggestions because I want Mozilla 1.0 to KICK ASS! :) Thanks, Michael
What about sides with hundres of users, like in Universitys, having their $HOME on a shared nfs drive. As a system administrator you don't want every user to have 50 megabyte of cache in nfs-server:/home/<user>/.mozilla/bla/Cache/. Running squid as a caching server is the only solution - this is why setting the disk cache to 0 should work! Kind regards, Joerg.
another solution on such shared systems is to set a users cache directory to something in /tmp or some equivalent local directory.
The local/tmp trick only works in a workstation with enough local disk space, however. This doesn't really resolve the situation in a low space (ie 50MB/machine for boot, nfsmount rest of dir structure) or no space (network card boot rom) net boot situation. I'd rather see the problem fixed on Mozilla's end of things, if at all possible. At the very least, I second the idea that some sort of error dialogue should be generated if a plugin tries to use STREAMASFILEONLY when disk cache is disabled. At least then users (and administrators) are aware of the problem and know the solution immediately. The biggest concern to me right now is that this problem is easily resolved on the client side, but not easily detectable. I suppose having a preference option which patches STREAMASFILEONLY to redirect to the RAM cache is unworkable because of the filesystem i/o involved?
Yes, unfortunately the plugin interface expects access to a file, not just a data stream.
How does one set the user's cache directory? Is that some setting in prefs.js? All I found was something along the lines of browser.cache.directory, but that didn't work.
nicolas: in a recent nightly build, you can set the cache location via the preferences panel. (see Preferences->Advanced->Cache)
How about in release 0.9.8? Is there a way to do that there?
user_pref("browser.cache.disk.parent_directory", "/tmp") would create a directory called "Cache" for the disk cache in /tmp
Attached patch Patch for type of cache (obsolete) — Splinter Review
This patch resolve problem. I just change rv = cacheChannel->SetCacheAsFile(PR_TRUE); to rv = cacheChannel->SetCacheAsFile(PR_FALSE); So, cache policy become STORE_ANYWHERE. This make plugin work with zero cache. Not sure it's correct. Check it.
ah... looks like plugins have support for SetCacheAsFile failure. gordon: perhaps we're not returning an error from SetCacheAsFile when the disk cache is disabled?!? sergi: that probably isn't the right patch...
SetCacheAsFile() is only called from nsPluginHostImpl.cpp and nsDownloader.cpp. nsPluginHostImpl appears to only use it as an optimization, so if SetCacheAsFile(PR_TRUE) could return an error if the disk cache was currently disabled, the existing code would work fine. However nsDownloader cancels the download if SetCacheAsFile(PR_TRUE) returns and error. Maybe we should open a bug for that?
If SetCacheAsFile() from nsPluginHostImpl will return error for zero disk cache, nsPluginHostImpl will call SetupPluginCacheFile (and create file in NS_OS_TEMP_DIR. What the reason for plugins to work with files if memory cache works?
sergi: some plugins require "/path/to/file" and cannot utilize mozilla's memory cache. gordon: yeah, but i think fixing nsDownloader is lower priority. i believe that it is currently only used for remote jar files, which are currently not used ;-) but if you could file a bug (and future it) that would be great!
Another administrative question: If more than one user sets their browser.cache.disk.parent_directory to /tmp then only the browser which created the /tmp/Cache directory will be able to write to it, since it is created 700 and owned the creating browser process. Can I instead specify something like /tmp/$USER or something of that sort for parent_directory?
i don't think /tmp/$USER will expand as you'd like it to. not sure of a good automatic way to achieve similar effect w/o editing each users prefs.js file.
Keywords: nsbeta1+
*** Bug 117986 has been marked as a duplicate of this bug. ***
Attachment #68938 - Attachment is obsolete: true
Whiteboard: patch
Comment on attachment 69591 [details] [diff] [review] patch to return error if storage for policy is not enabled. sr=darin
Attachment #69591 - Flags: superreview+
Comment on attachment 69591 [details] [diff] [review] patch to return error if storage for policy is not enabled. r=gagan
Attachment #69591 - Flags: review+
Patch checked in. Marking FIXED.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Anybody who has stumbled upon this bug..I kindly request you to pls try this fix with today's build and comment in the bug only if you think this is *not* working. I will verify this too. Thanks!!
This works for me now :) Thanks !
Shrir: works for me now.
verified on all trunk builds 0220 (win/mac/linux).
Status: RESOLVED → VERIFIED
*** Bug 126904 has been marked as a duplicate of this bug. ***
*** Bug 127346 has been marked as a duplicate of this bug. ***
*** Bug 127572 has been marked as a duplicate of this bug. ***
*** Bug 89494 has been marked as a duplicate of this bug. ***
*** Bug 129058 has been marked as a duplicate of this bug. ***
*** Bug 130069 has been marked as a duplicate of this bug. ***
*** Bug 126223 has been marked as a duplicate of this bug. ***
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: