Source code
Revision control
Copy as Markdown
Other Tools
/**
* Any copyright is dedicated to the Public Domain.
*/
loadScript("dom/quota/test/common/system.js");
function enableStorageTesting() {
Services.prefs.setBoolPref("dom.quotaManager.testing", true);
Services.prefs.setBoolPref("dom.simpleDB.enabled", true);
if (Services.appinfo.OS === "WINNT") {
Services.prefs.setBoolPref("dom.quotaManager.useDOSDevicePathSyntax", true);
}
}
function resetStorageTesting() {
Services.prefs.clearUserPref("dom.quotaManager.testing");
Services.prefs.clearUserPref("dom.simpleDB.enabled");
if (Services.appinfo.OS === "WINNT") {
Services.prefs.clearUserPref("dom.quotaManager.useDOSDevicePathSyntax");
}
}
function clear(callback) {
let request = Services.qms.clear();
request.callback = callback;
return request;
}
function reset(callback) {
let request = Services.qms.reset();
request.callback = callback;
return request;
}
function installPackage(packageRelativePath, allowFileOverwrites) {
let currentDir = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
let packageFile = getRelativeFile(packageRelativePath + ".zip", currentDir);
let zipReader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(
Ci.nsIZipReader
);
zipReader.open(packageFile);
let entryNames = Array.from(zipReader.findEntries(null));
entryNames.sort();
for (let entryName of entryNames) {
if (entryName.match(/^create_db\.(html|js)/)) {
continue;
}
let zipentry = zipReader.getEntry(entryName);
let file = getRelativeFile(entryName);
if (zipentry.isDirectory) {
if (!file.exists()) {
file.create(Ci.nsIFile.DIRECTORY_TYPE, parseInt("0755", 8));
}
} else {
if (!allowFileOverwrites && file.exists()) {
throw new Error("File already exists!");
}
let istream = zipReader.getInputStream(entryName);
var ostream = Cc[
"@mozilla.org/network/file-output-stream;1"
].createInstance(Ci.nsIFileOutputStream);
ostream.init(file, -1, parseInt("0644", 8), 0);
let bostream = Cc[
"@mozilla.org/network/buffered-output-stream;1"
].createInstance(Ci.nsIBufferedOutputStream);
bostream.init(ostream, 32768);
bostream.writeFrom(istream, istream.available());
istream.close();
bostream.close();
}
}
zipReader.close();
}