- From: Simon Pieters <simonp@opera.com>
- Date: Thu, 23 Aug 2007 15:55:49 +0200
- To: public-html <public-html@w3.org>
(This is part of my detailed review of the Semantics and structure of HTML
elements section.)
The spec says about <object>:
4. Determine the resource type, as follows:
Big Issue: This says to trust the type. Should we instead use
the same mechanism as for browsing contexts?
I've done some ad-hoc testing. (See these test cases as demos -- I'm not
entirely sure the pass conditions are actually according to the current
spec...) It seems that some sniffing is happening in browsers.
gif as text/plain:
http://simon.html5.org/test/html/semantics/object/mislabeled/001.htm
Safari treats the resource as application/octet-stream, and downloads it
(then shows the fallback).
Firefox uses the fallback.
Opera shows the image.
IE7 treats the resource as text/plain if some security setting is enabled,
but the infobar pops up and says that the content might not show up
correctly. When clicking the infobar and choosing "show restricted
content" it is treated as application/octet-stream, and a download dialog
appears.
gif as text/html:
http://simon.html5.org/test/html/semantics/object/mislabeled/002.htm
Abovementioned browsers treat it as HTML.
gif as image/png:
gif as image/jpeg:
http://simon.html5.org/test/html/semantics/object/mislabeled/003.htm
http://simon.html5.org/test/html/semantics/object/mislabeled/004.htm
It seems that image types are treated the same in browsers, and the
resources are basically fed through the image library that reads the first
few bytes before deciding what type of image it is. (This is also the case
for browsing contexts, btw.)
flash as text/plain:
flash as text/plain with .swf extension:
http://simon.html5.org/test/html/semantics/object/mislabeled/005.htm
http://simon.html5.org/test/html/semantics/object/mislabeled/006.htm
It seems the file extension makes a difference in some browsers.
Safari treats the first as application/octet-stream (just like with 001)
and the second as application/x-shockwave-flash.
Firefox treats both as text/plain.
Opera uses the fallback for the first and treats the second as
application/x-shockwave-flash.
IE7 treats the first as text/plain but shows the infobar (just like with
001) and the second as application/x-shockwave-flash.
flash as application/octet-stream:
flash as application/octet-stream with .swf extension:
http://simon.html5.org/test/html/semantics/object/mislabeled/007.htm
http://simon.html5.org/test/html/semantics/object/mislabeled/008.htm
Safari, Opera and IE7 use the fallback for the first and treat the second
as application/x-shockwave-flash.
Firefox uses the fallback for both.
flash as application/octet-stream, with type="":
flash as application/octet-stream with .swf extension, with type="":
http://simon.html5.org/test/html/semantics/object/mislabeled/009.htm
http://simon.html5.org/test/html/semantics/object/mislabeled/010.htm
Safari treats both as application/x-shockwave-flash.
Opera and Firefox use the fallback for the first and treats the second as
application/x-shockwave-flash.
IE7 doesn't seem to ever finish loading these...? But the Flash plugin is
used for both nevertheless.
Note that not treating 010 as application/x-shockwave-flash caused
problems for Mozilla:
https://bugzilla.mozilla.org/show_bug.cgi?id=389677
--
Simon Pieters
Opera Software
Received on Thursday, 23 August 2007 13:55:56 UTC