[whatwg] <object> behavior
Michael A. Puls II
shadow2531 at gmail.com
Fri Sep 18 07:21:45 PDT 2009
On Fri, 18 Sep 2009 08:18:04 -0400, Boris Zbarsky <bzbarsky at mit.edu> wrote:
> On 9/18/09 4:57 AM, Michael A. Puls II wrote:
>>> We (Gecko) consider it a bug that a display:none <object> in a
>>> document doesn't instantiate the plug-in.
>>
>> BTW, what is the reason for considering it a bug?
>
> Because the current behavior of having the plug-in instantiation handled
> by effectively the CSS box means that any time that box changes (e.g.
> when you switch from display:block to display:inline) the plug-in is
> reinstantiated. Worse yet, it can be reinstantiated due to other
> unrelated DOM mutations, depending on what effect they have on CSS
> boxes. That's pretty undesirable.
O.K.
>> {
>> visibility: hidden;
>> width: 0;
>> height: 0;
>> padding: 0;
>> margin: 0;
>> line-height: 0;
>> font-size: 0
>> border: 0
>> }
>>
>> is insufficient and or a pain when you want to load a plug-in but
>> completely hide it so it's as if it's not there layout-wise?
>
> That CSS is a pain _and_ insufficient, depending on context. For
> example, consider the situation when the parent of that <object> is
> display:table-row.
O.K.
>> Do you know of any sites that would work better if the bug was fixed?
>
> Looking at https://bugzilla.mozilla.org/show_bug.cgi?id=90268 and its
> duplicates and depenencies, at least:
>
> http://reviewkaki.blogspot.com/
> http://www.youtube.com/
> Any site using Dojo 1.0.0 TabContainer with plug-ins in the tabs
>
> and a number of cases where web site developers ended up having to work
> around this behavior or reported it without mentioning which site they
> were working on.
>
> Funny enough, people want to be able to set paused Flash videos to
> display:none and back without losing their position in the video....
Thanks for this.
>> Know any sites that'd break or begin to unexpectedly load a bunch of
>> <object>'s that weren't meant to be loaded yet?
>
> Not sure, but since as far as I now Opera and IE both keep the plug-in
> alive when the CSS box goes away, as far as I can tell, I'm rather
> hoping there won't be many. Not sure what webkit's behavior is here.
> Want to test?
Attaching a test.
Results:
O.K., if the initial display state of the <object> is none, then Opera,
Firefox, Safari and IE don't load the plug-in.
Then, once you set the display to inline, inline-block, block or table for
example, the <object> will display and fire up the plugin.
Then:
In Opera:
If you switch the display to none, it destroys the plug-in instance.
Setting the display to something else again doesn't restore the previous
plug-in instance. It creates a new one that starts playing from the
beginning.
However, switching between inline, inline-block, block and table just
changes the display and the plug-in keeps playing the file.
In Safari:
Setting to a display of none destroys the plug-in instance like Opera.
However, switching between inline, inline-block, block and table destroys
the current instance and creates a new one each time, which causes the
plug-in to start playing from the beginning.
In IE:
Once the <object> is shown for the first time, you can set its display to
none, inline, inline-block, block and table and it will just change the
display while letting the plug-in keep playing. This means that setting
the display to none won't destroy the plug-in instance like it does in
other browsers.
In Firefox:
Same as Safari.
So, is it IE's behavior we want here, or Opera's? The difference being
that display: none can kill an already-started plug-in in Opera (and other
browsers right now), while in IE, I think you have to actually remove the
<object> from the document to get rid of it, or perhaps change its
@type/@classid etc.
Judging by the use-case you mentioned above, IE's exact behavior in these
situations is what's desired?
Or, are you saying that the <object> should also load the plug-in even
when its display is set to none by default?
Just want to make sure what's desired, if HTML5 matches it and what each
browser has to change.
>> If the change is trivial, maybe someone can throw up an experimental FF
>> or webkit binary with the fix.
>
> If the change were trivial it would have been done back when the bug was
> filed, in 2001.
O.K. Thanks (thought maybe it was a political issue for why it wasn't
fixed yet instead.)
--
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090918/32e051a3/attachment-0002.html>
More information about the whatwg
mailing list