-
Notifications
You must be signed in to change notification settings - Fork 0
/
bootstrap.js
42 lines (37 loc) · 1.37 KB
/
bootstrap.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"use strict";
const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
Cu.import("resource://gre/modules/Services.jsm");
function clear_QuotaManagerData() {
var stord = Services.dirsvc.get("ProfD", Ci.nsIFile);
stord.append("storage");
if (stord.exists() && stord.isDirectory()) {
var doms = {};
for (var stor of ["default", "permanent", "temporary"]) {
var storsubd = stord.clone();
storsubd.append(stor);
if (storsubd.exists() && storsubd.isDirectory()) {
var entries = storsubd.directoryEntries;
while(entries.hasMoreElements()) {
var host, entry = entries.getNext();
entry.QueryInterface(Ci.nsIFile);
if ((host = /^(https?|file)\+\+\+(.+)$/.exec(entry.leafName)) !== null) {
doms[host[1] + "://" + host[2]] = true;
}
}
}
}
var qm = Cc["@mozilla.org/dom/quota/manager;1"].getService(Ci.nsIQuotaManager);
for (var dom in doms) {
var uri = Services.io.newURI(dom, null, null);
qm.clearStoragesForURI(uri);
}
}
}
function startup(data, reason) {}
function shutdown(data, reason) {
if (reason == APP_SHUTDOWN) {
clear_QuotaManagerData();
}
}
function install() {};
function uninstall() {};