W3C home > Mailing lists > Public > www-html@w3.org > February 2003

Re: Applet, Target, Object, Embed in XHTML 1.1

From: Boris Zbarsky <bzbarsky@MIT.EDU>
Date: Sun, 02 Feb 2003 16:41:15 -0600
Message-ID: <3E3D9E8B.4060900@mit.edu>
To: "Philip TAYLOR [PC336/H-XP]" <P.Taylor@Rhul.Ac.Uk>
CC: www-html@w3.org

Philip TAYLOR [PC336/H-XP] wrote:

> How can one tell that the parameter to the object tag is trying
> to invoke an Active-X object ?

See the text at 
http://www.w3.org/TR/html401/struct/objects.html#adef-classid -- the 
"classid" attribute points to a particular implementation of something 
that can handle the data.  It could be an http:// uri to a plugin binary 
or anything else one wishes, if I read the spec correctly (the 
informative examples use a "java:" uri for Java applets and a "clsid:" 
uri for ActiveX objects).  The problems only start, imo, when the URI 
used in this attribute is not usefully standardized.

So the real question is "what does the 'clsid' protocol scheme mean?" 
Thus far, the only uses of this protocol scheme of which I'm aware are 
to identify ActiveX objects by their uuids.  I do not know whether there 
  is any actual documentation as to this fact.  If you do, I would 
dearly like to know.

> If not, what is to prevent
> a browser from applying its own (totally idiosyncratic) 
> interpretation to the parameter and interpreting it as
> anything that it chooses ?

Nothing.  In fact, the whole <object> element is not usefully specified 
in such a way as to be interoperable across multiple platforms and 
browser implementations.  It seems to be meant as a generic extension 
mechanism (which is fine), and does not specify a way of determining 
when two extensions would be "equivalent".

Thus, if you have an <object> that requires a "clsid:FOO" to render it 
(as defined by the classid attribute), a browser has a few choices:

1)  Decide that "clsid:" means "ActiveX Object" (in practice this is the
     case in every case that I have seen) and
     a)  Render using that ActiveX object
   or
     b)  Not have the ActiveX object (or ActiveX at all) available and
         render the alternate markup.
or
2)  Decide that "clsid:" means "unique identifier in some other naming
     scheme" and
     a)  Use that to find an acceptable implementation and try to use it
        (chances are this would break on any current page using "clsid:")
     b)  Decide it does not know what to do with it and render the
         alternate markup

Boris
Received on Sunday, 2 February 2003 17:41:21 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:15:54 GMT