User talk:Dickvl: Difference between revisions

From MozillaZine Knowledge Base
Jump to navigationJump to search
mNo edit summary
mNo edit summary
Line 7: Line 7:
*/
*/
(function () {
(function () {
  var Cc = Components.classes;
var Cc = Components.classes;
  var Ci = Components.interfaces;
var Ci = Components.interfaces;
  var EMP = "http://www.mozilla.org/2004/em-rdf#";
var EMP = "http://www.mozilla.org/2004/em-rdf#";
  var EMT = 2; /* Extensions: EMT = 2;  Themes: EMT = 4; */
var rv = {}; rv.ext = []; rv.the = [];
  var rv = [];


  var ds =
var ds =
     Cc["@mozilla.org/extensions/manager;1"].
     Cc["@mozilla.org/extensions/manager;1"].
     getService(Ci.nsIExtensionManager).
     getService(Ci.nsIExtensionManager).
     datasource;
     datasource;
  var rdf =
var rdf =
     Cc["@mozilla.org/rdf/rdf-service;1"].
     Cc["@mozilla.org/rdf/rdf-service;1"].
     getService(Ci.nsIRDFService);
     getService(Ci.nsIRDFService);
  var elts =
var elts =
     Cc["@mozilla.org/rdf/container-utils;1"].
     Cc["@mozilla.org/rdf/container-utils;1"].
     getService(Ci.nsIRDFContainerUtils).
     getService(Ci.nsIRDFContainerUtils).
Line 26: Line 25:
     GetElements();
     GetElements();


function rdfGS(res){
function rdfGS(res){
  try{
try{
  return(ds.GetTarget(elt,rdf.GetResource(EMP+res),true).QueryInterface(Ci.nsIRDFLiteral).Value);
    return(ds.GetTarget(elt,rdf.GetResource(EMP+res),true).QueryInterface(Ci.nsIRDFLiteral).Value);
  }catch(e){return("")}
} catch(e){return("")}
}
 
while (elts.hasMoreElements()) {
  var elt = elts.getNext().QueryInterface(Ci.nsIRDFResource);
  if (ds.HasAssertion(elt,rdf.GetResource(EMP+"type"),rdf.GetIntLiteral(2),true)) {
    var nam = rdfGS("name");
    var ver = rdfGS("version");
    var dis = rdfGS("isDisabled");
    rv.ext.push({name:nam,id:elt.Value.replace(/^urn:mozilla:item:/,""),vers:ver,dis:dis});
  }
  if (ds.HasAssertion(elt,rdf.GetResource(EMP+"type"),rdf.GetIntLiteral(4),true)) {
    var nam = rdfGS("name");
    var ver = rdfGS("version");
    var dis = rdfGS("isDisabled");
    rv.the.push({name:nam,id:elt.Value.replace(/^urn:mozilla:item:/,""),vers:ver,dis:dis});
  }
  }
  }


  while (elts.hasMoreElements()) {
var names="<p><b>Extensions:</b><br>",i,RV;
    var elt = elts.getNext().QueryInterface(Ci.nsIRDFResource);
for (i=0;RV=rv.ext[i];i++) {
    if (ds.HasAssertion(elt,rdf.GetResource(EMP+"type"),rdf.GetIntLiteral(EMT),true)) {
  var name = RV.name;
    var nam = rdfGS("name");
  var vers = RV.vers;
    var ver = rdfGS("version");
  var disab = (RV.dis=="true")?"(disabled)":"";
    var dis = rdfGS("isDisabled");
  names+="<span>" + name + " </span><span> " + vers + " </span><span> " + disab + " </span></br>";
    rv.push({name:nam,id:elt.Value.replace(/^urn:mozilla:item:/,""),vers:ver,disab:dis});
}
    }
names+="</p><p><b>Themes:</b><br>";
  }
for (i=0;RV=rv.the[i];i++) {
 
  var name = RV.name;
var names="",RV;
  var vers = RV.vers;
  for (i=0;RV=rv[i];i++) {
  var disab = (RV.dis=="true")?"(disabled)":"";
      var name = RV.name;
  names+="<span>" + name + " </span><span> " + vers + " </span><span> " + disab + " </span><br>";
      var vers = RV.vers;
}
      var disab = (RV.disab=="true")?"(disabled)":"";
      names+=" <tr><td>" + name + "</td><td>" + vers + "</td><td>" + disab + "</td></tr>\n";
  }
 
function tdig(string) {return (string.length < 2) ? "0" + string : string ;}
function fdig(number){return (number < 1000) ? number + 1900 : number;}
 
var now = new Date();
var hrs = tdig(now.getHours() + "");
var min = tdig(now.getMinutes() + "");
var sec = tdig(now.getSeconds() + "");
 
var timeValue = " | At  "+hrs+":"+min+":"+sec;
var days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();
 
var today ="On "+days[now.getDay()]+", "+date+" "+months[now.getMonth()]+" "+(fdig(now.getYear()))+timeValue;


window.open('data:text/html,
window.open('data:text/html,
<html><head>
<html><head>
<meta http-equiv=content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv=content-type" content="text/html; charset=ISO-8859-1">
<title>Mozilla Extensions</title>
<title>Mozilla Extensions</title>
<style type="text/css">
td {
  font-family: "Trebuchet MS", Arial, Helvetica, Geneva, Verdana, Sans-Serif;
  font-size: 85%;
  padding: 1px 2px 1px 2px;
}
</style>
</head><body style="margin: 1em 3em; background-color: rgb(255, 221, 221);">
</head><body style="margin: 1em 3em; background-color: rgb(255, 221, 221);">
<b>MOZILLA EXTENSIONS INFORMATION - by dickvl@kb.mozillazine.org</b><br>'+today+
' + names + '
'</p><p>
</body></html>',
<table style="empty-cells: show; background-color: rgb(221, 255, 221);" border="1" cellspacing="0">
<tbody><tr style="background-color: rgb(204, 204, 255);">
<td>
<b>Name</b>
</td>
<td>
<b>Version</b>
</td>
<td>
<b>Disabled</b>
</td>
</tr>'+names+'</tbody></table>
</p></body></html>',
"", "menubar=yes,toolbar=no,scrollbars=yes,resizable=yes,width=1000,height=600");
"", "menubar=yes,toolbar=no,scrollbars=yes,resizable=yes,width=1000,height=600");
})();
})();
Line 143: Line 119:
/* columns - 0:space  1:name  2:version  3,4:disabled  5:id  6:description  7:homepage  8:compatible  9:install location */
/* columns - 0:space  1:name  2:version  3,4:disabled  5:id  6:description  7:homepage  8:compatible  9:install location */
var THEAD = ["","Name","Version","Disabled","(-)","ID","Description","Home Page","Comp.","Inst.Loc"];
var THEAD = ["","Name","Version","Disabled","(-)","ID","Description","Home Page","Comp.","Inst.Loc"];
var TCONT = (prompt("Columns:\n\n1:Name\n2:Version\n3:Disabled  4:(U|A)\n5:ID\n6:Description\n7:Home page\n","1 2 3"));
var TCONT = (prompt("Columns:\n\n1:Name\n2:Version\n3:Disabled  4:(U|A)\n5:ID\n6:Description\n7:Home Page\n","1 2 3"));
TCONT=((TCONT==null || TCONT=="")?"1 2 3":TCONT).split(" ");
TCONT=((TCONT==null || TCONT=="")?"1 2 3":TCONT).split(" ");
var thead="",tdiv="",i,j,DV,TC,RV;
var thead="",tdiv="",i,j,DV,TC,RV;
Line 160: Line 136:
   case 6: DV=RV.descr;break;
   case 6: DV=RV.descr;break;
   case 7: DV=RV.home;break;
   case 7: DV=RV.home;break;
   case 8: DV=(RV.comp=="true")?"Yes":"No";break;
   case 8: DV=(RV.comp=="true")?"Yes":((RV.comp=="false")?"No":"");break;
   case 9: DV=RV.inst;break;
   case 9: DV=RV.inst;break;
   default: DV="";break;
   default: DV="";break;

