RetroZilla/extensions/webservices/interfaceinfo/tests/typeexplorer.html
2015-10-20 23:03:22 -04:00

101 lines
2.2 KiB
HTML

<html>
<head>
<title>Type Explorer</title>
</head>
<body>
<h3><center>Type Explorer</center></h3>
<script>
function selectedInterface(event) {
var index = event.target.selectedIndex;
if(0 == index)
return;
var text = event.target.options[index].text;
writeContent(Components.interfaces[text].number);
}
function enteredID() {
var text = document.getElementById("id_input").value;
var iface = Components.interfaces[text];
if(iface) {
writeContent(iface.number);
return;
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
try {
var id = Components.ID(text);
if(id) {
writeContent(id);
return;
}
} catch(e) {
}
alert("No interface with that name or iid found");
}
function writeContent(id) {
var text;
var success = true;
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const IDL_GENERATOR =
new Components.Constructor("@mozilla.org/interfaceinfotoidl;1",
"nsIInterfaceInfoToIDL");
var gen = new IDL_GENERATOR();
text = gen.generateIDL(Components.ID(id), true, true);
} catch(e) {
text = e;
success = false;
}
var out = document.getElementById("out").contentDocument;
out.open();
if(success)
out.write("<pre>");
out.write(text);
if(success)
out.write("</pre>");
out.close();
return 0;
}
</script>
<form>
Choose interface:<br>
<select id="iface_list" onchange="selectedInterface(event);">
<option>{choose}</option>
</select>
<br>Or enter name or iid:<br>
<input type=text id="id_input" size=50 value=""></input>
<input type=button value="Go" onclick="enteredID()"></input>
</form>
<script>
var iface_list = document.getElementById("iface_list");
var names = [];
for(var n in Components.interfaces)
names.push(n);
names.sort();
for(var i = 0; i < names.length; i++)
iface_list.add(new Option(names[i]), null);
</script>
<hr>
<div>
<iframe id="out" height="70%" width="100%">
</iframe>
</div>
</body>
</html>