MAMA: Plug-ins

By Brian Wilson


  1. Introduction
  2. PARAM
  4. EMBED
  6. Flash and Java usage


The Web has multiple elements to handle plug-ins because of simple evolution. At first, there was no standardized way to use plug-ins, so solutions arose haphazardly—APPLET, EMBED and PARAM. The standards process produced a cohesive solution in the for of the OBJECT element, but authoring inertia seems to indicate that APPLET and EMBED are not going anywhere. Rather than the OBJECT element being used instead of EMBED, for instance, the majority of OBJECT tags are used in conjunction with EMBED elements. In all, 503,783 URLs use both EMBED and OBJECT elements (94.46% of all OBJECT and 92.31% of all EMBED instances).

Fig 1-1: Plug-in-related elements

PARAM element

This element can be a child element of both the APPLET and OBJECT elements, allowing parameters to be passed to a plug-in. Very few documents use APPLET and OBJECT without a PARAM; APPLET and OBJECT were used in a combined 580,031 cases, and PARAM was used in 576,702 of those (99.43%). The Value and Name attributes are used in almost every instance where PARAM was found. There is no limit to the number of parameters that can be passed to a plug-in, but authors typically refrain from using them to excess. The average number of PARAM elements in a document when PARAM is used is 8.6. However, the most popular quantity of PARAM elements is 2—probably related to Flash usage, where the common OBJECT syntax uses 2 PARAMs. A full frequency table of PARAM quantities is available for your viewing pleasure.

Fig 2-1: PARAM element/attribute usage

URLs using the most PARAM elements

The maximum number of PARAM elements detected in a single document was a dizzying 4,025 (!!). These extremes for PARAM usage appear to vary over time., as originally analyzed, had 4,025 PARAM elements but at the time of writing it had 2,087. The next highest value detected (not listed below) had almost no PARAM elements at the time of writing. Three of the four extreme PARAM usages listed were in conjunction with the APPLET element. (Really, there are easier ways to create dynamic button effects and flashy scrollers!)

Fig 2-2: URLs with the most detected PARAM elements

The Name attribute

The most popular values here are the top two, at more than 2-to-1 over any other values. These values, "movie" and "quality", are both related to Flash usage.

Fig 2-3: Top PARAM Name values
[Please also see the full frequency table.]
Name valueFrequency  Name valueFrequency

APPLET element

This element is used to embed Java Applets in a document. When Applets are in use, the average quantity detected was 2.7, and the most popular number of Applets per document was 1. Judging by their overwhelming popularity, it appears that authors treat Code, Height, and Width as required attributes. A full frequency table of APPLET quantities is on hand.

Fig 3-1: APPLET element/attribute usage
ELEMENT/AttributeFrequency  ELEMENT/AttributeFrequency
APPLET52,160   Name6,558
   Code52,137   Alt3,874
   Height52,101   Hspace2,284
   Width52,097   Vspace1,676
   Codebase27,661   Mayscript1,417
   Archive10,706   Viewastext801

URLs using the most APPLET elements

Some URLs use large numbers of Java applets, often for disappointingly little return (all the URLs listed below use Java to create animated push button effects). The maximum number of APPLET elements detected by MAMA was 82. Other documents also used similarly high numbers of applets, with several URLs registering quantities above 50 for a single URL.

Fig 3-2: URLs with the most detected APPLET elements
Elements (URL no longer active)82

EMBED element

This element is the outdated method to include inline plug-in content in a document. Its use has been officially supplanted by the OBJECT element in the standards, but OBJECT has not quite overtaken EMBED in usage numbers (EMBED is still slightly more popular than OBJECT). Additionally, most cases indicate that EMBED and OBJECT are usually used together (over 90% of URLs that use EMBED also use OBJECT). Similar to the APPLET element, there are 3 attributes that are used in almost every case—one to specify the URL of the plug-in content (Src in this case), and two others for the content's dimensions (Height and Width). Also very widely used are the Type, Pluginspage and Quality attributes. The average number of EMBED elements in a document when it is used is 1.7, with the most popular EMBED quantity being 1. A full frequency table of EMBED quantities is available.

Fig 4-1: EMBED element/attribute usage
[Please also see the full frequency table]
ELEMENT/AttributeFrequency  ELEMENT/AttributeFrequency
EMBED545,734   Align135,043
   Src545,257   Wmode84,745
   Width537,814   Allowscriptaccess75,118
   Height537,448   Loop65,530
   Type510,242   Menu50,029
   Pluginspage491,348   Scale40,412
   Quality484,736   Play22,271
   Bgcolor194,952   Flashvars19,612
   Name138,809   Autostart19,301

URLs using the most EMBED elements

The maximum number of EMBED elements that MAMA found was 186, but the usage in that case is questionable: all the EMBEDs in that URL have dimensions, but no Src attribute, so this example does not represent the element in a realistic fashion. The first "legitimate" maximum detected used 113 EMBED elements. This and the other URLs mentioned below were all uses of multiple Flash objects.

