Firefoxにインストールされているアドオンのサイズなどを確認する方法。
3.6用コード:
エラーコンソール上部の[コード]部に、以下のコードを貼り付け、[コードを評価]をクリック
const CI = Components.interfaces;
const CC = Components.classes;
function computeSizeRecursive(file)
{
file.QueryInterface(CI.nsIFile);
if(file.isSymlink())
{
return 0;
}
var size = file.fileSize;
if(file.isDirectory())
{
var files = file.directoryEntries;
while(files.hasMoreElements())
{
size += computeSizeRecursive(files.getNext());
}
}
return size;
}
var Application = CC["@mozilla.org/fuel/application;1"].getService(CI.fuelIApplication);
var addons = Application.extensions.all;
var extDir = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("ProfD", Components.interfaces.nsIFile);
extDir.append("extensions");
var ios = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var addonData = "data:text/html,"
- ""
- ""
- " "
- "
" - " Additional Addon Information"
- " "
- " "
- " "
- "
"
"- "
" ";- "
" "- " ID"
- "
- "
" "- " Name"
- "
- "
" "- " Size"
- "
- "
addons.forEach(function(addon)
{
var ext = extDir.clone();
ext.append(addon.id);addonData += ""
- "
" ";- "
" "- " " + addon.id
- "
- "
" "- " " + addon.name
- "
- "
" "- " " + *1
? computeSizeRecursive(ext)
: "Unknown")- "
- "
- "
});
addonData += ""
- "
- "
- " "
- "";
var windowManager = CC['@mozilla.org/appshell/window-mediator;1']
.getService(CI.nsIWindowMediator);
var win = windowManager.getMostRecentWindow("navigator:browser");
win.open(addonData, "", "");
*1:ext.exists(