之前有在用一套 Firefox extension,叫做 Vacuum Places Improved。
想說,只是用裡面的一小部份,應該自己改一下就可以放進 UserChrome 裡。
重點是下個 VACUUM 的 SQL command。如下所示:
Components.classes["@mozilla.org/browser/nav-history-service;1"]
.getService(Components.interfaces.nsPIPlacesDatabase)
.DBConnection.executeSimpleSQL("VACUUM");");
而整個原始碼就像下面這樣,
生個 menuitem,來方便使用。
(function() {
var newItem = document.createElement("menuitem");
newItem.setAttribute("label", "vacuum");
newItem.setAttribute("oncommand", "Components.classes[\"@mozilla.org/browser/nav-history-service;1\"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL(\"VACUUM\");");
var m = document.getElementById("userChrome-Menu");
if (!m) {
var openLink = document.getElementById("context-openlink");
m = document.createElement("menu");
m.setAttribute("id", "userChrome-Menu");
m.setAttribute("label", "userChrome");
openLink.parentNode.appendChild(m);
}
var mpopup = document.getElementById("userChrome-MenuPopup");
if (!mpopup) {
mpopup = document.createElement("menupopup");
mpopup.setAttribute("id", "userChrome-MenuPopup");
m.appendChild(mpopup);
}
mpopup.appendChild(newItem);
})();