Fig 4-2: URLs with the most detected EMBED elements
Elements (URL no longer active)113 (URL no longer active)110

OBJECT element

To wrap up the plug-in-related elements, we come to the OBJECT element. It was introduced in HTML 4.0 to accomplish all of the tasks associated with the APPLET and EMBED elements, as well as assuming other unrelated duties such as hosting inline images. Dimensions and paths to the plug-in content are again the dominant attributes. The most popular number of OBJECT elements used is 1, and the average number of OBJECT elements when they are used is 1.7. As ever, MAMA has a full frequency table of OBJECT quantities for your perusal.

Fig 5-1: OBJECT element/attribute usage
ELEMENT/AttributeFrequency  ELEMENT/AttributeFrequency
OBJECT533,343   Hspace8,839
   Width528,107   Viewastext6,190
   Height527,771   Standby2,261
   Classid497,697   Alt1,480
   Codebase493,980   Wmode941
   Align127,294   Allowscriptaccess817
   Type27,257   Allownetworking789
   Data24,261   Namo_flashbutton513
   Border17,633   Bgcolor500

URLs using the most OBJECT elements

The maximum number of OBJECTs that MAMA detected was 1,554; although the count from that URL at the time of writing stands much lower at 924, it is still far and away the highest OBJECT frequency from any URL that MAMA looked at. Unfortunately, all of the OBJECT elements in this case appear to do nothing. Every one of the 924 OBJECT instances at that URL carry Height and Width only but no content. For more "reasonable" maximum numbers of OBJECT elements, we proceed to the next URLs on the list which have ~100-200 OBJECTs each. These instances all use Flash.

Fig 5-2: URLs with the most detected OBJECT elements
Elements (URL no longer active)191 (URL no longer active)110

The Classid attribute

A Classid value is a 32-digit hexadecimal string that can be used to uniquely identify a Microsoft Windows ActiveX component for interpreting the content pointed to by the OBJECT. The Classid attribute value was tracked by MAMA to see if anything could be learned from its usage in the real world. Unfortunately, the full frequency table is not terribly easy to read; a Classid may be easy to interpret by a computer but humans are another matter entirely. Your favorite search engine can make quick work of deciphering these cryptic strings. The top Classid value detected (by a HUGE margin) was the Flash player (Classid: "d27cdb6e-ae6d-11cf-96b8-444553540000").

Fig 5-3: Top Classid attribute values
ClassidPlugin TypeFrequency
d27cdb6e-ae6d-11cf-96b8-444553540000Adobe Flash500,417
22d6f312-b0f6-11d0-94ab-0080c74c7e95Windows Media Player2,704
6bf52a52-394a-11d3-b153-00c04f79faa6Windows Media Player1,732
02bf25d5-8c17-4b23-bc80-d3488abddc6bApple Quicktime691

Flash and Java usage

So far in this document, I have mostly skirted around the issue of what types of plug-ins are in use on the Web, but MAMA did not try to avoid this in its research. In fact it specifically looked for as many manifestations as possible of two widely used plug-ins: Flash and Java.


MAMA tried to discover evidence of Flash usage in every document it analyzed. It had to resort to looking for a number of different factors, as authors can use Flash in many ways. Its use was detected by looking for one or more of the following components:

  • Any PARAM element that contained the substrings ".swf" or "flash"
  • Any MIME types containing the substring "flash" from EMBED[Src] and OBJECT[Data] URLs
  • Any scripting component containing the substring "flash" or ".swf"

Using these criteria, 1,176,227 URLs were found to be using Flash. This is a MUCH higher result than one would expect by looking solely at the EMBED and OBJECT elements. This means that either some aspect(s) of MAMA's detection mechanism are too relaxed, or that some part of the analysis is flagging a lot of positive matches that EMBED or OBJECT detection alone does not catch. If any part of the above detection is suspect, it is likely to be the scripting detection of Flash (due to the simplistic nature of its substring search). Judging by anecdotal evidence seen over the years, the number is probably pretty accurate; scripting is frequently given the duty of dynamically generating plug-in markup.

It should also be noted that MAMA did not explicitly use the Classid attribute to help declare the Flash totals. That does not appear to be a hindrance though. Adding those URLs using the Flash Classid (d27cdb6e-ae6d-11cf-96b8-444553540000) to the Flash tally causes absolutely no change to the total. This indicates that checking for the Flash Classid would be a redundant search factor.


As with Flash, there were a number of methods MAMA used to detect Java usage. Some of the policies used could be improved upon, but all in all they work rather well. The following criteria were used to judge whether or not Java was being used in a URL and resulted in the detection of 53,688 matches:

  • Any usage of the APPLET element
  • Any PARAM element that contained the substrings ".class" or "java"
  • Any MIME types containing the substring "java" from getting any OBJECT[Data] URLs
  • Any scripting component containing the substring "application/java-vm"

This article is licensed under a Creative Commons Attribution, Non Commercial - Share Alike 2.5 license.


The forum archive of this article is still available on My Opera.

No new comments accepted.