Encountering OBJECT, EMBED, and APPLET Tags With Different Plug-in Versions and Browsers


This section deals with how different versions of Java Plug-in, runing with different web browsers and web browser versions, behave when OBJECT, EMBED, and APPLET tags appear on an HTML page. It presents the various scenarios in table form and then answers some of the common questions developers and users have.


Table of Scenarios

HTML Tag
Additional Information
Browser
Behavior
OBJECT      
 

classid attribute of the OBJECT tag is fixed, i.e., OBJECT tag has classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

This is referred to as dynamic versioning.

   
    IE If the user has an older version of Plug-in than shown in the codebase attribute of the OBJECT tag, the user will be prompted to download the newer version. If the user has the same or a newer version, that version will run.
    Netscape 6 In theory Netscape 6 should work the same as IE.*
 

classid attribute of the OBJECT tag is unique for the Plug-in version, where the version is 1.3.1 or later; e.g., clasdid="clsid:CAFEEFAC-0014-0000-0000-ABCDEFFEDCBA" for Plug-in 1.4.0.

This is referred to as static versioning.

   
    IE If the user has a different version than indicated in the codebase attribute of the OBJECT tag, the user will be prompted to download the newer version specified in the codebase.
    Netscape 6 In theory Netscape 6 should work the same as IE.*
EMBED      
 

Only version is used in the type attribute with EMBED tag; e.g., type="application/x-java-applet;version=1.4"

This is another form of dynamic versioning.

   
    Netscape 4.x If the user has a lower version than specified, then the user will be directed to the pluginspage page. If the user has the same or a higher version, then the installed version will run.
    Netscape 6 Same as described above for 4.x if only the EMBED tag is present on the HTML page. However, if the OBJECT tag is present, it will use it and ignore the EMBED tag.
 

jpi-version is used in the type attribute with the EMBED tag; e.g., type="application/x-java-applet;jpi-version=1.4"

This is another form of static versioning.

Netscape 4.x If the user has a different version than specified in the type attrribute, then the user will be directed to the pluginspage page.
    Netscape 6 Same as described above for 4.x if only the EMBED tag is present on the HTML page. However, if the OBJECT tag is present, it will use it and ignore the EMBED tag.
APPLET      
    IE If the user has Plug-in 1.3.1_01a or later installed and visits a page with an APPLET tag, the applet will be run by the highest installed version of Plug-in, 1.3.1_01a or later. If no such Plug-in is installed on the system, then the browser VM will run the applet.
    Netscape 4.x Browser VM will run the applet in all cases.
    Netscape 6 In theory Netscape 6 should work the same as IE.*

* If it does not, check the bug report.

Answers to Some Common Questions

Question: What happens with Internet Explorer when a user has already installed a version of the Plug-in (say, 1.3.1) and then requests an applet that requires a newer version of the plug-in (say, 1.4)? Will the user be prompted to install the new version of the plug-in (1.4)?

Answer: Yes. The version will be indicated by the version specification in the codebase of the OBJECT tag.

Question: What happens when the user at some later point returns to the applet that specifies the 1.3.1 plug-in? Does the 1.4 plug-in load, ignoring the applet's HTML plug-in version parameters?

Answer: Here the answer depends on whether the 1.3.1 applet specifies clsid:8AD ... or clsid:CAF .... The clsid:CAF ... indicates that the applet requires the specific version of 1.3.1 to run; and so it will run with the 1.3.1 version if it has not been removed from the system and will prompt the user to install it if it has. However, if the clsid:8AD ... is used and both versions of the Plug-in are still installed on the system, then the 1.3.1 version will be run. If 1.3.1has been removed, the 1.4 version will be run. In this case, any version of Plug-in equal to or higher than the indicated version will be used.

Question: What happens when the user has a newer version of the plug-in installed (e.g., 1.4) but opens an applet whose HTML specifies an older version (1.3.1 or 1.2.1)? Will the user be prompted to install the older one? If so, what happens when the user returns to the newer applet?

Answer: This is similar to the question above. If the clsid:CAF ... is used, then the older version will be installed and run. However, if the clsid:8AD is used, then the newer version will run the applet.

Question: What happens when an older version of the plug-in is installed on top of a newer version? For instance, some customer sites use automated "batch"
installation programs that remotely update users' computers over the local network. If 1.3.1 were installed on a computer that already has 1.4, would applets that require 1.4 still work? Would applets that require 1.3.1 work?

Answer: Assuming that version 1.4 was not removed, both applets should still run. However, a problem can occur when an older version of Plug-in is installed after a newer version. Suppose 1.3.1 is installed after 1.4 is installed and both are still present on the system. If the user goes to a page that specifies clsid:8AD ... ( dynamic versioning) with a codebase with version 1.4, then Plug-in will prompt the user to install 1.4 again, even though it is installed. This is what is happening in this case: The download services checks the clsid:8AD ... for version and finds it to be 1.3.1 (the last installed version), and it compares this to the version indicated in the codebase, which is 1.4. It decides that the user needs to install 1.4.

Question: How do we deploy incremental releases of the plug-in from Sun? For instance, when Sun releases a maintenance version of the 1.3 plug-in, how do our customers get this on their user's computers? Do we change the codebase string " #Version" from, say, " #Version=1,4,0,0" to " #Version=1,4,1,0"? Or is the user stuck with the original version of 1.4 unless they, or their IT department, manually install a newer one?

Answer: You can do either: you can change the version string to force download of a newer version, or users or IT departments can manually install the newer version. You could also set up an automated upgrade for all users. There may be advantages to removing earlier versions of Plug-in to avoid conflicts, such as the one described earlier.

Question: What about Netscape 4.x and 6? The above discussion applies to the use of the OBJECT tag with Internet Explorer.

Answer: In theory the same applies to Netscape 6 when it encounters the OBJECT tag. Netscape 4.x uses the EMBED tag and the type attribute to indicate the version of the Plug-in. Use of " jpi-version" in the type is similar to clsid:CAF ... with the OBJECT tag; this indicates that a specific Plug-in is required. Use of type with just " version" is similar to clsid: 8AF ...; it indicates version but only requires that an installed Plug-in version be the same or higher but not exact.

 

 

 

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
JavaOne Banner
Java 8 banner (182)