Closed Bug 135474 Opened 22 years ago Closed 22 years ago

Java applets using the embed tag fail to load when they check for a specific version of Java

Categories

(Core Graveyard :: Java: OJI, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: bnesse, Assigned: bnesse)

References

()

Details

Java applets declared as in the example below fail to load because the MRJ
Plugin does not specifically claim to support the required mimetype.

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 520
HEIGHT = 400 NAME =" TestApplet" ALIGN = middle VSPACE = 0 HSPACE = 0
codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">
<param NAME = CODE VALUE =" raoult.RaoultApplet.class" >
<param NAME = CODEBASE VALUE =" ." >
<param NAME = ARCHIVE VALUE =" raoult.jar" >
<param NAME = NAME VALUE =" TestApplet" >

<param NAME="type" VALUE="application/x-java-applet;version=1.3">
<param NAME="scriptable" VALUE="false">
<COMMENT>
<embed type="application/x-java-applet;version=1.3"  CODE ="
raoult.RaoultApplet.class" CODEBASE =" ." ARCHIVE =" raoult.jar" NAME ="
TestApplet" WIDTH = 520 HEIGHT = 400 ALIGN = middle VSPACE = 0 HSPACE = 0 
scriptable=false
pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><noembed></COMMENT>

</noembed></embed>
</object>

Applets declared with the <applet> tag, or as <embed> tags using only
"application/x-java-applet", work as expected because they to not request a
specific version of Java.

There are two routes we can take to fix this situation.
1) We can add mimetype descriptions for all of the various Java releases.
   (there are currently 9 from 1.1 to 1.3.1)
2) We can evangalize sites to use the applet tag, or at least to not use
   ;version=x.x.

There are issues with both of these. If we follow the first path we end up
having to rev the plugin everytime Sun revs their JRE. If we follow the second
path we could end up evangalizing a potentially unlimited number of sites.
3) One more option is to change mime type comparison algorithm and 
  if there is no exact match for whole string  then strip first part untill ";"
  and try it.

This approach also has issues :)

 
Yes, I didn't mention that approach as we had already kind of ruled it out as
being too ugly.
As resource files don't diff well, I'll do this manually...Currently we support:
application/x-java-vm,                   xjv
application/x-java-applet,               xja
application/x-java-applet;version=1.1,   xja11
application/x-java-applet;version=1.1.2, xja112

Versions apparently attached to Java 1 (OS 9 and OS X plug-ins):
application/x-java-applet;version=1.1.1, xja111
application/x-java-applet;version=1.1.3, xja113
application/x-java-applet;version=1.2,   xja12

Versions apparently attached to Java 2 (OS X plug-in):
application/x-java-applet;version=1.2.1, xja121
application/x-java-applet;version=1.2.2, xja122
application/x-java-applet;version=1.3, xja13
application/x-java-applet;version=1.3.1, xja131

Future versions attached to Java 2 (OS X plug-in):
application/x-java-applet;version=1.4, xja14
application/x-java-applet;version=1.4.1, xja141

This info has been gleaned from a) the Windows Java Plug-in, and b) the Sun Java 
website, and is my best guess as to versions we would have to claim to support.

This list is not comprehensive, as there also appear to be 1.1.x versions up to 
1.1.8 (though apparently not supported by the Windows Java Plug-in.) Also, some 
of these versions do not appear to correspond to Sun Java releases (see http://
java.sun.com/products/archive/).
Blocks: 88870
I wouldn't advise adding 1.4* versions, because Apple's JVM is based on Java 2
version 1.3.1.
No, I would agree that claiming to support 1.4 is probably a bad idea. I just
added them for completeness.
I dug some more and found that Apples latest, and final, MRJ release for Classic
supports JDK 1.1.8. Previous releases supported 1.0.2, 1.1.3, and 1.1.7 JDK's.

So, mimetypes to be added to the classic plug-in are:
  application/x-java-applet;version=1.1.1, xja111
  application/x-java-applet;version=1.1.3, xja113
For completeness, we could also add any or all of the following:
  application/x-java-applet;version=1.0.2, xja102
  application/x-java-applet;version=1.1.7, xja117
  application/x-java-applet;version=1.1.8, xja118
As these mimetypes doesn't appear on Windows plug-in releases, the only reason I
can see for doing this would be to (potentially) support pages written
specifically for the Mac.

In additon the following should also go into the OS X plug-in:
  application/x-java-applet;version=1.2,   xja12
  application/x-java-applet;version=1.2.1, xja121
  application/x-java-applet;version=1.2.2, xja122
  application/x-java-applet;version=1.3, xja13
  application/x-java-applet;version=1.3.1, xja131
Status: NEW → ASSIGNED
Since it's a binary file that gets modified I'll just say r= on the concept.
sr=beard on the concept
OSX Plugin changes checked in.
Classic plugin changes checked in.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
QA Contact: pmac → petersen
Verified in the 2002-12-17-08 cfm trunk under OS X 10.2.3.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.