| <html> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8"> |
| <title>Installed Plug-ins</title> |
| </head> |
| <body> |
| <script type="application/x-javascript"> |
| function checkForTestPlugin() { |
| for (var i = 0; i < navigator.plugins.length; i++) { |
| var plugin = navigator.plugins[i]; |
| |
| // We can only guarantee that the Test PlugIn is installed. |
| if (plugin.name != "WebKit Test PlugIn") |
| continue; |
| |
| document.writeln("<p>Name: " + plugin.name + "<\/p>"); |
| document.writeln("<p>Description: " + plugin.description + "<\/p>"); |
| document.writeln("<p>Filename: " + plugin.filename + "<\/p>"); |
| |
| document.writeln("<p>Mime Types:<\/p>"); |
| for (var mi = 0; mi != plugin.length; ++mi) { |
| document.writeln("<p>Type: " + plugin[mi].type + "<\/p>"); |
| document.writeln("<p>Description: " + plugin[mi].description + "<\/p>"); |
| document.writeln("<p>Suffixes: " + plugin[mi].suffixes + "<\/p>"); |
| document.writeln("<br>"); |
| |
| if (plugin.item(mi).type == plugin[mi].type) |
| document.writeln("<p>Plugin.item() works.<\/p>"); |
| else |
| document.writeln("<p>FAIL. Plugin.item() does not work.<\/p>"); |
| |
| if (plugin.namedItem(plugin[mi].type).type == plugin[mi].type) |
| document.writeln("<p>Plugin.namedItem() works.<\/p>"); |
| else |
| document.writeln("<p>FAIL. Plugin.namedItem() does not work.<\/p>"); |
| } |
| |
| if (navigator.plugins.item(i).name == plugin.name) |
| document.writeln("<p>PluginArray.item() works.<\/p>"); |
| else |
| document.writeln("<p>FAIL. PluginArray.item() does not work.<\/p>"); |
| |
| if (navigator.plugins.namedItem(plugin.name).name == plugin.name) |
| document.writeln("<p>PluginArray.namedItem() works.<\/p>"); |
| else |
| document.writeln("<p>FAIL. PluginArray.namedItem() does not work.<\/p>"); |
| |
| return true; |
| } |
| |
| return false; |
| } |
| |
| if (window.testRunner) |
| testRunner.dumpAsText() |
| |
| navigator.plugins.refresh(false); // Supposedly helps if new plug-ins were added. |
| |
| // A non-local file should not be allowed to iterate over the installed plugins. |
| document.writeln("<p>Test 1: A non-local file should not be able to iterate over the plugins.<\/p>"); |
| if (checkForTestPlugin()) |
| document.writeln("<p>FAILURE! (Found the netscape test plugin on a non-local file!)<\/p>"); |
| else |
| document.writeln("<p>PASS! (Could not find the netscape test plugin on a non-local file!)<\/p>"); |
| |
| // Activate our debugging code to show all plugins to confirm we do have the test plugin. |
| document.writeln("<p>Test 2: Confirm the plugin is present.<\/p>"); |
| if (window.internals) |
| internals.setShowAllPlugins(true); |
| |
| if (checkForTestPlugin()) |
| document.writeln("<p>PASS! (Found the netscape test plugin on a non-local file!)<\/p>"); |
| else |
| document.writeln("<p>FAILURE! (Could not find netscape test plugin on a non-local file!)<\/p>"); |
| </script> |
| </body> |
| </html> |