- From: Michael A. Puls II <shadow2531@gmail.com>
- Date: Fri, 18 Sep 2009 18:35:20 -0400
On Fri, 18 Sep 2009 14:43:39 -0400, Boris Zbarsky <bzbarsky at mit.edu> wrote: > On 9/18/09 10:21 AM, Michael A. Puls II wrote: >> Attaching a test. >> So, is it IE's behavior we want here, or Opera's? > > In my opinion, neither. We don't want to have plug-in instantiation > depending on the CSS box model at all (and want to instantiate even if > display is "none"). If that's not feasible, then IE's model is imo > preferable to Opera's "sometimes it'll restart sometimes not" model.... > >> Or, are you saying that the <object> should also load the plug-in even >> when its display is set to none by default? > > That seems like the most self-consistent approach to me. Thanks. Seeing all the inconsistent behavior in browsers now, this sounds like a great idea. But: With <object style="display: none" data="file.swf?vid=file.flv"> when the page is parsed (or added to the document), what would happen? Would it be something like this?: 1. Create the plug-in instance. 2. fetch file.swf 3. Give the file.swf stream to the plug-in when it requests it. 4. Fetch file.flv when the plug-in requests it 5. If autoplay, start playing the video (audio only since the <object> isn't shown) Or, would it stop after #1 where everything else is delayed till the <object>'s display is set to something other than none and is scrolled into view (and, if applicable, the background tab/page that the <object> is in is focused)? Or, would those optimizations not be triggered at all by display: none, or would it depend on the plug-in or plug-in API or whatever the browser feels like doing? Or, would it stop after #2 is done and continue when the <object>'s display is set to something other than none? In other words, if browsers make it so display: none doesn't prevent the loading of a plug-in, does display: none still prevent the automatic streaming of the file in @data by the browser (for plug-ins, not native types like text/html)? Or, will the browser always fetch the file (unless the plug-in decides to tell the browser to cancel the stream)? The reason I ask is that if existing web pages use multiple <object>'s that load videos for example, that are initially set to display: none and only shown later, then if browsers start fetching all these files as soon as the page loads, it might affect page loading because of bandwidth and cpu etc. It would also affect bandwidth use in general as videos that you might not even watch would be fetched. If this is a concern, then IE's approach of not loading the plug-in if the <object> is set to display: none when it's attached to the document might make better sense than making display: none not have any affect at all. Or, pages like that (I will try to find some real examples) would have to change things like the following if they don't want an <object> to stream until they're ready. <object style="display: none"></object> <!-- set @type or @data later --> <object style="display: none" data-type="application/x-shockwave-flash" data-data="file.swf"></object> <!-- set @type or @data later by using info in the markup for what plug-in and file to load --> For new pages, going in knowing these things, you just wouldn't add an <object> to the document until you were ready. Or, should there be some attribute that prevents a plug-in from automatically loading when it's attached to a document like an empty boolean plug-in-disabled? -- Michael
Received on Friday, 18 September 2009 15:35:20 UTC