зеркало из https://github.com/mozilla/pjs.git
168 строки
7.1 KiB
HTML
168 строки
7.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
|
|
<!-- ***** BEGIN LICENSE BLOCK *****
|
|
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
-
|
|
- The contents of this file are subject to the Mozilla Public License Version
|
|
- 1.1 (the "License"); you may not use this file except in compliance with
|
|
- the License. You may obtain a copy of the License at
|
|
- http://www.mozilla.org/MPL/
|
|
-
|
|
- Software distributed under the License is distributed on an "AS IS" basis,
|
|
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
- for the specific language governing rights and limitations under the
|
|
- License.
|
|
-
|
|
- The Original Code is mozilla.org Code.
|
|
-
|
|
- The Initial Developer of the Original Code is
|
|
- Netscape Communications Corporation.
|
|
- Portions created by the Initial Developer are Copyright (C) 1998
|
|
- the Initial Developer. All Rights Reserved.
|
|
-
|
|
- Contributor(s):
|
|
- Mark Olson <maolson@earthlink.net>
|
|
- Alexey Chernyak <alexeyc@bigfoot.com>
|
|
- Frank Tang <ftang@netscape.com>
|
|
- Mike Connelly <mozilla@shepherdstown.com>
|
|
- Robert Kaiser <kairo@kairo.at>
|
|
- Ehsan Akhgari <ehsan.akhgari@gmail.com>
|
|
-
|
|
- Alternatively, the contents of this file may be used under the terms of
|
|
- either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
- in which case the provisions of the GPL or the LGPL are applicable instead
|
|
- of those above. If you wish to allow use of your version of this file only
|
|
- under the terms of either the GPL or the LGPL, and not to allow others to
|
|
- use your version of this file under the terms of the MPL, indicate your
|
|
- decision by deleting the provisions above and replace them with the notice
|
|
- and other provisions required by the LGPL or the GPL. If you do not delete
|
|
- the provisions above, a recipient may use your version of this file under
|
|
- the terms of any one of the MPL, the GPL or the LGPL.
|
|
-
|
|
- ***** END LICENSE BLOCK ***** -->
|
|
|
|
<html>
|
|
<head>
|
|
<script type="application/javascript">
|
|
var strBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(Components.interfaces.nsIStringBundleService);
|
|
var pluginsbundle = strBundleService.createBundle("chrome://global/locale/plugins.properties");
|
|
var regionbundle = strBundleService.createBundle("chrome://global-region/locale/region.properties");
|
|
|
|
document.writeln("<title>" + pluginsbundle.GetStringFromName("title_label") + "<\/title>");
|
|
</script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://global/content/plugins.css">
|
|
<link rel="stylesheet" type="text/css" href="chrome://global/skin/plugins.css">
|
|
</head>
|
|
<body>
|
|
<div id="outside">
|
|
<script type="application/javascript">
|
|
|
|
function setDirection() {
|
|
var frame = document.getElementById("directionDetector");
|
|
var direction = frame.contentDocument
|
|
.defaultView
|
|
.window
|
|
.getComputedStyle(frame.contentDocument.getElementById("target"), "")
|
|
.getPropertyValue("direction");
|
|
document.body.removeChild(frame);
|
|
document.dir = direction;
|
|
}
|
|
|
|
function setupDirection() {
|
|
var frame = document.createElement("iframe");
|
|
frame.setAttribute("id", "directionDetector");
|
|
frame.setAttribute("src", "chrome://global/content/directionDetector.html");
|
|
frame.setAttribute("width", "0");
|
|
frame.setAttribute("height", "0");
|
|
frame.setAttribute("style", "visibility: hidden;");
|
|
frame.setAttribute("onload", "setDirection();");
|
|
document.body.appendChild(frame);
|
|
}
|
|
setupDirection();
|
|
|
|
/* JavaScript to enumerate and display all installed plug-ins
|
|
|
|
* First, refresh plugins in case anything has been changed recently in
|
|
* prefs: (The "false" argument tells refresh not to reload or activate
|
|
* any plug-ins that would be active otherwise. In contrast, one would
|
|
* use "true" in the case of ASD instead of restarting)
|
|
*/
|
|
navigator.plugins.refresh(false);
|
|
|
|
|
|
var numPlugins = navigator.plugins.length;
|
|
|
|
if (numPlugins > 0)
|
|
document.writeln("<h1 id=\"plugs\">" + pluginsbundle.GetStringFromName("installedplugins_label") + "<\/h1>");
|
|
else
|
|
document.writeln("<h1 id=\"noplugs\">" + pluginsbundle.GetStringFromName("nopluginsareinstalled_label") + "<\/h1>");
|
|
|
|
document.writeln("<div id=\"findmore\">" + pluginsbundle.GetStringFromName("findmore_label") + " ");
|
|
document.writeln("<a href=\"" + regionbundle.GetStringFromName("more_plugins_url") + "\">" + regionbundle.GetStringFromName("more_plugins_label") + "<\/a>.");
|
|
document.writeln("<\/div>");
|
|
|
|
document.writeln("<div id=\"installhelp\">" + pluginsbundle.GetStringFromName("installhelp_label") + " ");
|
|
document.writeln("<a href=\"" + regionbundle.GetStringFromName("plugindoc_url") + "\">" + regionbundle.GetStringFromName("plugindoc_label") + "<\/a>.");
|
|
document.writeln("<\/div><hr>");
|
|
|
|
for (var i = 0; i < numPlugins; i++)
|
|
{
|
|
var plugin = navigator.plugins[i];
|
|
|
|
if (plugin)
|
|
{
|
|
document.write("<h2 class=\"plugname\">");
|
|
document.write(plugin.name);
|
|
document.writeln("<\/h2>");
|
|
|
|
document.writeln("<dl><dd><span class=\"label\">" + pluginsbundle.GetStringFromName("file_label") + "<\/span> ");
|
|
document.write(plugin.filename);
|
|
document.writeln("<\/dd><dd><span class=\"label\">" + pluginsbundle.GetStringFromName("version_label") + "<\/span> ");
|
|
document.write(plugin.version);
|
|
document.writeln("<\/dd><dd>");
|
|
document.write(plugin.description);
|
|
document.writeln("<\/dd><\/dl>");
|
|
|
|
document.writeln("<table border=\"1\" class=\"contenttable\">");
|
|
document.writeln("<thead>");
|
|
document.writeln("<tr><th class=\"type\">" + pluginsbundle.GetStringFromName("mimetype_label") + "<\/th>");
|
|
document.writeln("<th class=\"desc\">" + pluginsbundle.GetStringFromName("description_label") + "<\/th>");
|
|
document.writeln("<th class=\"suff\">" + pluginsbundle.GetStringFromName("suffixes_label") + "<\/th>");
|
|
document.writeln("<th class=\"enabled\">" + pluginsbundle.GetStringFromName("enabled_label") + "<\/th><\/tr>");
|
|
document.writeln("<\/thead>");
|
|
document.writeln("<tbody>");
|
|
|
|
var numTypes = plugin.length;
|
|
var mimetype;
|
|
var enabled;
|
|
var enabledPlugin;
|
|
for (var j = 0; j < numTypes; j++)
|
|
{
|
|
mimetype = plugin[j];
|
|
|
|
if (mimetype)
|
|
{
|
|
enabled = pluginsbundle.GetStringFromName("no_label");
|
|
enabledPlugin = mimetype.enabledPlugin;
|
|
if (enabledPlugin && (enabledPlugin.filename == plugin.filename))
|
|
enabled = pluginsbundle.GetStringFromName("yes_label");
|
|
|
|
document.writeln("<tr>");
|
|
document.writeln("<td>" + mimetype.type + "<\/td>");
|
|
document.writeln("<td>" + mimetype.description + "<\/td>");
|
|
document.writeln("<td>" + mimetype.suffixes + "<\/td>");
|
|
document.writeln("<td>" + enabled + "<\/td>");
|
|
document.writeln("<\/tr>");
|
|
}
|
|
}
|
|
|
|
document.write("<\/tbody>");
|
|
document.write("<\/table>");
|
|
}
|
|
}
|
|
</script>
|
|
</div>
|
|
</body>
|
|
</html>
|