Revision as of 04:50, 27 May 2009

Sometime ago I noticed the Mozilla's Places Stats Project thread with the possibility to display a list of installed extensions in JSON notation by using the Error Console. That gave me an idea to do the same for the printing passwords code in the Password Manager article.

I have also taken the opportunity to create a similar file for displaying the installed extensions. So here are two versions.
The first version shows the name and version number and the second version has the possibility to select which additional columns you wish to see.

/*
 * Paste this file into Firefox's JavaScript Console and evaluate it to display the installed extensions - dickvl@kb.mozillazine.org
*/
(function () {
var Cc = Components.classes;
var Ci = Components.interfaces;
var EMP = "http://www.mozilla.org/2004/em-rdf#";
var rv = {}; rv.ext = []; rv.the = [];

var ds =
    Cc["@mozilla.org/extensions/manager;1"].
    getService(Ci.nsIExtensionManager).
    datasource;
var rdf =
    Cc["@mozilla.org/rdf/rdf-service;1"].
    getService(Ci.nsIRDFService);
var elts =
    Cc["@mozilla.org/rdf/container-utils;1"].
    getService(Ci.nsIRDFContainerUtils).
    MakeSeq(ds, rdf.GetResource("urn:mozilla:item:root")).
    GetElements();

function rdfGS(res){
 try{
     return(ds.GetTarget(elt,rdf.GetResource(EMP+res),true).QueryInterface(Ci.nsIRDFLiteral).Value);
 } catch(e){return("")}
}

while (elts.hasMoreElements()) {
  var elt = elts.getNext().QueryInterface(Ci.nsIRDFResource);
  if (ds.HasAssertion(elt,rdf.GetResource(EMP+"type"),rdf.GetIntLiteral(2),true)) {
    var nam = rdfGS("name");
    var ver = rdfGS("version");
    var dis = rdfGS("isDisabled");
    rv.ext.push({name:nam,id:elt.Value.replace(/^urn:mozilla:item:/,""),vers:ver,dis:dis});
   }
  if (ds.HasAssertion(elt,rdf.GetResource(EMP+"type"),rdf.GetIntLiteral(4),true)) {
    var nam = rdfGS("name");
    var ver = rdfGS("version");
    var dis = rdfGS("isDisabled");
    rv.the.push({name:nam,id:elt.Value.replace(/^urn:mozilla:item:/,""),vers:ver,dis:dis});
   }
 }

var names="<p><b>Extensions:</b><br>",i,RV;
for (i=0;RV=rv.ext[i];i++) {
  var name = RV.name;
  var vers = RV.vers;
  var disab = (RV.dis=="true")?"(disabled)":"";
  names+="<span>" + name + " </span><span> " + vers + " </span><span> " + disab + " </span></br>";
}
names+="</p><p><b>Themes:</b><br>";
for (i=0;RV=rv.the[i];i++) {
  var name = RV.name;
  var vers = RV.vers;
  var disab = (RV.dis=="true")?"(disabled)":"";
  names+="<span>" + name + " </span><span> " + vers + " </span><span> " + disab + " </span><br>";
}

window.open('data:text/html,
<html><head>
<meta http-equiv=content-type" content="text/html; charset=ISO-8859-1">
<title>Mozilla Extensions</title>
</head><body style="margin: 1em 3em; background-color: rgb(255, 221, 221);">
' + names + '
</body></html>',
"", "menubar=yes,toolbar=no,scrollbars=yes,resizable=yes,width=1000,height=600");
})();
/* 
 *To display the installed extensions paste this file into Firefox's JavaScript Console and evaluate it - dickvl@kb.mozillazine.org
*/
(function () {
var Cc = Components.classes;
var Ci = Components.interfaces;
var EMP = "http://www.mozilla.org/2004/em-rdf#";
var EMT = 2; /* Extensions: EMT = 2;  Themes: EMT = 4; */
var rv = [];

var ds =
    Cc["@mozilla.org/extensions/manager;1"].
    getService(Ci.nsIExtensionManager).
    datasource;
var rdf =
    Cc["@mozilla.org/rdf/rdf-service;1"].
    getService(Ci.nsIRDFService);
var elts =
    Cc["@mozilla.org/rdf/container-utils;1"].
    getService(Ci.nsIRDFContainerUtils).
    MakeSeq(ds, rdf.GetResource("urn:mozilla:item:root")).
    GetElements();

function rdfGS(res){
 try{
  return(ds.GetTarget(elt,rdf.GetResource(EMP+res),true).QueryInterface(Ci.nsIRDFLiteral).Value);
 }catch(e){return("")}
}

while (elts.hasMoreElements()) {
 var elt = elts.getNext().QueryInterface(Ci.nsIRDFResource);
 if (ds.HasAssertion(elt,rdf.GetResource(EMP+"type"),rdf.GetIntLiteral(EMT),true)) {
  var nam = rdfGS("name");
  var ver = rdfGS("version");
  var des = rdfGS("description");
  var dis = rdfGS("isDisabled");
  var ads = rdfGS("appDisabled");
  var uds = rdfGS("userDisabled");
  var hom = rdfGS("homepageURL");
  var com = rdfGS("compatible");
  var ins = rdfGS("installLocation");
  rv.push({name:nam,id:elt.Value.replace(/^urn:mozilla:item:/,""),vers:ver,descr:des,adis:ads,udis:uds,home:hom,dis:dis,inst:ins,comp:com});
 }
}

/* columns - 0:space  1:name  2:version  3,4:disabled  5:id  6:description  7:homepage  8:compatible  9:install location */
var THEAD = ["","Name","Version","Disabled","(-)","ID","Description","Home Page","Comp.","Inst.Loc"];
var TCONT = (prompt("Columns:\n\n1:Name\n2:Version\n3:Disabled  4:(U|A)\n5:ID\n6:Description\n7:Home Page\n","1 2 3"));
TCONT=((TCONT==null || TCONT=="")?"1 2 3":TCONT).split(" ");
var thead="",tdiv="",i,j,DV,TC,RV;

for(j=0;TC=TCONT[j];j++){thead+="<td><b>"+(THEAD[TC])+"</b></td>";}

for (i=0;RV=rv[i];i++) {
 tdiv+="<tr>";
 for(j=0;TC=TCONT[j];j++){
  switch(parseInt(TC)){
   case 1: DV=RV.name;break;
   case 2: DV=RV.vers;break;
   case 3: DV=(RV.dis=="true")?"(disabled)":"";break;
   case 4: DV=((RV.adis=="true")?"(A)":"")+((RV.udis=="true")?"(U)":"");break;
   case 5: DV=RV.id;break;
   case 6: DV=RV.descr;break;
   case 7: DV=RV.home;break;
   case 8: DV=(RV.comp=="true")?"Yes":((RV.comp=="false")?"No":"");break;
   case 9: DV=RV.inst;break;
   default: DV="";break;
  } tdiv+="<td>"+DV+"</td>";
 }
 tdiv+="</tr>";
}

function TD(string) {return (string.length < 2) ? "0" + string : string ;}
function FD(number){return (number < 1000) ? number + 1900 : number;}

var now = new Date();
var hrs = TD(now.getHours() + "");
var min = TD(now.getMinutes() + "");
var sec = TD(now.getSeconds() + "");

var timeValue = " | At  " + hrs + ":" + min + ":" + sec;
var days = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();

var today =  "On " + days[now.getDay()] + ", " + date + " " + months[now.getMonth()] + " " +    (FD(now.getYear())) + timeValue;

window.open('data:text/html,
<html><head>
<meta http-equiv=content-type" content="text/html; charset=ISO-8859-1">

<title>Mozilla Extensions</title>
<style type="text/css">
 td {
  font-family: "Trebuchet MS", Arial, Verdana, Sans-Serif;
  font-size: 85%;
  padding: 1px 2px 1px 2px;
}
</style>
</head><body style="margin: 1em 3em; background-color: rgb(255, 221, 221);">
<b>MOZILLA EXTENSIONS INFORMATION (by dickvl@kb.mozillazine.org)</b><br>'+today+
'</p><p>
<table style="empty-cells: show; background-color: rgb(221, 255, 221);" border="1" cellspacing="0">
<tbody><tr style="background-color: rgb(204, 204, 255);">'+thead+'</tr>'+
tdiv+'</tbody></table>
</p></body></html>',"", "menubar=yes,toolbar=no,resizable=yes,scrollbars=yes,width=1000,height=700");
})();