Closed
Bug 161891
Opened 23 years ago
Closed 13 years ago
object tag doesn't work correctly with params
Categories
(Core Graveyard :: Plug-ins, defect, P2)
Core Graveyard
Plug-ins
Tracking
(Not tracked)
RESOLVED
INVALID
People
(Reporter: arun, Assigned: arun)
References
Details
(Keywords: html4, testcase, topembed-, Whiteboard: [META] [PL2:NA] [HTML4-13.3.2])
Attachments
(4 files)
Could the fix to bug 152334 have stopped object tags from working with some
param attributes? Try :
<object id="myobj" .... codebase="someURL.xpi"
type="application/x-shockwave-flash" height=.. with=...>
<param name="src" value="someSWF-File.swf">
....
...
</object>
It seems that now, we not only prefer *data* attribute to do this, but we expect
it, and thus no longer work with param with "src". This is in fact both a
standards compliant way of doing this, and an "old favorite" way to invoke
certain plugins, especially Flash.
Comment 1•23 years ago
|
||
I believe Peter did some work in this area -- maybe he was a bit too aggressive.
ANdrei, can you take a look at this and see what's up?
Assignee: beppe → av
Keywords: nsbeta1+
Priority: -- → P2
Whiteboard: [PL2:NA]
Target Milestone: --- → mozilla1.2alpha
Comment 2•23 years ago
|
||
this testcase wor sfor me:
http://jazz,mcom.com/users/shrir/publish/objdata.html
<HTML>
<BODY>
<OBJECT TYPE="application/x-mplayer2" height="500" width="500">
<PARAM NAME="SRC"
VALUE="http://www.geocities.com/MotorCity/Pit/3571/martial/mikemookjong2.avi">
</OBJECT>
</BODY>
</HTML>
Comment 3•23 years ago
|
||
WFM.
I think it would be more appropriate to attach a test case into a bug report
instead of posting html sources...
| Assignee | ||
Comment 4•23 years ago
|
||
Serge is correct. Attachment following this update.
| Assignee | ||
Comment 5•23 years ago
|
||
Test this testcase using both latest Mozilla and IE. Why don't the classic
param values like <param name="movie" value=".../something.swf"> work? It sort
of works, because if you right click over the grey area, you get a Flash
context menu. This attachment uses base href="http://www.macromedia.com"
| Assignee | ||
Comment 6•23 years ago
|
||
Basically, using testcases, etc., we want to know here: is this Flash's issue?
If so, why? Are we passing right array/data structure of params and attributes?
are they not loading properly? ActiveX control passes my test case.
The thing does not work for me even if you write the classic <embed>.
Arun, this is possible that the server does not feed us back with the data
content because we don't set the referrer URL, see bug 157796. Can you try to
create another test case on some other server? The bug is now fixed but any
local test case may still fail because server may allow only itself as the referrer.
| Assignee | ||
Comment 9•23 years ago
|
||
Note that *some* of the params work, like background color, etc. But others do
not work, notably the <param name="movie" ... > which is how to invoke Flash
with param. Why do some work and others don't? I'll also attach the SWF file.
| Assignee | ||
Comment 10•23 years ago
|
||
Save this file as WillHomeDetail.swf -- it is of type
application/x-shockwave-flash and is used exclusively to go along with the HTML
test case entered previously.
Comment 11•23 years ago
|
||
I think I found the problem. It looks pretty serious.
Let's use words 'attribute' and 'param' strictly, first meaning the tag
attribute, like
<object attrname="attrvalue">,
while the latter meaning the tag parameter, like
<object ...><param name="paramname", value="paramvalue"></object>
We pass to the plugin all necessary tag attributes/params in NPP_New call in one
array, there is no problem with that. But later we only create a data stream if
we have 'data' or 'src' attribute, ignoring possible 'data' param. The stream
never initiates in such a case.
As for the attributes, 'data' (or 'src' for embed tag) are standard, we check
for them and if found start the stream. There are no standard param names in
HTML spec. Should we treat <param name="data"> as standard too and trigger the
stream initiation process upon finding it? Probably not. Plugin should request
it based on the info it gets in NPP_New call, rather than rely on automatic
stream creation as in the case of having 'data' attribute.
Thoughts?
Comment 12•23 years ago
|
||
Let me try to explain the two scenarios.
Scenario I: <object type="mimetype" data="dataurl"></object>
1. in NPP_New call the plugin gets two name/value pairs:
name[0]="type", value[0]="mimetype"
name[1]="data", value[1]="dataurl"
(we also duplicate "data" as "src" but this is not relevant now)
2. "data" attribute has standard meaning for the object tag, so Mozilla takes it
as the data source URL and starts the data stream to the plugin automatically
3. plugin plays the data
Scenario II: <object type="mimetype"><param name="data" value="dataurl"></object>
1. in NPP_New call the plugin gets three name/value pairs:
name[0]="type", value[0]="mimetype"
name[1]="PARAM", value[0]=""
name[2]="data", value[2]="dataurl"
note the second pair with empty value, that's how the plugin knows that all the
following pairs come from <param> tags rather than the object tag attribute
2. Mozilla does not see any reserved for data source URL attributes and does NOT
start the data stream to the plugin
3. plugin should understand that this is going to happen and request the data
via NPN_GetURL call to Mozilla, so Mozilla can initiate the stream
Does it all make sense? Evangelize?
Comment 13•23 years ago
|
||
Andrei: this sounds pretty evil, but what I don't understand is if we know that
the values past the null param value are param attribute values, why can't we
take the initiative to pass the data attribute value via NPN_GetURL? Or am I
totally off the mark here?
Comment 14•23 years ago
|
||
we can always do a hack if there is no "src" or "data" attributes
by parsing the value of params, if we find something which looks like filename+
ext corresponding to given mimetype, we can consider that param name equals to
"data". But that would be a hack, and av is right, plugin itself suppose to
parse its params and request the stream from us if needed.
Comment 15•23 years ago
|
||
Beth: NPN_GetURL is something the plugin calls on us, not us calling to the
plugin. That's how plugins ask for data. We pass all the params/attrs to the
plugin in NPP_New which is the first call to the plugin instance. We cannot take
any initiative without having a guess first. This is not the case with
attributes where we know exactly what the word 'data' means -- it specified in
the HTML spec. In the <param> list it can be anything, Flash uses 'movie' (?)
e.g. It will be really hard to guess by the param name, so we will need to look
at the value, which can also be unrecognizable, especially when it is relative
location (lacks protocol scheme), file without extension etc.
So, the real question is: should we follow the spec and rely on plugin to sort
out the situation or should we go smart and try to decide what plugin wants (and
still fail)?
Would be good to know how ActiveX version of Flash works in this kind of
situation. Does IE play 'smart' or does Flash take the lead?
Comment 16•23 years ago
|
||
I see, I understand, it sounds as though we should let the plug-in perform its
own analysis.
Comment 17•23 years ago
|
||
Reassigning to aruner as it seems to be more of evangelizm issue. Arun, if you
think we should go ahead and 'fix' this by introducing a hack, give it back to me.
Assignee: av → aruner
| Assignee | ||
Comment 18•23 years ago
|
||
OK, so I guess everyone can confirm that the fix to bug 152334 has nothing to do
with all this? In fact, what I want to know is that what we pass to Flash *has
not changed at all* and that this is the way we've always passed attributes and
params? One factor which makes this look like an evangelism bug is the fact
that *other plugins* such as that mentioned by shrir work with param tag
invocations to the plugin. Only Flash does not work with param passing. But
I'm looking for *absolute* confirmation that we didn't break parameter passing.
Comment 19•23 years ago
|
||
Correct. Bug 152334 is about adding one more artificial attribute which clones
DATA attribute but has SRC name. As for params passing -- no, nothing changed
since a while ago when we added params to what we pass to the plugin. If we
broke params passing, then the same HTML would work with the same Flash in older
Mozilla versions. Is this the case?
Comment 20•23 years ago
|
||
I've created some additional test cases that demonstrate this bug is not
confined to Flash, and seems to occur with most, but not all plugins. So far,
I've found that AlternaTIFF, Cortona, SpinFire, and Quicktime all exhibit the
same behavior. As noted above, Media Player doesn't suffer this problem.
(Tested using build 2002072608, just downloaded and installed today.)
Using the data attribute at first seems standards-compliant, but once you add in
a codebase attribute for XPIinstall, data takes the codebase URL as its base for
relative URLs. This causes the plugin to go looking for the author's content on
the plugin-vendor's site--a big problem.
Also, since the HTML spec states the following in section 13.3, it seems to me
that support for <param name="src" ...> is really needed. As for comment #15,
while there is no standard, all of the IE controls or plugins I've tested
(including Flash) accept <param name="src" ...> instead of "movie", or whatever
else the vendor shows in their examples.
"This document does not specify the behavior of OBJECT elements that use both
the classid attribute to identify an implementation and the data attribute to
specify data for that implementation. In order to ensure portability, authors
should use the PARAM element to tell implementations where to retrieve
additional data."
The question is, though, is it the plugin vendors that aren't doing this right
in the Netscape plugins, or is it a bug in the current Moz code? If the former,
should any <param name="src" ...> value be passed to the plugins as a fake src
attribute?
Plugins using <param name="src" value="myfile.ext" />:
http://www.cadenceweb.com:8080/newsletter/sheerin/test/Quicktime.html
http://www.cadenceweb.com:8080/newsletter/sheerin/test/SpinFire.html
http://www.cadenceweb.com:8080/newsletter/sheerin/test/VRML.html
http://www.cadenceweb.com:8080/newsletter/sheerin/test/TIFF.html
Plugins using the data="myfile.ext" attribute:
http://www.cadenceweb.com:8080/newsletter/sheerin/test/Quicktime-data.html
http://www.cadenceweb.com:8080/newsletter/sheerin/test/SpinFire-data.html
http://www.cadenceweb.com:8080/newsletter/sheerin/test/VRML-data.html
http://www.cadenceweb.com:8080/newsletter/sheerin/test/TIFF-data.html
Comment 21•23 years ago
|
||
IMHO we cannot tweak any param/value pair even if value is looking like a value
for src param,we never know what content/plugins provider means by that
param/value pair.
here is the simple scenario:
I'm content provider using
<param name="movie" value="../file">
...
<param seek="start" value="N">
and it means my plugin will seek in ../file from the beginning of the file N
string and N-1 string is contains actually
URI to content which my plugin is going to handle.
If mozilla changes <param name="movie" to "src" my plugin is screwed:(
so I wouldn't do anything with the content except evangelized it's provider.
Updated•23 years ago
|
Comment 22•23 years ago
|
||
Marking as topembed+. We should compatible with other browsers and how they
interact with plugins.
Comment 23•23 years ago
|
||
Jaime: we are passing the param name/value pairs to the plug-in, the remaining
issue here is from the plug-in vendor to analyze the data and process it as they
deem appropriate.
| Assignee | ||
Comment 24•23 years ago
|
||
This bug was originally logged saying that some plugins don't support some
well-known "invocation" params, especially Flash with <param name="movie"
value="somefile.swf">. Flash only works with data attribute to object element,
but not with this invocation param element.
But we've decided that this is an evangelism issue, and that each vendor must
address this problem individually. I've logged bug 180378 to deal with the
effort to evangelize Macromedia to fix this issue, and made it a blocker for
this bug. We'll use all the good info. in this bug to track vendors that are
making these kinds of changes to param. Please log other bugs (for other
vendors and other broken "well-known" params) and make them block this bug.
Depends on: 180378
Whiteboard: [adt1] [PL2:NA] [HTML4-13.3.2] → [META][adt1] [PL2:NA] [HTML4-13.3.2]
Updated•23 years ago
|
Whiteboard: [META][adt1] [PL2:NA] [HTML4-13.3.2] → [META] [PL2:NA] [HTML4-13.3.2]
Updated•23 years ago
|
Target Milestone: mozilla1.2alpha → ---
Comment 26•21 years ago
|
||
*** Bug 284727 has been marked as a duplicate of this bug. ***
Comment 27•20 years ago
|
||
Here are some different situations that Opera tries to handle and I think
Firefox should do the same.
http://home.tbbs.net/shadow/html/embedding/firefox_plugins_handling.html
In addition, when embedding something with the realplayer plugin using the
object tag, Firefox doesn't honor any of the params.
Comment 28•20 years ago
|
||
I'm using the latest SeaMonkey build on OS X, and I think I see this problem with embedded PDFs. An online bank I use offers PDFS of my statements. When I click on the link to download the statement, a window appears, and the HTML in this window is:
<html>
<head>
<STYLE TYPE="text/css">
BODY {margin: 0pt}
</STYLE>
<script language="javascript" type="text/javascript" src="/webtrends7/top_section.js"></script>
<script language="javascript" type="text/javascript" src="/webtrends7/globaltags.js"></script>
<script language="javascript" type="text/javascript" src="/webtrends7/jsversion.js"></script>
<NOSCRIPT>
<IMG BORDER="0" NAME="DCSIMG" WIDTH="1" HEIGHT="1" SRC="http://www1.member-hsbc-group.com/dcseu97yi000004j50cqv75nm_8z8y/njs.gif?dcsuri=/nojavascript&WT.js=No">
</NOSCRIPT>
<BODY TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
</head>
<body>
<object id="pdfObj" type="application/pdf" width="100%" height="100%">
<param name="src" value="cchrs_Download_Data.jsp">
</object>
<img id="wusage" src="/images/trk_cc204_PdfStmt.gif" width="1" height="1" border="0" alt="" />
<script>
document.pdfObj.SetZoom(100);
</script>
<script language="javascript" type="text/javascript" src="/webtrends7/bottom_section.js"></script>
</body>
</html>
The Window is blank, however. The funny thing is that I have the same problem with Safari and IE on OS X, so technically I guess it's not a SeaMonkey problem, but that doesn't really help me a whole lot.
Comment 29•19 years ago
|
||
Embedding Flash While Supporting Standards
http://www.alistapart.com/articles/flashsatay
Embedding with using Param
http://service.real.com/help/library/guides/realone/ScriptingGuide/HTML/htmfiles/embedint.htm#tags
Severity was set to critical but this is not justified; critical is for "crashes, loss of data, severe memory leak".
Setting severity to Major
I'm voting for this bug
Severity: critical → major
Comment 30•19 years ago
|
||
If I understand correctly, Gecko-based browsers already support data attribute. I even wonder why severity should be "Major" here...
Object Embedding (Flash)
http://wiki.dreamhost.com/index.php/Object_Embedding#Flash
Updated•16 years ago
|
QA Contact: shrir → plugins
Comment 31•14 years ago
|
||
The documentation of Adobe stats: "movie ([in element] param) - Specifies the source location (URL) of the SWF file to load".
http://kb2.adobe.com/cps/127/tn_12701.html#main_Required_attributes
To me it seems, that the attribute "data" is NOT of any relevance to Flash. And in fact the following HTML code doesn't work in Mozilla Firefox. But it really works in Opera and Chrome. Please don't forget that all three browsers are using the very same dll when handeling Flash content.
<object type="application/x-shockwave-flash">
<param name="movie" value="http://www.w3schools.com/html/bookmark.swf">
</object>
BTW: Quicktime movies embedded with <object> are playing well in Opera and Chrome, but are rejected in Firefox. So, this bug is a serious thread in interoperability.
Comment 32•13 years ago
|
||
As well as I understand this report, it is not a bug. <object data="" is not a plugin parameter, is it a required attribute as part of HTML.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
Comment 33•13 years ago
|
||
(In reply to André Zepezauer from comment #31)
> The documentation of Adobe stats: "movie ([in element] param) - Specifies
> the source location (URL) of the SWF file to load".
> http://kb2.adobe.com/cps/127/tn_12701.html#main_Required_attributes
I think that documentation is incomplete and error-prone. One criteria for good documentation is to have a "Test for yourself" link where the reader can check his/her browser and learn interactively how to code.
> To me it seems, that the attribute "data" is NOT of any relevance to Flash.
In this Adobe document
OBJECT tag syntax | Flash Professional
http://helpx.adobe.com/flash/kb/object-tag-syntax-flash-professional.html#step_par_text_0
"
Edit the attributes of the OBJECT tag for your SWF file.
(...)
Change all instances of 'movie_name.swf' where it appears in the OBJECT tag above to the actual path or URL of your SWF file.
"
and it is definitely about the data attribute. And the HTML code provided is almost the same as
Object Embedding; 4. Flash
http://wiki.dreamhost.com/index.php/Object_Embedding#Flash
> And in fact the following HTML code doesn't work in Mozilla Firefox. But it
> really works in Opera and Chrome. Please don't forget that all three
> browsers are using the very same dll when handeling Flash content.
>
> <object type="application/x-shockwave-flash">
> <param name="movie" value="http://www.w3schools.com/html/bookmark.swf">
> </object>
I went to w3schools.com and found
HTML - The <object> Element
Adobe Flash Player - Play SWF Video
http://www.w3schools.com/html/html_object.asp
and then clicked the "Try it yourself" link
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_flashobject
and it worked in Firefox 18.0.2 without any problem.
They use
<param name="SRC" ...>
instead of the recommended by Adobe
<param name="movie" ...> .
Inside the wrapping <object>, they nest an <embed src="bookmark.swf" ...> which is, for practical reasons, equivalent to an inner <object data="bookmark.swf" ...>
> BTW: Quicktime movies embedded with <object> are playing well in Opera and
> Chrome, but are rejected in Firefox.
Object Embedding; 2. Video (Quicktime)
To embed a Quicktime movie (.mov) file in a webpage:
http://wiki.dreamhost.com/index.php/Object_Embedding#Video
and the nested, inner <object data="movie.mov" ...> will be processed accordingly by Firefox. The outer, wrapping <object> is processed by older IE versions.
> So, this bug is a serious thread in
> interoperability.
The only serious threat to interoperability is the difficulty or time to search+find good, reliable, updated+verified, web-standards-compliant code, documentation, tutorials with working examples.
Gérard
Updated•4 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•