Hatena::Groupmoz-addon

hogezilla RSSフィード

当ページに書かれているコードは、修正BSDライセンスのもと、再頒布して頂いて構いません。

 | 

2009-01-07

Firefox3.1 で「プライバシー情報の消去」を期間指定で削除する

| はてなブックマーク - Firefox3.1 で「プライバシー情報の消去」を期間指定で削除する - hogezilla

Firefox3.1から「プライバシー情報の消去」に期間指定ができるように改良された。

以下のデータを期間指定で削除できるようになった。

  • Web観覧履歴
  • Cookie
  • フォーム入力履歴
  • ダウンロード履歴

逆にいうと残りの

  • Webキャッシュ
  • オフラインデータ
  • パスワード
  • セッション

は従来どおりである。

この「プライバシー情報の消去」に使用されているUIとスクリプトは以下のURLにある。

  • chrome://browser/content/sanitize.xul
  • chrome://browser/content/sanitize.js

sanitize.jsより、抜粋(一部変更)して期間指定での削除方法を記そうと思う。

期間は今日の0時0分0秒から現在までとする。

var now = Date.now() * 1000;
var d = new Date(); d.setHours(0); d.setMinutes(0); d.setSeconds(0);
var today = d.valueOf() * 1000; // 今日の0時0分0秒

Cookie

var cookieMgr = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager);
var cookiesEnum = cookieMgr.enumerator;
while (cookiesEnum.hasMoreElements()){
  var cookie = cookiesEnum.getNext().QueryInterface(Ci.nsICookie2);
  if (today < cookie.creationTime && cookie.creationTime < now)
    cookieMgr.remove(cookie.host, cookie.name, cookie.path, false);
}

履歴

var globalHistory = Cc["@mozilla.org/browser/global-history;2"].getService(Ci.nsIBrowserHistory);
globalHistory.removePagesByTimeframe(today, now);

フォームデータ

var formHistory = Cc["@mozilla.org/satchel/form-history;1"].getService(Ci.nsIFormHistory2);
formHistory.removeEntriesByTimeframe(today, now);

ダウンロード履歴

var dlMgr = Cc["@mozilla.org/download-manager;1"].getService(Ci.nsIDownloadManager);
dlMgr.removeDownloadByTimeframe(today, now);
var dlsEnum = dlMgr.activeDownloads;
while (dlsEnum.hasMoreElements()){
  var dl = dlsEnum.next();
  if (today < dl.startTime){
    dlMgr.removeDownload(dl.id);
}
トラックバック - http://moz-addon.g.hatena.ne.jp/teramako/20090107
 |